Boa dia a todos, tenho algumas dúvidas sobre os mínimos quadrados generalizados (gls) no que se refere aos pressupostos de normalidade. Quando utilizo gls(y ~ x, ...) pressupõe-se que y tem distribuição normal? E os resíduos também? Ou deve me preocupar apenas em analisar o gráficos dos resíduos (bem distribuídos em torno de zero e sem padrão)?. A grande totalidade dos dados que trabalho quase nunca y segue uma distribuição normal.

A outra dúvida se refere ao cálculo no R. Conforme script abaixo consegui reproduzir a fórmula de calculo da função gls() nos casos em que weights = varFixed() e weights = varFunc(), mas não entendi a fórmula de cálculo nos casos em que weights =  varExp() e weights =  varPower(). Li a documentação do R, mas não consegui reproduzir. Alguém sabe?
Desde já agradeço.
Luiz

# Dados
  x=c(1,2,3,3,4,5,6,7,8,9)
  y=c(7,5,7,8,8,5,7,9,9,9)

# Carregar pacote
  library(nlme)

# Matrix X
  X=model.matrix(~x)

# varFixed / varFunc
  r=fitted(lm(y~x))
  omegafit=matrix(0,length(r),length(r)) ; diag(omegafit)=r
  solve( t(X)  %*% solve(omegafit) %*%  X ) %*% t(X)  %*% solve(omegafit) %*% y

  gls(y ~ x, weights = varFixed(~r), method = "ML")$coefficients
  gls(y ~ x, weights = varFunc(~r) , method = "ML")$coefficients




   # Dúvida

# varExp()
  r=exp(  2*fitted(lm(y~x))   )
  omegafit=matrix(0,length(r),length(r)) ; diag(omegafit)=r
  solve( t(X)  %*% solve(omegafit) %*%  X ) %*% t(X)  %*% solve(omegafit) %*% y

  gls(y ~ x, weights =  varExp(), method = "ML")$coefficients


# varPower
  r=abs(fitted(lm(y~x)))^2
  omegafit=matrix(0,length(r),length(r)) ; diag(omegafit)=r
  solve( t(X)  %*% solve(omegafit) %*%  X ) %*% t(X)  %*% solve(omegafit) %*% y

  gls(y ~ x, weights =  varPower(), method = "ML")$coefficients