[R] crossed random effects- clarified version
Hi, here is a clarified version of my problem. I have a total of 4*74 observations on 74 different mums in 5 different populations of mums, subject to 6 treatments (2 moisture levels*3 substrate types). I want to know if mum interacts with moisture level or substrate type. Population, moisture and substrate are fixed effects and mum is a random effect within population. Plot is a random whole-plot error for a split-plot design. The data set is called fm. This is the formula I used and the error message I got: fm$pmu - getGroups(fm, ~1|pop/mum, level=2) fm$grp = as.factor(rep(1,nrow(fm))) fm$pl - getGroups(fm, ~1|plot) fm$mo - getGroups(fm, ~1|moist) fm$su - getGroups(fm, ~1|sub) fm1 - lme(sqrt(mass) ~ iheight + moist*sub*pop, data=fm, random=list(grp=pdBlocked(list(pdIdent(~pl - 1), pdIdent(~pmu - 1), pdIdent(~pmu:su - 1), pdIdent(~pmu:mo - 1) Error in chol((value + t(value))/2) : non-positive definite matrix in chol The model works if the interaction terms: pdIdent(~pmu:su - 1), pdIdent(~pmu:mo - 1), are removed, so they are causing the problem. The model also works if I test mums from one population at a time so that mum no longer needs to be nested, i.e. if I replace pmu with mu: fm$mu - getGroups(fm, ~1|mum) fm1 - lme(sqrt(mass) ~ iheight + moist*sub, data=fm, random=list(grp=pdBlocked(list(pdIdent(~pl - 1), pdIdent(~pmu - 1), pdIdent(~mu:su - 1), pdIdent(~mu:mo - 1) It would be a lot faster if I can test all of the populations at once instead of individually. Any help would be much appreciated. Thanks, Sarah http://mobile.yahoo.com.au - Yahoo! Mobile - Check compose your email via SMS on your Telstra or Vodafone mobile. __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
Re: [R] crossed random effects
Hi, thanks for the advice. I have looked at the Pinheiro and Bates book and I've tried simplifying my model. I've narrowed the problem down to having mum nested within pop. If I run the analysis on each population separately, the interaction between mo and su with mum works fine. If I could analyse all of the pops at once this would be preferable because I have multiple responses and pops to test so it would take a bit of time. I'm hoping there is any easier way. Thanks Sarah --- Spencer Graves [EMAIL PROTECTED] wrote: Have you studied Pinhiero and Bates (2000) Mixed Effects Models in S and S-Plus (Springer)? Also, have you tried simplifying your lme call until you get something that works, then start adding back terms in various configurations until it breaks? Have you tried to compute how many coefficients are estimated in both fixed and random terms and evaluate whether all are estimable? For example, with 2 factors at 2 levels each, if you don't have all 4 possible combinations, you can't estimate the interaction -- even if you have thousands of replications of each. Finally, you can always try to read the code. I've learned a lot about S-Plus / R by doing that -- and solved a lot of my own problems that way. hope this helps. spencer graves Sarah Mclean wrote: Hi, if I have posted this twice, please ignore this. I'm not sure if I sent it to the correct e-mail address the first time. I have a data set on germination and plant growth with the following variables: dataset=fm mass (response) sub (fixed effect) moist (fixed effect) pop (fixed effect) mum (random effect nested within population) iheight (covariate) plot (random effect- whole plot factor for split-plot design). I want to see if moist or sub interacts with mum for any of the pops, but I am getting an error message. This is the formula I used: fm$pmu - getGroups(fm, ~1|pop/mum, level=2) fm$grp = as.factor(rep(1,nrow(fm))) fm$pl - getGroups(fm, ~1|plot) fm$mo - getGroups(fm, ~1|moist) fm$su - getGroups(fm, ~1|sub) fm1 - lme(sqrt(mass) ~ iheight + moist*sub*pop, data=fm, random=list(grp=pdBlocked(list(pdIdent(~pl - 1), pdIdent(~pmu - 1), pdIdent(~pmu:su - 1), pdIdent(~pmu:mo - 1) Error in chol((value + t(value))/2) : non-positive definite matrix in chol I know the problem is with the random interaction terms, but I don't know how to overcome this. Any advice would be greatly appreciated. I'm new to R and analysis such as this. Thank you, Sarah Mclean [EMAIL PROTECTED] http://mobile.yahoo.com.au - Yahoo! Mobile - Check compose your email via SMS on your Telstra or Vodafone mobile. __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help http://mobile.yahoo.com.au - Yahoo! Mobile - Check compose your email via SMS on your Telstra or Vodafone mobile. __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
[R] crossed random effects
Hi, I have a data set on germination and plant growth with the following variables: dataset=fm mass (response) sub (fixed effect) moist (fixed effect) pop (fixed effect) mum (random effect nested within population) iheight (covariate) plot (random effect- whole plot factor for split-plot design). I want to see if moist or sub interacts with mum for any of the pops, but I am getting an error message. This is the formula I used: fm$pmu - getGroups(fm, ~1|pop/mum, level=2) fm$grp = as.factor(rep(1,nrow(fm))) fm$pl - getGroups(fm, ~1|plot) fm$mo - getGroups(fm, ~1|moist) fm$su - getGroups(fm, ~1|sub) fm1 - lme(sqrt(mass) ~ iheight + moist*sub*pop, data=fm, random=list(grp=pdBlocked(list(pdIdent(~pl - 1), pdIdent(~pmu - 1), pdIdent(~pmu:su - 1), pdIdent(~pmu:mo - 1) Error in chol((value + t(value))/2) : non-positive definite matrix in chol I know the problem is with the random interaction terms, but I don't know how to overcome this. Any advice would be greatly appreciated. I'm new to R and analysis such as this. Thank you, Sarah Mclean [EMAIL PROTECTED] http://mobile.yahoo.com.au - Yahoo! Mobile - Check compose your email via SMS on your Telstra or Vodafone mobile. __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
[R] crossed random effects
Hi, if I have posted this twice, please ignore this. I'm not sure if I sent it to the correct e-mail address the first time. I have a data set on germination and plant growth with the following variables: dataset=fm mass (response) sub (fixed effect) moist (fixed effect) pop (fixed effect) mum (random effect nested within population) iheight (covariate) plot (random effect- whole plot factor for split-plot design). I want to see if moist or sub interacts with mum for any of the pops, but I am getting an error message. This is the formula I used: fm$pmu - getGroups(fm, ~1|pop/mum, level=2) fm$grp = as.factor(rep(1,nrow(fm))) fm$pl - getGroups(fm, ~1|plot) fm$mo - getGroups(fm, ~1|moist) fm$su - getGroups(fm, ~1|sub) fm1 - lme(sqrt(mass) ~ iheight + moist*sub*pop, data=fm, random=list(grp=pdBlocked(list(pdIdent(~pl - 1), pdIdent(~pmu - 1), pdIdent(~pmu:su - 1), pdIdent(~pmu:mo - 1) Error in chol((value + t(value))/2) : non-positive definite matrix in chol I know the problem is with the random interaction terms, but I don't know how to overcome this. Any advice would be greatly appreciated. I'm new to R and analysis such as this. Thank you, Sarah Mclean [EMAIL PROTECTED] http://mobile.yahoo.com.au - Yahoo! Mobile - Check compose your email via SMS on your Telstra or Vodafone mobile. __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help