R предикат () возвращает только подогнанные значения для модели nls () - PullRequest
0 голосов
/ 25 октября 2018

Прежде всего, я хотел бы отметить, что я только начинающий в R. Я столкнулся с проблемой при попытке предсказать данные из модели, сгенерированной nls ().Я добавил функцию экспоненциального затухания в свои данные, и все, кажется, в порядке, например, я получил приличную линию регрессии.Однако, когда я использую предикат () для нового набора данных, он возвращает только подогнанные значения.

Мой код:

df = data.frame(Time = c(0,5,15,30), Value = c(1, 0.38484677,0.18679383, 0.06732328))

model <- nls(Value~a*exp(-b*Time), start=list(a=1, b=0.15), data = df)

plot(Value~Time, data = df)

lines(df$Time, predict(model))

Generated plot

newtime <- data.frame(Time = seq(1,20, by = 1))

pr = predict(model, newdata = newtime$Time)

pr
[1] 0.979457389 0.450112312 0.095058637 0.009225664

Может кто-нибудь объяснить мне, пожалуйста, что я делаю неправильно?Я знаю, что здесь есть некоторые ответы на эту проблему, но никто не помог мне.

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 25 октября 2018

Параметр newdata должен представлять собой data.frame с теми же именами, что и ваши входные данные.Когда вы используете newdata = newtime$Time, вы фактически передаете newtime$Time, который больше не является фреймом data.frame, так как он «опустился» до вектора.Вы можете просто перейти в новое время, как это

pr = predict(model, newdata = newtime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...