[R-br] Comparando Curvas [HELP]
Diego Vieira
diegovieir4 em gmail.com
Segunda Outubro 1 09:49:00 -03 2018
Boa tarde pessoal,
Estou querendo fazer a comparação de duas curvas ajustadas utilizando a
função "nlsLM" do pacote "minpack.lm". No entanto, não consigo ajustar as
duas curvas em um único nlsLM, para depois usar a anova para realizar um
teste da razão de verossimilhança para testar a restrição em A, B e C.
Alguém pode me ajudar a solucionar esse problema. Desde já agradeço muito a
todas as sugestões. Além disso, preciso usar esse pacote por causa do
algoritmo de Levenberg-Marquardt. Segue o script reproduzível.
if(!require("minpack.lm")){install.packages("minpack.lm",dependencies=T);require("minpack.lm")}
if(!require("lattice")){install.packages("lattice",dependencies=T);require("lattice")}
d <- expand.grid(parA=c(1,1.99,3,4,5,6,6), sistema =
factor(c("TRAT1","TRAT2")))
d$diversidade <- c(55.000, 19.572, 10.231, 7.225, 6.004, 5.4022, 5.0566,
62.000, 31.6952, 21.4178, 17.6125, 15.7654, 14.7072,
14.0334)
#ajusta as duas curvas em um unico nlsLM
n0 <- nlsLM(diversidade ~ A[sistema]/(1+B[sistema]*exp(-C[sistema]*parA)),
data = d, start = list(A = c(-2.790,11.106), B =
c(-1.050,-0.821),
C = c(-0.090, 0.248)))
#Mensagem de erro:
# Error in dimnames(x) <- dn :
# length of 'dimnames' [2] not equal to array extent
# In addition: Warning message:
# In matrix(out$hessian, nrow = length(unlist(par))) :
# data length [9] is not a sub-multiple or multiple of the number of rows
[6]
#ajusta o modelo em que A, B e C seja comum aos dois tratamentos
n1 <- nlsLM(diversidade ~ A/(1+B*exp(-C*parA)),
data = d, start = list(A = 4.158, B = -0.9355, C = 0.079))
anova(n0,n1)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181001/f34faa84/attachment.html>
Mais detalhes sobre a lista de discussão R-br