
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) -- Diego dos Santos Vieira Engenheiro Florestal - UFRA Mestre em Ciência Florestal - UFVJM Doutorando em Ciência Florestal - UFVJM