Prezados,<div><br></div><div>Estou ajustando um conjunto de dados ao modelo não-linear de Gompertz (G ~ a * exp(b * exp(c * Idade))), onde a, b e c são parâmetros.</div><div>Consegui realizar o ajuste pelo comando nls() sem problema algum. O que eu gostaria de obter agora são os intervalos de confiança da predição. Sei que nos modelos lineares, eu consigo obter através da função predict(), passando a informação para o parâmetro interval="prediction", no entanto, ao que me parece, essa opção ainda não está implementada para o comando nls(), pois quando eu faço o comando</div>
<div><br></div><div>ic = predict(model2, newdata=g, interval="prediction", level=0.95)</div><div><br></div><div>Ele me retorna apenas a resposta média, e não os intervalos de confiança da predição. Testei a mesma sequência de comandos com o lm() e funcionou corretamente.</div>
<div>Alguém sabe se existe outra maneira de estimar esses intervalos?</div><div><br></div><div>Segue o comando mínimo reproduzível:</div><div><br></div><div>--------------------------------------------------------------------------------------------------------------------------
</div><div><div># Código Mínimo Reproduzível</div><div><br></div><div>x = seq(0,15,0.1)</div><div>erros = rnorm(151, 0, 3)</div><div>y = 22 * exp(-3 * exp(-0.3 * x)) + erros</div><div>plot(y ~ x) # Comportamento não-linear</div>
<div><br></div><div># Predição e Intervalos de Confiança no Modelo Linear</div><div>model.linear = lm(y ~ x + I(x^2))</div><div>summary(model.linear)</div><div>xest = as.data.frame(seq(0,15,1))</div><div>colnames(xest) = "x"</div>
<div>pred = as.data.frame(predict(model.linear, newdata=xest, interval="prediction"))</div><div>lines(pred$fit ~ xest$x, lwd=2)</div><div>lines(pred$lwr ~ xest$x, lty=2, col=2)</div><div>lines(pred$upr ~ xest$x, lty=2, col=2)</div>
<div><br></div><div># Predição e Intervalos de Confiança no Modelo Não-Linear</div><div>model.nlinear = nls(y ~ a * exp(b * exp(c * x)), start=list(a=25, b=-4, c=-0.3))</div><div>summary(model1)</div><div><br></div><div>
plot(y ~ x)</div>
<div>xest = as.data.frame(seq(0,15,1))</div><div>colnames(xest) = "x"</div><div>pred = predict(model.nlinear, newdata=xest, interval="prediction")</div><div>str(pred)</div><div>lines(pred ~ xest$x, lwd=2)</div>
<div>--------------------------------------------------------------------------------------------------------------------------</div><div><br></div><div>Desde já agradeço o empenho!</div><div><br></div><div>Abraços,</div>
<div><br></div>-- <br>Danilo Scorzoni Ré<br>Engenheiro Florestal<br>Mestre em Ciência Florestal<br>(14) 8180-2494<div><a href="http://about.me/dscorzoni" target="_blank">http://about.me/dscorzoni</a></div><br>
</div>