[R-br] Gráfico de intervalo de confiança de modelo não linear

Fernando Antonio de souza nandodesouza em gmail.com
Quinta Julho 11 17:17:52 BRT 2013


Caros amigos

Estou tentando criar um gráfico de um modelo não linear utilizando a função
gnls (pacote nlme). Utilizei essa função por que meus dados não possuem
variâncias homogêneas e a função gnls me permite lidar melhor com isso.

Pois bem. Dei uma lida no post do Walmes em seu blogo (Ridículas) sobre
como fazer (
http://ridiculas.wordpress.com/2011/05/19/bandas-de-confianca-para-modelo-de-regressao-nao-linear/)
no entanto  não consigo obter a matriz gradiente e Hessiana neste
modelo
e por isso não consigo dar continuidade.

Abaixo segue o CMR, bem como os comando fornecido pelo Walmes até onde
consegui evoluir. Este é meu gargalo!

Desde já agradeço a atenção

GM<-structure(list(Animal = c(1L, 60L, 62L, 68L, 72L, 7L, 73L, 98L,
99L, 100L, 91L, 92L, 93L, 51L, 83L, 89L, 86L, 87L, 94L, 95L,
17L, 82L, 84L, 97L, 3L, 76L, 78L, 48L, 52L, 55L, 69L, 13L, 22L,
33L, 63L, 12L, 67L, 77L, 80L, 41L, 42L, 46L, 50L, 25L, 53L, 57L,
64L, 28L, 35L, 58L, 61L, 21L, 24L, 54L, 59L, 20L, 30L, 38L, 45L,
10L, 11L, 19L, 9L, 14L, 18L, 32L, 56L, 2L, 4L, 5L, 23L, 27L,
29L, 40L, 47L, 6L, 8L, 31L, 34L, 36L, 39L, 44L, 65L), Manejo = c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), Gest = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 90L,
90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L,
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L,
110L, 110L, 110L, 110L, 130L, 130L, 130L, 130L, 130L, 130L, 130L,
130L, 130L, 130L, 130L, 130L, 130L, 130L, 130L, 130L, 140L, 140L,
140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L,
140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L, 140L,
140L, 140L, 140L, 140L), Fetos = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), NaGLAMA = c(0.515523054,
0.274319898, 0.260406616, 0.345393579, 0.941416811, 3.242298603,
0.543581754, NA, NA, 0.310913983, 0.103119122, 0.242179757, 1.511982572,
0.248561812, 1.377624119, 1.239927094, NA, 0.347712662, NA, 0.907352204,
NA, 1.629736193, 0.707560235, 1.260423046, 0.6423459, 1.314054397,
NA, 0.728530524, 0.398189115, 0.749234643, 0.544891837, NA, 5.434432736,
1.273166074, NA, 1.055026755, 0.937103858, 1.297767845, 0.691943258,
1.336532109, NA, 1.69233929, 2.762457777, 1.639361362, 1.220678864,
0.696944641, 0.555373873, 2.694735252, 1.593673698, 4.8664716,
1.14279477, 0.952757874, 1.538877833, 3.417410969, NA, 3.827188165,
4.90094219, NA, 1.254578538, 3.997852624, 1.562503764, 2.689082873,
8.459237956, 8.787103701, 2.535628503, 4.715973548, 2.187817632,
1.860875669, 2.656679208, 4.929889812, 2.548334487, 4.177756252,
4.293566946, 5.717494612, 1.55775636, 4.922141642, 4.650077264,
6.112568346, 5.235183032, 1.907048841, 2.814221997, 5.477504341,
5.465705692)), .Names = c("Animal", "Manejo", "Gest", "Fetos",
"NaGLAMA"), row.names = c(NA, -83L), class = "data.frame")

library(nlme)
NAGLM1<-gnls(NaGLAMA~a*exp(c*Gest),start=list(a=0.04,c=0.03),weight=varIdent(form=~1|Gest),na.action=na.omit,data=GM[-c(59,57,61),],subset=c(Gest>0
& Fetos==1))


#Códigos fornecidos pelo Walmes Adaptado

criando função que representa o modelo, retorna gradidente e hessiano

expo.der <- deriv3(~a*exp(c*Gest),
                   c("a", "c"),
                   function(Gest, a,c) NULL)
str(expo.der)

#-----------------------------------------------------------------------------
# diagnose gráfica e primeiro chute

plot(NaGLAMA~Gest, data=GM, xlab="idade Gestacional (dias)",
     ylab="Conteudo de sodio(g)")
a <- 0.04; c <-0.03;
curve(expo.der(x, a, c), add=TRUE, col=2)
start <- list(a=a, c=c)

#-----------------------------------------------------------------------------
# ajustando o modelo aos dados a partir dos valores iniciais via gráfico

n0 <- gnls(NaGLAMA~expo.der(Gest,
a,c),weight=varIdent(form=~1|Gest),na.action=na.omit,
data=GM[-c(59,57,61),], start=start)
summary(n0)
confint(n0)
#----------------------------------------------------------------------------------------------------
#Não consigo acessar estas matrizes. Não consegui progredi.
str(n0)
str(n0$m$fitted())
c(n0$m$fitted())
attr(n0$m$fitted(), "gradient")
attr(n0$m$fitted(), "hessian")
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130711/daa99be6/attachment.html>


Mais detalhes sobre a lista de discussão R-br