Прогнозирование с помощью nls, всегда возвращайте прогнозные значения набора данных поезда - PullRequest
0 голосов
/ 29 мая 2018

У меня есть 4 точки набора поездов, я использую «nls» для подбора набора поездов, а затем прогнозирую реакцию тестового набора, который содержит 2 точки.Однако команда «Предсказание» всегда возвращает значения набора поездов.

The code is attached below:

##Following is train set
HD = c(714,715,716.6,717.6)
p_l = c(0.5,0.1,0.05826374, 0.005982334)
##Fitting with nls
raw_data = data.frame(HD,p_l)
exp_fit = nls(p_l~exp(a+b*HD),data = raw_data,trace = T,start = list(a = 0,b 
= 0))
##Following is test set
HD_test = c(718.2,719.17)
p_l_test = predict(exp_fit,newdata = HD_test)

1 Ответ

0 голосов
/ 29 мая 2018

Вам нужно передать либо фрейм данных, либо именованный список как newdata.

Используйте то же имя, что и ваш исходный предсказатель (HD).В противном случае newdata считается отсутствующим, и возвращенные значения из исходных данных обучения возвращаются.

Из документов nls :

newdata
Именованный список или фрейм данных для поиска переменных, с которымипредсказывать.Если новые данные отсутствуют, возвращаются установленные значения в исходных точках данных.

HD_test = data.frame(HD = c(718.2,719.17)) # wrap in data frame, name "HD"
p_l_test = predict(exp_fit, newdata = HD_test)

p_l_test
[1] 0.0009320202 0.0002184518
...