<div> Walmes e demais membros da lista;</div><div><br></div><div><br></div><div>Vejam até onde consegui desenvolver com base no exemplo proposto na página das "Rídiculas".</div><div>Tentei aplicar a função do Walmes para obter a anova do modelo não linear e o R², mas não obtive sucesso.</div>
<div>Desde já agradeço a ajuda de todos!</div><div><br></div><div><br></div><div><br></div><div>A <- 6.25551</div><div>> B <- -6.85223  </div><div>> C <- -0.24253  </div><div><br></div><div><br></div><div>> model8 <- nls(log(Carbtotal)~A+B*exp(C*Idade), data=citriodora,</div>
<div>+           start=list(A=A, B=B, C=C))</div><div>> summary(model8) </div><div><br></div><div>Formula: log(Carbtotal) ~ A + B * exp(C * Idade)</div><div><br></div><div>Parameters:</div><div>  Estimate Std. Error t value Pr(>|t|)    </div>
<div>A  6.25552    0.26527   23.58 1.14e-12 ***</div><div>B -6.85224    0.27415  -25.00 5.14e-13 ***</div><div>C -0.24253    0.02415  -10.04 8.88e-08 ***</div><div>---</div><div>Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 </div>
<div><br></div><div>Residual standard error: 0.2841 on 14 degrees of freedom</div><div><br></div><div>Number of iterations to convergence: 1 </div><div>Achieved convergence tolerance: 2.429e-06 </div><div><br></div><div>> F <- attr(model8$m$fitted(), "gradient")  ## extraindo a matriz gradiente avaliada nas estimativas dos parâmetros</div>
<div><br></div><div>> m0 <- lm(log(Carbtotal)~-1+F, data=citriodora)# passando a matriz gradiente para a lm(), importante remover intercepto</div><div>> anova(m0) # partição da soma de quadrados total</div><div><br>
</div><div><br></div><div>Analysis of Variance Table</div><div><br></div><div>Response: log(Carbtotal)</div><div>          Df Sum Sq Mean Sq F value    Pr(>F)    </div><div>F          3 271.26  90.422  1119.9 < 2.2e-16 ***</div>
<div>Residuals 14   1.13   0.081                      </div><div>---</div><div>Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 </div><div>> anova(model8, lm(log(Carbtotal)~1, citriodora)) # SQ do modelo não linear corrigido para intercepto</div>
<div>Analysis of Variance Table</div><div><br></div><div>Model 1: log(Carbtotal) ~ A + B * exp(C * Idade)</div><div>Model 2: log(Carbtotal) ~ 1</div><div>  Res.Df Res.Sum Sq Df  Sum Sq F value    Pr(>F)    </div><div>1     14      1.130                                 </div>
<div>2     16     82.335 -2 -81.204  502.88 9.192e-14 ***</div><div>---</div><div>Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 </div><div><br></div><div><br></div><div>> R2 <- function(nls.obj){</div>
<div>+   da <- eval(nls.obj$data)</div><div>+   <a href="http://resp.name">resp.name</a> <- all.vars(summary(nls.obj)$formula)[1]</div><div>+   form <- paste(<a href="http://resp.name">resp.name</a>, "~1", sep="")</div>
<div>+   m0 <- lm(form, da)</div><div>+   an <- anova(nls.obj, m0)</div><div>+   sqn <- deviance(nls.obj)</div><div>+   sqe <- deviance(m0)</div><div>+   r2 <- 1-(sqn/sqe)</div><div>+   aov <- data.frame(fv=c("regression","residuals"),</div>
<div>+                     gl=c(-an$Df[2],an$Res.Df[1]),</div><div>+                     sq=c(-an$Sum[2],an$Res.Sum[1]))</div><div>+   aov$qm <- aov$sq/aov$gl</div><div>+   aov$F <- c(aov$qm[1]/aov$qm[2], NA)</div><div>
+   aov$"Pr(>F)" <- c(1-pf(aov$F[1], df1=aov$gl[1], df2=aov$gl[2]), NA)</div><div>+   names(aov) <- c(" ","Df", "Sum Sq", "Mean Sq", "F value", "Pr(>F)")</div>
<div>+   return(list(anova=aov, R2=r2))</div><div>+ }</div><div><br></div><div><br></div><div>> R2(model8)</div><div><br></div><div><br></div><div>Erro em anovalist.nls(object, ...) : </div><div>  'anova' is only defined for sequences of "nls" objects</div>
<div>Além disso: Warning message:</div><div>In anovalist.nls(object, ...) :</div><div>  models with response "Carbtotal" removed because response differs from model 1</div><div><br></div><div><br></div>-- <br>Thiago de Paula Protásio<div>
Acadêmico de Engenharia Florestal</div><div>Universidade Federal de Lavras</div><div>Departamento de Ciências Florestais</div><div>Ciência e Tecnologia da Madeira</div><div>(035) 9183 - 2246</div><div><br></div><br>