[R-br] Ajuste de modelo não linear
Andre Oliveira
andreolsouza em yahoo.com.br
Domingo Outubro 16 11:58:05 BRST 2016
Obrigado Marcus!
André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES
Em Domingo, 16 de Outubro de 2016 10:15, Marcus Nunes <marcus.nunes em gmail.com> escreveu:
O erro do R diz que tu excedeu o número máximo de iterações. Eu aumentei eles para 500 e, mesmo assim, não convergiu.
Creio que o teu problema não tenha solução da maneira que foi proposto. Vai ser muito difícil encontrar uma função do tipo
f(anos) = a*(b^anos)
que funcione com um número tão grande para anos. Imagine uma função exponencial que cresce muito, muito, muito devagar até 1961 e, a partir daí, explode seu crescimento? Difícil, né?
Para lidar com este problema, o que eu faria é o reduzir o valor dos anos, fazendo eles começarem em 1. Assim fica algo muito mais fácil de imaginar e interpretar:
#####Brasil <- c(13.63 ,13.93,14.09,15.12,15.98,16.08,16.45,17.96,18.83,19.28,19.18,20.89,21.87,21.85,23.43,25.38,25.64,26.99,28.68,31.92,32.92,33.32,34.37,34.99,36.08,37.72,40.41,42.81,44.18,44.91,48.97,51.59,53.44,56.49,62.2,66.49,67.01,68.41,74.14,77.58,80.39,85.71,89.58,96.3,100.9,102.8,107.69,111.51,111.42,116.59,118.85,121.42,127.53)anos <- c(1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013)
anos2 <- anos-min(anos)+1
fit <- nls(Brasil ~ a*(b^(anos2)), start = list(a=12, b=1.4))
a <- coefficients(fit)[1]b <- coefficients(fit)[2]
plot(Brasil ~ anos2)lines(a*(b^anos2), col="red", lty=2)###
Para encontrar os valores iniciais, eu tomei log(Brasil), ajustei uma reta a estes dados e tomei a exponencial dos valores encontrados. Aliás, linearizar a tua variável resposta é uma outra maneira de resolver este problema. Só tem que tomar cuidado com as inferências posteriores.
2016-10-15 22:56 GMT-03:00 Andre Oliveira via R-br <r-br em listas.c3sl.ufpr.br>:
Boa noite pessoal,o que eu poderia modificar neste ajuste para obter exito? Já variei os chutes iniciais e não consegui.
Brasil<- c(13.63 ,13.93,14.09,15.12,15.98,16. 08,16.45,17.96,18.83,19.28,19. 18,20.89,21.87,21.85,23.43,25. 38,25.64,26.99,28.68,31.92,32. 92,33.32,34.37,34.99,36.08,37. 72,40.41,42.81,44.18,44.91,48. 97,51.59,53.44,56.49,62.2,66. 49,67.01,68.41,74.14,77.58,80. 39,85.71,89.58,96.3,100.9,102. 8,107.69,111.51,111.42,116.59, 118.85,121.42,127.53);
anos <- c(1961,1962,1963,1964,1965, 1966,1967,1968,1969,1970,1971, 1972,1973,1974,1975,1976,1977, 1978,1979,1980,1981,1982,1983, 1984,1985,1986,1987,1988,1989, 1990,1991,1992,1993,1994,1995, 1996,1997,1998,1999,2000,2001, 2002,2003,2004,2005,2006,2007, 2008,2009,2010,2011,2012,2013) ;
fit<-nls(Brasil~a*(b^(anos)), start = list(a =18, b=1.4))
Error in nls(Brasil ~ a * (b^(anos)), start = list(a = 18, b = 1.4)) :
número de iterações excedeu o máximo de 50 André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES
______________________________ _________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/ cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br- guia) e forneça código mínimo reproduzível.
--
Marcus Nunes
http://marcusnunes.me/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161016/477e4e52/attachment.html>
Mais detalhes sobre a lista de discussão R-br