Estou ajustando uma regressão não linear em um conjunto de dados com duas variáveis explicativas Day
e Treatment
modelando uma resposta Amount
usando {nls}
. Quero obter os valores previstos para , Amount
juntamente com os intervalos de previsão de 95%, para um novo conjunto de dados. No entanto, o problema também ocorre se eu estiver apenas reutilizando o mesmo conjunto de dados. Portanto, estou incluindo o exemplo sem definir o newdata
argumento -.
DS <- data.frame(Day=rep(1:5,t=2),
Amount=c(65,17,11,3.5,1.2,85,23,15,5,1.7),
Treatment=rep(c(0,1),e=5))
Model <- nls(Amount ~ (a+b*Treatment) * exp((c+d*Treatment)*Day) + e,
data=DS, start = list(a=10,b=10,c=-0.1,d=-0.1,e=0.1))
Embora eu possa prever os Amount
valores para cada ponto de dados com predict()
e também com investr::predFit()
,
> predict(Model)
> [1] 64.814965 18.614433 7.150980 4.306624 3.600871 84.626103 25.804353 9.562934 5.078476 3.840261
> predFit(Model)
> [1] 64.814965 18.614433 7.150980 4.306624 3.600871 84.626103 25.804353 9.562934 5.078476 3.840261
Recebo a seguinte mensagem de erro quando tento incluir intervalos de previsão.
predFit(Model,interval="prediction",level=0.95)
Erro em eval(form[[3]]): objeto 'Dia' não encontrado. Além disso: Mensagem de aviso: Em assign(xname, newdata[, xname]): apenas o primeiro elemento é usado como nome da variável.
No entanto, se eu reduzir a complexidade do modelo usando apenas Day
(no Treatment
) na fórmula em {nls}
, tudo funciona bem e predFit()
encontra Day
. O que estou fazendo errado?