Hello R users,

When trying to fit a nonlinear mixed model to a respiration time series,
I get the following error message:

Error in recalc.varFunc(object[[i]], conLin) :
  dims [product 30] do not match the length of object [34]
In addition: Warning message:
In conLin$Xy * varWeights(object) :
  longer object length is not a multiple of shorter object length

Below is an example that generates this message on
Windows XP
R 2.14.0
nlme 3.1-103

---
library(nlme)
#load(file="tmp/exampleNmleError.RData")        #ds1, fm1, ctrl
con <- url("http://www.bgc-jena.mpg.de/~twutz/tmp/exampleNmleError.RData";)
load(file=con)          #ds1, fm1, ctrl
close(con)

ds1 <- subset(ds1, select=c("ColNoM","minT","resp"))
head(ds1)
plot( resp ~ minT, col=rainbow(length(unique(ColNoM)))[ColNoM], ds1)
lines( fitted.values(fm1) ~ minT, ds1 ) # starting values from glns fit

ds2 <- ds1
# ds2 <- unique(ds1)    # does not resolve the error

tmp.fit1 <- nlme(
        resp ~ exp(beta0l) + beta1 * exp(-exp(beta2l)*minT)
        ,fixed=list(beta0l+beta1+beta2l~1)      
        ,random= beta0l ~ 1 | ColNoM
        , weights =varPower(fixed=0.4, form=~resp)
        , start=list(fixed = coef(fm1))
        #, method='REML'        
        ,data=ds2
        #,control=ctrl
)

---
The exp function in the example is used to constrain estimates of the
coefficients to positive values, when actually estimating log of the
coefficients with nlme.

When I try to debug, there find a mismatch between the dims of weights
and the dims of Matrix conLin$Xy generated by function MEdecomp, which
reduced the original 34 rows to just 6 rows.
I tried to remove double entries in my example, but this did not help.

How can I make proper use of nlme?


Yours,
Thomas

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to