2016-09-16 2 views
0

Я пытаюсь использовать функцию predict для прогнозирования 100 пунктов новых очков. У меня есть data.frame с одним вектором длиной в 100 уд.Предсказать функцию в R

Я пытаюсь функцию предсказания: predict(model, newdata=mydat)

Функция возвращает только вектор длиной четыре. Это может быть связано с тем, что модель была сделана только с четырьмя точками, но я не уверен.

EDIT:

Создание mydat

mydat <- data.frame(V1 = seq(0, max(myExperimentSummary$V1), length.out = 100)) 

Типовом Я использую

model 
#Nonlinear regression model 
# model: mean ~ (1/(1 + exp(-b * (V1 - c)))) 
# data: myExperimentSummary 
#  b  c 
#-0.6721 3.2120 
# residual sum-of-squares: 0.04395 
# 
#Number of iterations to convergence: 1 
#Achieved convergence tolerance: 5.204e-06 

edit2: Крепление опечаток

EDIT3:

fitcoef = nlsLM(mean~(a/(1+exp(-b*(V5-c)))), data = myExperimentSummary, 
       start=c(a=1,b=.1,c=25)) 

fitmodel = nls(mean~(1/(1+exp(-b*(V1-c)))), data = myExperimentSummary, 
       start=coef(fitcoef)) 

mydat <- data.frame(V1 = seq(0, max(myExperimentSummary$V1), length.out = 100)) 

predict(fitmodel, mydat) 
+1

вы должны показать, что модель вы прогнозирование и показать, как вы создаете mydat. – user2957945

+1

Я отредактирую сообщение, чтобы добавить эти –

+1

в порядке, ваши newdata должны соответствовать переменным в rhs уравнения. У вашей newdata есть 'S', но у модели есть' V1' – user2957945

ответ

1

Если данные по-прежнему, как и в вашем previous question:

dat <- read.table(text = " V1 N mean 
          0.1 9 0.9 
          1 9 0.8 
          10 9 0.1 
          5 9 0.2", 
        header = TRUE) 

model <- nls(mean ~ -a/(1 + exp(-b * (V1-o))), data = dat, 
      start=list(a=-1.452, b=-0.451, o=1.292)) 

Тогда я не могу воспроизвести проблему:

mydat <- data.frame(V1 = seq(0, max(dat$V1), length.out = 100)) 

y <- predict(model, mydat) 

length(y) 
# [1] 100 
Смежные вопросы