<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">André,<br><br>Apenas para complementar a solução do Marcus, encaminho o código que faz uso de uma função com recursos do pacote rpanel para ajuste de modelo não linear de forma interativa. Essa função (na versão antiga) gerou o GIF que fica na capa da página da lista no Nabble (rs). O uso da interface não elimina o problema do chute inicial, só diminui porque ao invés de passar um valor você passa um intervalo e calibra visualmente. Além disso, tem a parte de análise de resíduos.<br><br><span style="font-family:monospace,monospace">Brasil <- c(13.63, 13.93, 14.09, 15.12, 15.98, 16.08, 16.45, 17.96,<br>            18.83, 19.28, 19.18, 20.89, 21.87, 21.85, 23.43, 25.38,<br>            25.64, 26.99, 28.68, 31.92, 32.92, 33.32, 34.37, 34.99,<br>            36.08, 37.72, 40.41, 42.81, 44.18, 44.91, 48.97, 51.59,<br>            53.44, 56.49, 62.2, 66.49, 67.01, 68.41, 74.14, 77.58,<br>            80.39, 85.71, 89.58, 96.3, 100.9, 102.8, 107.69, 111.51,<br>            111.42, 116.59, 118.85, 121.42, 127.53)<br>anos <- 1961:2013<br><br>anos2 <- anos - min(anos) + 1<br><br># Calibrando o chute inicial (por tentativa-erro faça aproximar).<br>start <- list(a = 12, b = 1.049)<br>plot(Brasil ~ anos2)<br>with(start,<br>     curve(a * (b^(anos2)),<br>           xname = "anos2",<br>           add = TRUE,<br>           col = 2))<br><br>fit <- nls(Brasil ~ a * (b^(anos2)),<br>           start = start)<br><br># Verificando o ajuste.<br>plot(Brasil ~ anos2)<br>with(as.list(coef(fit)),<br>     curve(a * (b^(anos2)),<br>           xname = "anos2",<br>           add = TRUE,<br>           col = 4))<br><br># rp.nls: função que usa recursos no pacote rpanel para ajuste de<br># modelos de regressão não linear.<br>source(paste0("<a href="https://raw.githubusercontent.com/walmes/">https://raw.githubusercontent.com/walmes/</a>",<br>              "wzRfun/master/R/rp.nls.R"))<br>library(rpanel)<br><br>fit <- rp.nls(Brasil ~ a * (b^(anos2)),<br>              data = data.frame(Brasil = Brasil, anos2 = anos2),<br>              start = list(a = c(5, 20),<br>                           b = c(0.95, 1.5)))<br>summary(fit)<br><br># Função que era do pacote nls2() mas foi removida (guardei o fonte).<br>source("~/Dropbox/CursoR/GeneticaEsalq/as.lm.R")<br>library(nls2)<br><br>mit <- as.lm(fit)<br><br># Diagnóstico do modelo.<br>par(mfrow = c(2, 2))<br>plot(mit)<br>layout(1)<br><br># ! Relação média variância !<br><br># Linear!<br>plot(log(Brasil) ~ anos2)<br></span><br>À disposição.<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Walmes.<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div>​</div>