Custom nonlinear self starting function w/ 2 covariates
Dear all
I finally found the way to do it. Nlme accepts simpler functions than
selfStart:
# Defining my function
Myfun <-function(x1,x2,Tmax,Topt,B,E) {
(((Tmax-x1)/(Tmax-Topt))*(x1/Topt)^(Topt/(Tmax-Topt)))*exp(-exp(B*(log(x2)-log(abs(E)))))
}
# Calling nlme
nlmefit3 <- nlme( y ~ Myfun(x1,x2,Tmax,Topt,B,E), data, fixed=Tmax+Topt+B+E
~ 1, random=Tmax+Topt+B+E ~ 1, start=list(fixed=(c(Topt=25.206, Tmax=36.085,
B=-0.825, E=6.435))) )
Unfortunately, in with nlmer I'm stuck with the error message "gradient
attribute of evaluated model must be a numeric matrix", but it's good that
it works with nlme.
Sebastien Guyader wrote:
Hello, I'm trying to adjust a non linear model in which the biological response variable (ratio of germinated fungus spores) is dependent on 2 covariates (temperature and time). The response to temperature is modeled by a kind of beta function with 2 parameters (optimal and maximum temperatures) and the time function is a 2-parameter Weibull. Adjustments with nls or gnls work, but I need to do mixed-effects modeling. It seems like nlme or nlmer need self starting functions, but so far I can't find a way to code a selfstart function with 2 "x" covariates. Is it just impossible? Is there another way? Thanks
View this message in context: http://r.789695.n4.nabble.com/Custom-nonlinear-self-starting-function-w-2-covariates-tp2286099p2287391.html Sent from the R help mailing list archive at Nabble.com.