[R-br] COMPARANDO CURVAS [DÚVIDA]

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[R-br] COMPARANDO CURVAS [DÚVIDA]

R-br mailing list
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


_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] COMPARANDO CURVAS [DÚVIDA]

R-br mailing list
Diego, boa noite!

Veja minha tese...la tem como vc fazer isso...

Banco de teses da usp/ simone daniela sartorio

Att.
Simone

Em 29 de set de 2018 13:49, Diego Vieira via R-br <[hidden email]> escreveu:
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



_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] COMPARANDO CURVAS [DÚVIDA]

R-br mailing list
Obrigado Simone pela ajuda. Era exatamente o que estava procurando.

Em seg, 1 de out de 2018 às 19:43, <[hidden email]> escreveu:
Diego, boa noite!

Veja minha tese...la tem como vc fazer isso...

Banco de teses da usp/ simone daniela sartorio

Att.
Simone

Em 29 de set de 2018 13:49, Diego Vieira via R-br <[hidden email]> escreveu:
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




--
Diego dos Santos Vieira
Engenheiro Florestal - UFRA
Mestre em Ciência Florestal - UFVJM
Doutorando em Ciência Florestal - UFVJM


_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] COMPARANDO CURVAS [DÚVIDA]

R-br mailing list
In reply to this post by R-br mailing list
Não consegui instalar o pacote minipack.lm, diz que não existe na versão R3.4.3. Estou usando o Windows, por acaso é só no Linux que êle existe?
 
 
 
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
 
 
 
--
Diego dos Santos Vieira
Engenheiro Florestal - UFRA
Mestre em Ciência Florestal - UFVJM
Doutorando em Ciência Florestal - UFVJM
 
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.

_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.