Obrigado pelas colaborações, foram muito esclarecedoras!

Walmes, no fim o que você chama de dupla exponencial, é apenas uma 
reparametrização no logístico duplo não é?
Como ficaria para esta situação um gompertz duplo, ou dupla exponencial 
reparametrizando o modelo de gompertz?

Att;
 
Tales Jesus Fernandes
Doutorando em Estatística UFLA
Universidade Federal de Lavras



________________________________
 De: Walmes Zeviani <[email protected]>
Para: Tales Fernandes <[email protected]> 
Cc: "[email protected]" <[email protected]> 
Enviadas: Terça-feira, 11 de Setembro de 2012 11:28
Assunto: Re: [R-br] Auto-correlação residual utilizando a gnls
 

Tales,

Tome cuido com o exagero. O R e outros aplicativos possuem muitas funções e 
flexibilidade na hora de criar modelos mas nós temos que ser cautelosos, 
entender o modelo que estamos propondo e críticos o suficiente para aceitar 
esses modelos. Você não tem tantos dados assim e está se propondo a modelar 
variância e correlação simultaneamente. Não tô dizendo que você esteja errado. 
Você vai ver abaixo que existe problemas de convergência, ou talvez de 
identificabilidade. Você tá propondo um modelo grande demais. No final eu 
coloco um duplo exponencial só pra você ver que existe mais de uma solução 
possível.

rm(list=ls())
library(car)
library(nlme)
library(qpcR) # para calcular o R2
require(nls2)

daf=c(96,111,126,141,158,174,189,204,219,235,250,265,279,293)
diff(daf) # espaçamento não exatamente iguais, AR(1) assume equidistância
mfs2=c(0.014,0.027,0.033,0.189,0.439,0.602,0.653,0.671,0.775,0.814,0.911,1.012,1.059,1.005)
ordem <- seq_along(daf)

plot(mfs2~daf)

args(SSlogis)
n0 <- nls(mfs2~SSlogis(daf, A, x0, S))
par(mfrow=c(2,2)); plot(as.lm(n0)); layout(1)
# na minha opinião, esse tamanho de amostra é insuficiente para afirmar
# qualquer padrão de variância e correlação...

acf(residuals(n0))  # indicaria fracamente médias móveis
pacf(residuals(n0)) # indica AR(2)

# Logístico
reg1=gnls(mfs2~((alfa)/(1 + exp(beta - gama*daf))),
  start=c(alfa=1.5,beta=3,gama=0.015),
  weights=varExp(form=~daf),
  correlation=corAR1(form=~daf))
summary(reg1)
anova(reg1, n0)
## não diferiu no meu modelo mais simples (homocedástico e independente)

reg3=gnls(mfs2~((alfa)/(1 + exp(beta - gama*daf))),
  start=c(alfa=1.5,beta=3,gama=0.015),
  weights=varExp(form=~daf),
  correlation=corAR1(form=~1))
summary(reg3)
anova(reg3, n0)

reg4 <- gnls(mfs2~((alfa)/(1 + exp(beta - gama*daf))),
             start=c(alfa=1.5,beta=3,gama=0.015),
             weights=varExp(form=~daf),
             correlation=corAR1(value=0.01, form=~ordem))
summary(reg4)
# veja que modelo 3 e 4 são iguais, pois corAR1() assume a ordem das 
observações no vetor
anova(reg4, n0)

# essa significancia é problema de mínimo local, veja que dando um chute mais
# adequado para assintota, a estimativa de phi é outra

reg5 <- gnls(mfs2~((alfa)/(1 + exp(beta - gama*daf))),
             start=c(alfa=1,beta=3,gama=0.015), # chute para alfa=1
             weights=varExp(form=~daf),
             correlation=corAR1(form=~ordem))
summary(reg4)
anova(reg5, n0)

logLik(reg4)
logLik(reg5)

plot(daf,mfs2, main="Modelo Logístico")
lines(daf,fitted(n0),col=1)   # sem hetero e correl, not bad
lines(daf,fitted(reg1),col=2) # usando AR1(~daf), not bad
lines(daf,fitted(reg3),col=3) # usando AR1(~1), completamente sem sentido
lines(daf,fitted(reg4),col=4) # usando AR1(~ordem), mesma coisa
lines(daf,fitted(reg5),col=5) # usando AR1(~ordem), mínimo global

# o padrão dos dados sugere duas logísticas, como se fosse crescimento de 
insetos
# cada logística tem relação com as ecdises

reg6 <- nls(mfs2~A1/(1+exp(-(daf-d1)/S1))+(A2-A1)/(1+exp(-(daf-d2)/S2)),
            start=list(A1=0.6, d1=170, S1=20, A2=1, d2=250, S2=15))
summary(reg6)
confint.default(reg6) # aponta que S1 e S2 podem ser iguais, faz até sentido
par(mfrow=c(2,2)); plot(as.lm(reg6)); layout(1)

pred <- data.frame(daf=seq(90, 300, length=100))
pred$y <- predict(reg6, newdata=pred)

plot(daf,mfs2, main="Modelo Logístico")
lines(y~daf, data=pred)
abline(h=coef(reg6)[c(1,4)], lty=3)
abline(v=coef(reg6)[c(2,5)], lty=3)

lapply(list(n0, reg3, reg4, reg5, reg6), logLik)
# ultimo modelo com a maior verossimilhança

À disposição.
Walmes.

==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: [email protected]
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
_______________________________________________
R-br mailing list
[email protected]
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.

Responder a