Walmes

Entendi o que você disse. Porém não compreendo o porque de observar pontos de influência na abordagem (tanto para modelo fixo, como para modelo misto)  e esses pontos não aparecerem no modelo polinomial que gerou. Pode ter relação com o modelo selecionado (Gompertz)? Veja o caso do modelo misto.

library(nlme)
install.packages("tidyr")
library(tidyr)
DADOS.CURTO <- read.csv("https://www.dropbox.com/s/b4cckybgrcg86me/galinhas.csv?raw=1",head = TRUE)
head(DADOS.CURTO)
colnames(DADOS.CURTO) <- c("0","1","2","3","4","5","6","TRAT")
DADOS<- DADOS.CURTO %>% gather('0','1','2','3','4','5','6',key ="SEMANA",value = "PESO", -TRAT)
head(DADOS)
str(DADOS)
ID <-rep(seq(1,370), times=7)
DADOS<-cbind(ID,DADOS)
DADOS <- transform(DADOS, SEMANA = as.numeric(SEMANA),ID=factor(ID))

modelo1.list <- nlsList(PESO ~ a * exp(-b * exp( -c * SEMANA)),start = c(a = 4.10,b = 4.53,c = 0.37 ),na.action=na.omit,data =DADOS)

modelo.nlme.0<-nlme(modelo1.list)
modelo.nlme.2<-update(modelo.nlme.0,fixed=list(a~TRAT,b + c~1),start=c(4.10,0,0,4.77,0.34),control=controle2)

(corr2 <- plot(ACF(modelo.nlme.2,resType="pearson"),alpha = 0.05,ylab="autocorrelação",col = "gray",main = "B"))

MM3.3<- update(modelo.nlme.2,weights = varExp(form = ~fitted(.)|SEMANA),correlation = corARMA(form = ~SEMANA |ID,q = 4))

=========================================
Fernando Souza
Celular: (31)99796-8781 (Vivo)
E-mail:nandodesouza@gmail.com
==========================================

On Jan 16 2018, at 8:06 pm, Fernando Antonio de souza <nandodesouza@gmail.com> wrote:
Caro Walmes, obrigado pelo retorno!

Na verdade eu estou analisando utilizando os modelos mistos.  No entanto é um dos objetivos do trabalho comparar as duas abordagens e em ambas o gráfico dos resíduos  apresentam outliers. Por isso enviei o modelo sem efeitos aleatórios, pois em ambos está ocorrendo esta situação e gostaria de saber uma opinião em como lido com isso.

Mas estou convencido que esses outliers se devem a forma como os dados foram coletados. Segundo a responsável pelo trabalho os dados foram coletados de maneira não controlada, em granjas de uma empresa (não era possível alterar a rotina da granja). O técnico da empresa (que coletou os dados) afirma que as pesagens eram feitas semanalmente (não tenho informações sobre a pesagem, qualidade da balança, etc), porém  ela não soube me informar se esse "semanalmente" era igualmente espaçado ou não. Também não é possível saber se durante o período experimental houve algum evento que pode ter afetado a resposta e segundo a responsável o experimento foi um DIC, porém suponho que os frangos  estavam em galpões diferentes (e não tenho como controlar/identificar). Resumindo há muita fonte de variação que não posso explicar!!!!!!


Mais uma vez agradeço a sua atenção


=========================================
Fernando Souza
Celular: (31)99796-8781 (Vivo)
E-mail:nandodesouza@gmail.com
==========================================

On Jan 16 2018, at 12:51 pm, Walmes Zeviani <walmeszeviani@gmail.com> wrote:
Você tem que estabelecer um critério de parada porque você pode encontrar outliers se continuar o ciclo de buscar por eles.
A sua estratégia de remoção acaba sendo modelo dependente, ou seja, você ajusta, remove outliers, ajusta de novo, vê que o modelo mudou (e deveria mesmo), mas surgem outros outliers pois na presença dos dados restantes, novas observações se tornam vilãs (influentes). Se o seu modelo estiver mau especificado, os danos são ainda maiores porque os "outliers" (que não seriam) são apenas observações injustiçadas pela má especificação do modelo. Se você olhar a curva de cada indivíduo, vai concluir que as observações dentro dos indivíduos estão coesas, ou seja, desvios da curva imaginária (uso panel.smoother()) para me auxiliar com a curva imaginária).

# Olhando para cada a curva de cada ID.
xyplot(PESO ~ SEMANA | ID,
       data = DADOS,
       strip = FALSE,
       type = "o",
       as.table = TRUE,
       jitter.x = TRUE) +
    layer(panel.smoother(..., col = 1))

# Olhando por tratamento.
xyplot(PESO ~ SEMANA | TRAT,
       groups = ID,
       data = DADOS,
       type = "o",
       jitter.x = TRUE) +
    layer(panel.smoother(..., col = 1, lwd = 3))

Acredito que o modelo mais apropriado para os seus dados seja um modelo de efeitos aleatórios, coisa que você não está fazendo. A variação entre ID você está estruturando já de início com função de variância e correlação entre observações. Acredito que primeiro deveria acomodar a variação do estrato superior (ID) para depois fazer um ajuste mais fino (com função de variância e correlação se forem necessários) especificando elementos para o estrato inferior (residual). Você está modelando a camada inferior sem dar a devida a atenção para o estrato de cima. Em muitos casos, a inclusão dos efeitos aleatórios vais dispensar modelagem da variância porque a variância marginal aumenta com as semanas mas não é porque ela cresce dentro dos ID mas sim entre ID. E a correlação pode desaparecer também, porque muitas vezes ela resulta de um modelo que apresenta falta de ajuste. Abaixo eu uso um polinômio de 4 grau, que é bem flexível, ou seja, o modelo "corre para os dados". Nos gráficos eu não fiquei convencido de que existem observações influentes.

# Criando objeto de classe groupedData.
da <- groupedData(PESO ~ SEMANA | ID,
                  data = DADOS,
                  order.groups = FALSE)

# Ajuste de um modelo suficientemente flexível.
m0 <-  lme(PESO ~ SEMANA + I(SEMANA^2) + I(SEMANA^3) + I(SEMANA^4),
           random = ~ 1 | ID,
           na.action = na.omit,
           data = da)
summary(m0)

plot(augPred(m0), strip = FALSE)

plot(residuals(m0))
plot(residuals(m0, type = "normalized"))

xyplot(residuals(m0) ~ fitted(m0) | TRAT, data = da)
qqmath(~residuals(m0) | TRAT, data = da)
qqmath(~residuals(m0) | ID, data = da, strip = FALSE)

À
 disposição.
Walmes.​