Hello all! I?m working with some training datasets in a SAS-based course, trying to do the same things in lme that I do in PROC MIXED. Why don?t lme do an analysis on this dataset when I use the model water*temp? The trouble comes from the water:temp term, as it works with water+temp. The data are, indeed, assymetric but lm accepts the water:temp term giving results in the F-test near what PROC MIXED produces. MIXED accepts the model. The water:temp term can be removed from the model according to the F-test in SAS (and to the lm model without any random term). Doing so in both MIXED and lme gives reasonably similar results for both systems. What do the error message mean, and how can I get around this? /CG The dataset:> milkwater temp rep maill4 maill6 maill8 taste4 taste6 taste8 1 1 100 1 2.90 2.13 2.39 10.1 10.0 9.6 2 1 100 2 2.19 2.20 2.27 11.0 9.3 11.0 3 1 100 3 2.13 2.20 2.41 10.1 7.0 9.6 4 1 110 1 2.13 2.34 2.41 11.0 10.5 9.8 5 1 110 2 2.32 2.27 2.25 11.0 11.3 11.2 6 1 110 3 2.13 2.34 2.42 9.4 10.7 9.0 7 1 120 1 2.00 2.49 2.71 11.1 11.2 11.4 8 1 120 2 2.41 2.49 2.46 11.6 11.7 9.6 9 1 120 3 2.22 2.49 2.73 10.7 10.3 10.2 10 2 100 1 2.13 2.41 2.49 11.1 10.8 11.2 11 2 100 2 2.49 2.34 2.53 11.1 11.2 9.2 12 2 100 3 2.80 2.63 3.33 8.3 9.7 7.8 13 2 120 1 2.38 2.85 2.06 11.9 11.2 11.2 14 2 120 2 2.61 2.70 2.70 11.7 10.8 11.0 15 2 120 3 2.77 3.06 3.25 10.9 9.0 9.4 16 2 140 1 2.56 2.84 3.10 10.7 11.2 9.8 17 2 140 2 2.63 2.61 2.81 10.8 11.0 11.6 18 2 140 3 2.99 3.28 3.75 9.2 9.6 9.6 19 3 100 1 2.60 2.24 2.32 10.8 8.4 10.8 20 3 100 2 2.06 2.11 2.20 11.0 11.2 11.8 21 3 100 3 1.98 2.34 2.80 10.3 10.2 10.6 22 3 110 1 1.91 2.06 2.29 11.0 11.4 9.4 23 3 110 2 1.98 1.98 2.15 10.0 11.8 10.6 24 3 110 3 1.98 2.51 2.81 9.3 9.2 10.2 25 3 140 1 2.27 2.42 2.72 10.8 11.6 12.0 26 3 140 2 2.27 2.20 2.41 11.2 11.0 11.4 27 3 140 3 2.20 2.77 3.06 10.5 10.2 10.0 The failing model:> lme(maill6 ~ water * temp , random= ~1|rep, data = milk)Error in MEEM(object, conLin, control$niterEM) : Singularity in backsolve at level 0, block 1 The smaller (working) model:> lme(maill6 ~ water + temp , random= ~1|rep, data = milk)Linear mixed-effects model fit by REML Data: milk Log-restricted-likelihood: 4.922178 Fixed: maill6 ~ water + temp (Intercept) water2 water3 temp110 temp120 temp140 2.19466667 0.32800000 -0.04533333 0.07800000 0.32133333 0.35066667 Random effects: Formula: ~1 | rep (Intercept) Residual StdDev: 0.1477760 0.1323057 Number of Observations: 27 Number of Groups: 3>CG Pettersson, MSci, PhD Stud. Swedish University of Agricultural Sciences Dep. of Ecology and Crop Production. Box 7043 SE-750 07 Uppsala
CG Pettersson <cg.pettersson at evp.slu.se> writes:> Hello all! > > I?m working with some training datasets in a SAS-based course, trying > to do the same things in lme that I do in PROC MIXED. > > Why don?t lme do an analysis on this dataset when I use the model > water*temp? > The trouble comes from the water:temp term, as it works with > water+temp. > The data are, indeed, assymetric but lm accepts the water:temp term > giving results in the F-test near what PROC MIXED produces. MIXED > accepts the model. > > The water:temp term can be removed from the model according to the > F-test in SAS (and to the lm model without any random term). Doing so > in both MIXED and lme gives reasonably similar results for both > systems. > > What do the error message mean, and how can I get around this?Because of missing cells in the design> xtabs(~water + temp, milk)temp water 100 110 120 140 1 3 3 3 0 2 3 0 3 3 3 3 3 0 3 the model matrix for the fixed effects is rank deficient. In lm the rank deficiency is detected and appropriate adjustments made> coef(summary(lm(maill6 ~ water * temp, milk)))Estimate Std. Error t value Pr(>|t|) (Intercept) 2.17666667 0.1142339 19.0544730 2.218661e-13 water2 0.28333333 0.1615511 1.7538308 9.647013e-02 water3 0.05333333 0.1615511 0.3301329 7.451108e-01 temp110 0.14000000 0.1615511 0.8665987 3.975669e-01 temp120 0.31333333 0.1615511 1.9395305 6.827304e-02 temp140 0.23333333 0.1615511 1.4443312 1.658280e-01 water3:temp110 -0.18666667 0.2284678 -0.8170371 4.245898e-01 water2:temp120 0.09666667 0.2284678 0.4231085 6.772282e-01 water2:temp140 0.21666667 0.2284678 0.9483467 3.555125e-01 Notice that you would expect 6 degrees of freedom for the interaction term but only three coefficients are estimated. In lme it is much more difficult to compensate for such rank deficiencies because they could be systematic, like this, or they could be due to relative precision parameters approaching zero during the iterations. Because of this we just report the error (although admittedly we could be a bit more explicit about the nature of the problem - we are reporting the symptom that we detect, not the probable cause).> The dataset: > > milk > water temp rep maill4 maill6 maill8 taste4 taste6 taste8 > 1 1 100 1 2.90 2.13 2.39 10.1 10.0 9.6 > 2 1 100 2 2.19 2.20 2.27 11.0 9.3 11.0 > 3 1 100 3 2.13 2.20 2.41 10.1 7.0 9.6 > 4 1 110 1 2.13 2.34 2.41 11.0 10.5 9.8 > 5 1 110 2 2.32 2.27 2.25 11.0 11.3 11.2 > 6 1 110 3 2.13 2.34 2.42 9.4 10.7 9.0 > 7 1 120 1 2.00 2.49 2.71 11.1 11.2 11.4 > 8 1 120 2 2.41 2.49 2.46 11.6 11.7 9.6 > 9 1 120 3 2.22 2.49 2.73 10.7 10.3 10.2 > 10 2 100 1 2.13 2.41 2.49 11.1 10.8 11.2 > 11 2 100 2 2.49 2.34 2.53 11.1 11.2 9.2 > 12 2 100 3 2.80 2.63 3.33 8.3 9.7 7.8 > 13 2 120 1 2.38 2.85 2.06 11.9 11.2 11.2 > 14 2 120 2 2.61 2.70 2.70 11.7 10.8 11.0 > 15 2 120 3 2.77 3.06 3.25 10.9 9.0 9.4 > 16 2 140 1 2.56 2.84 3.10 10.7 11.2 9.8 > 17 2 140 2 2.63 2.61 2.81 10.8 11.0 11.6 > 18 2 140 3 2.99 3.28 3.75 9.2 9.6 9.6 > 19 3 100 1 2.60 2.24 2.32 10.8 8.4 10.8 > 20 3 100 2 2.06 2.11 2.20 11.0 11.2 11.8 > 21 3 100 3 1.98 2.34 2.80 10.3 10.2 10.6 > 22 3 110 1 1.91 2.06 2.29 11.0 11.4 9.4 > 23 3 110 2 1.98 1.98 2.15 10.0 11.8 10.6 > 24 3 110 3 1.98 2.51 2.81 9.3 9.2 10.2 > 25 3 140 1 2.27 2.42 2.72 10.8 11.6 12.0 > 26 3 140 2 2.27 2.20 2.41 11.2 11.0 11.4 > 27 3 140 3 2.20 2.77 3.06 10.5 10.2 10.0 > > The failing model: > > lme(maill6 ~ water * temp , random= ~1|rep, data = milk) > Error in MEEM(object, conLin, control$niterEM) : > Singularity in backsolve at level 0, block 1 > > The smaller (working) model: > > lme(maill6 ~ water + temp , random= ~1|rep, data = milk) > Linear mixed-effects model fit by REML > Data: milk > Log-restricted-likelihood: 4.922178 > Fixed: maill6 ~ water + temp > (Intercept) water2 water3 temp110 temp120 > temp140 > 2.19466667 0.32800000 -0.04533333 0.07800000 0.32133333 > 0.35066667 > > Random effects: > Formula: ~1 | rep > (Intercept) Residual > StdDev: 0.1477760 0.1323057 > > Number of Observations: 27 > Number of Groups: 3 > > > > > > > CG Pettersson, MSci, PhD Stud. > Swedish University of Agricultural Sciences > Dep. of Ecology and Crop Production. Box 7043 > SE-750 07 Uppsala > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html-- Douglas Bates bates at stat.wisc.edu Statistics Department 608/262-2598 University of Wisconsin - Madison http://www.stat.wisc.edu/~bates/
Thanks a lot for the answer! Now, I only have the last one left - How do I get round it? I knew about the missing cells in the design, but didn?t know how lme would react on them. In this case, I can remove the water:temp term, but how can I be sure that this is the right thing to do? Is the lm run without the random term enough for removing water:temp from the lme model, or do I have to do a PROC MIXED run with the random term to make that decision in a case like this? Is it possible (for me) to understand why MIXED accepts the design but not lme? They ought to get the same sort of problems, or have I missed something? /CG -------------------> CG Pettersson <cg.pettersson at evp.slu.se> writes: > > > Hello all! > > > > I?m working with some training datasets in a SAS-based course,trying> > to do the same things in lme that I do in PROC MIXED. > > > > Why don?t lme do an analysis on this dataset when I use the model > > water*temp? > > The trouble comes from the water:temp term, as it works with > > water+temp. > > The data are, indeed, assymetric but lm accepts the water:tempterm> > giving results in the F-test near what PROC MIXED produces. MIXED > > accepts the model. > > > > The water:temp term can be removed from the model according to the > > F-test in SAS (and to the lm model without any random term). Doingso> > in both MIXED and lme gives reasonably similar results for both > > systems. > > > > What do the error message mean, and how can I get around this? > > Because of missing cells in the design > > > xtabs(~water + temp, milk) > temp > water 100 110 120 140 > 1 3 3 3 0 > 2 3 0 3 3 > 3 3 3 0 3 > > the model matrix for the fixed effects is rank deficient. In lm the > rank deficiency is detected and appropriate adjustments made > > > coef(summary(lm(maill6 ~ water * temp, milk))) > Estimate Std. Error t value Pr(>|t|) > (Intercept) 2.17666667 0.1142339 19.0544730 2.218661e-13 > water2 0.28333333 0.1615511 1.7538308 9.647013e-02 > water3 0.05333333 0.1615511 0.3301329 7.451108e-01 > temp110 0.14000000 0.1615511 0.8665987 3.975669e-01 > temp120 0.31333333 0.1615511 1.9395305 6.827304e-02 > temp140 0.23333333 0.1615511 1.4443312 1.658280e-01 > water3:temp110 -0.18666667 0.2284678 -0.8170371 4.245898e-01 > water2:temp120 0.09666667 0.2284678 0.4231085 6.772282e-01 > water2:temp140 0.21666667 0.2284678 0.9483467 3.555125e-01 > > Notice that you would expect 6 degrees of freedom for theinteraction> term but only three coefficients are estimated. > > In lme it is much more difficult to compensate for such rank > deficiencies because they could be systematic, like this, or they > could be due to relative precision parameters approaching zeroduring> the iterations. Because of this we just report the error (although > admittedly we could be a bit more explicit about the nature of the > problem - we are reporting the symptom that we detect, not the > probable cause). > > > > The dataset: > > > milk > > water temp rep maill4 maill6 maill8 taste4 taste6 taste8 > > 1 1 100 1 2.90 2.13 2.39 10.1 10.0 9.6 > > 2 1 100 2 2.19 2.20 2.27 11.0 9.3 11.0 > > 3 1 100 3 2.13 2.20 2.41 10.1 7.0 9.6 > > 4 1 110 1 2.13 2.34 2.41 11.0 10.5 9.8 > > 5 1 110 2 2.32 2.27 2.25 11.0 11.3 11.2 > > 6 1 110 3 2.13 2.34 2.42 9.4 10.7 9.0 > > 7 1 120 1 2.00 2.49 2.71 11.1 11.2 11.4 > > 8 1 120 2 2.41 2.49 2.46 11.6 11.7 9.6 > > 9 1 120 3 2.22 2.49 2.73 10.7 10.3 10.2 > > 10 2 100 1 2.13 2.41 2.49 11.1 10.8 11.2 > > 11 2 100 2 2.49 2.34 2.53 11.1 11.2 9.2 > > 12 2 100 3 2.80 2.63 3.33 8.3 9.7 7.8 > > 13 2 120 1 2.38 2.85 2.06 11.9 11.2 11.2 > > 14 2 120 2 2.61 2.70 2.70 11.7 10.8 11.0 > > 15 2 120 3 2.77 3.06 3.25 10.9 9.0 9.4 > > 16 2 140 1 2.56 2.84 3.10 10.7 11.2 9.8 > > 17 2 140 2 2.63 2.61 2.81 10.8 11.0 11.6 > > 18 2 140 3 2.99 3.28 3.75 9.2 9.6 9.6 > > 19 3 100 1 2.60 2.24 2.32 10.8 8.4 10.8 > > 20 3 100 2 2.06 2.11 2.20 11.0 11.2 11.8 > > 21 3 100 3 1.98 2.34 2.80 10.3 10.2 10.6 > > 22 3 110 1 1.91 2.06 2.29 11.0 11.4 9.4 > > 23 3 110 2 1.98 1.98 2.15 10.0 11.8 10.6 > > 24 3 110 3 1.98 2.51 2.81 9.3 9.2 10.2 > > 25 3 140 1 2.27 2.42 2.72 10.8 11.6 12.0 > > 26 3 140 2 2.27 2.20 2.41 11.2 11.0 11.4 > > 27 3 140 3 2.20 2.77 3.06 10.5 10.2 10.0 > > > > The failing model: > > > lme(maill6 ~ water * temp , random= ~1|rep, data = milk) > > Error in MEEM(object, conLin, control$niterEM) : > > Singularity in backsolve at level 0, block 1 > > > > The smaller (working) model: > > > lme(maill6 ~ water + temp , random= ~1|rep, data = milk) > > Linear mixed-effects model fit by REML > > Data: milk > > Log-restricted-likelihood: 4.922178 > > Fixed: maill6 ~ water + temp > > (Intercept) water2 water3 temp110 temp120 > > temp140 > > 2.19466667 0.32800000 -0.04533333 0.07800000 0.32133333 > > 0.35066667 > > > > Random effects: > > Formula: ~1 | rep > > (Intercept) Residual > > StdDev: 0.1477760 0.1323057 > > > > Number of Observations: 27 > > Number of Groups: 3 > > > > > > > > > > > > > CG Pettersson, MSci, PhD Stud. > > Swedish University of Agricultural Sciences > > Dep. of Ecology and Crop Production. Box 7043 > > SE-750 07 Uppsala > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide!http://www.R-project.org/posting-guide.html> > -- > Douglas Bates bates at stat.wisc.edu > Statistics Department 608/262-2598 > University of Wisconsin - Madisonhttp://www.stat.wisc.edu/~bates/>CG Pettersson, MSci, PhD Stud. Swedish University of Agricultural Sciences Dep. of Ecology and Crop Production. Box 7043 SE-750 07 Uppsala
If you want to try to get the same answers as PROC MIXED, I suggest you try to figure out how SAS codes interactions and which ones it retains. Then you can try code those manually and include them as separate explanatory variables, e.g., I((water=="2")&(temp==110)). You could work this out in "lm" then try the result on "lme". An alternative would be to convert "temp" from a factor to a continuous variable. I would make plots of the response variables vs. "temp" with different lines and symbols for "water" and "rep" to make sure I had something that was mostly linear in some transformation of "temp". hope this helps. spencer graves CG Pettersson wrote:>Thanks a lot for the answer! > >Now, I only have the last one left - How do I get round it? >I knew about the missing cells in the design, but didn?t know how lme >would react on them. > >In this case, I can remove the water:temp term, but how can I be sure >that this is the right thing to do? > >Is the lm run without the random term enough for removing water:temp >from the lme model, or do I have to do a PROC MIXED run with the >random term to make that decision in a case like this? > >Is it possible (for me) to understand why MIXED accepts the design >but not lme? They ought to get the same sort of problems, or have I >missed something? > >/CG > >------------------- > > >>CG Pettersson <cg.pettersson at evp.slu.se> writes: >> >> >> >>>Hello all! >>> >>>I?m working with some training datasets in a SAS-based course, >>> >>> >trying > > >>>to do the same things in lme that I do in PROC MIXED. >>> >>>Why don?t lme do an analysis on this dataset when I use the model >>>water*temp? >>>The trouble comes from the water:temp term, as it works with >>>water+temp. >>>The data are, indeed, assymetric but lm accepts the water:temp >>> >>> >term > > >>>giving results in the F-test near what PROC MIXED produces. MIXED >>>accepts the model. >>> >>>The water:temp term can be removed from the model according to the >>>F-test in SAS (and to the lm model without any random term). Doing >>> >>> >so > > >>>in both MIXED and lme gives reasonably similar results for both >>>systems. >>> >>>What do the error message mean, and how can I get around this? >>> >>> >>Because of missing cells in the design >> >> >> >>>xtabs(~water + temp, milk) >>> >>> >> temp >>water 100 110 120 140 >> 1 3 3 3 0 >> 2 3 0 3 3 >> 3 3 3 0 3 >> >>the model matrix for the fixed effects is rank deficient. In lm the >>rank deficiency is detected and appropriate adjustments made >> >> >> >>>coef(summary(lm(maill6 ~ water * temp, milk))) >>> >>> >> Estimate Std. Error t value Pr(>|t|) >>(Intercept) 2.17666667 0.1142339 19.0544730 2.218661e-13 >>water2 0.28333333 0.1615511 1.7538308 9.647013e-02 >>water3 0.05333333 0.1615511 0.3301329 7.451108e-01 >>temp110 0.14000000 0.1615511 0.8665987 3.975669e-01 >>temp120 0.31333333 0.1615511 1.9395305 6.827304e-02 >>temp140 0.23333333 0.1615511 1.4443312 1.658280e-01 >>water3:temp110 -0.18666667 0.2284678 -0.8170371 4.245898e-01 >>water2:temp120 0.09666667 0.2284678 0.4231085 6.772282e-01 >>water2:temp140 0.21666667 0.2284678 0.9483467 3.555125e-01 >> >>Notice that you would expect 6 degrees of freedom for the >> >> >interaction > > >>term but only three coefficients are estimated. >> >>In lme it is much more difficult to compensate for such rank >>deficiencies because they could be systematic, like this, or they >>could be due to relative precision parameters approaching zero >> >> >during > > >>the iterations. Because of this we just report the error (although >>admittedly we could be a bit more explicit about the nature of the >>problem - we are reporting the symptom that we detect, not the >>probable cause). >> >> >> >> >>>The dataset: >>> >>> >>>>milk >>>> >>>> >>> water temp rep maill4 maill6 maill8 taste4 taste6 taste8 >>>1 1 100 1 2.90 2.13 2.39 10.1 10.0 9.6 >>>2 1 100 2 2.19 2.20 2.27 11.0 9.3 11.0 >>>3 1 100 3 2.13 2.20 2.41 10.1 7.0 9.6 >>>4 1 110 1 2.13 2.34 2.41 11.0 10.5 9.8 >>>5 1 110 2 2.32 2.27 2.25 11.0 11.3 11.2 >>>6 1 110 3 2.13 2.34 2.42 9.4 10.7 9.0 >>>7 1 120 1 2.00 2.49 2.71 11.1 11.2 11.4 >>>8 1 120 2 2.41 2.49 2.46 11.6 11.7 9.6 >>>9 1 120 3 2.22 2.49 2.73 10.7 10.3 10.2 >>>10 2 100 1 2.13 2.41 2.49 11.1 10.8 11.2 >>>11 2 100 2 2.49 2.34 2.53 11.1 11.2 9.2 >>>12 2 100 3 2.80 2.63 3.33 8.3 9.7 7.8 >>>13 2 120 1 2.38 2.85 2.06 11.9 11.2 11.2 >>>14 2 120 2 2.61 2.70 2.70 11.7 10.8 11.0 >>>15 2 120 3 2.77 3.06 3.25 10.9 9.0 9.4 >>>16 2 140 1 2.56 2.84 3.10 10.7 11.2 9.8 >>>17 2 140 2 2.63 2.61 2.81 10.8 11.0 11.6 >>>18 2 140 3 2.99 3.28 3.75 9.2 9.6 9.6 >>>19 3 100 1 2.60 2.24 2.32 10.8 8.4 10.8 >>>20 3 100 2 2.06 2.11 2.20 11.0 11.2 11.8 >>>21 3 100 3 1.98 2.34 2.80 10.3 10.2 10.6 >>>22 3 110 1 1.91 2.06 2.29 11.0 11.4 9.4 >>>23 3 110 2 1.98 1.98 2.15 10.0 11.8 10.6 >>>24 3 110 3 1.98 2.51 2.81 9.3 9.2 10.2 >>>25 3 140 1 2.27 2.42 2.72 10.8 11.6 12.0 >>>26 3 140 2 2.27 2.20 2.41 11.2 11.0 11.4 >>>27 3 140 3 2.20 2.77 3.06 10.5 10.2 10.0 >>> >>>The failing model: >>> >>> >>>>lme(maill6 ~ water * temp , random= ~1|rep, data = milk) >>>> >>>> >>>Error in MEEM(object, conLin, control$niterEM) : >>> Singularity in backsolve at level 0, block 1 >>> >>>The smaller (working) model: >>> >>> >>>>lme(maill6 ~ water + temp , random= ~1|rep, data = milk) >>>> >>>> >>>Linear mixed-effects model fit by REML >>> Data: milk >>> Log-restricted-likelihood: 4.922178 >>> Fixed: maill6 ~ water + temp >>>(Intercept) water2 water3 temp110 temp120 >>>temp140 >>> 2.19466667 0.32800000 -0.04533333 0.07800000 0.32133333 >>>0.35066667 >>> >>>Random effects: >>> Formula: ~1 | rep >>> (Intercept) Residual >>>StdDev: 0.1477760 0.1323057 >>> >>>Number of Observations: 27 >>>Number of Groups: 3 >>> >>> >>> >>> >>>CG Pettersson, MSci, PhD Stud. >>>Swedish University of Agricultural Sciences >>>Dep. of Ecology and Crop Production. Box 7043 >>>SE-750 07 Uppsala >>> >>>______________________________________________ >>>R-help at stat.math.ethz.ch mailing list >>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help >>>PLEASE do read the posting guide! >>> >>> >http://www.R-project.org/posting-guide.html > > >>-- >>Douglas Bates bates at stat.wisc.edu >>Statistics Department 608/262-2598 >>University of Wisconsin - Madison >> >> >http://www.stat.wisc.edu/~bates/ > > >CG Pettersson, MSci, PhD Stud. >Swedish University of Agricultural Sciences >Dep. of Ecology and Crop Production. Box 7043 >SE-750 07 Uppsala > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://www.stat.math.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > >
As Spencer Graves suggested, I tried this with continuous variables. Seems to work ok:> lme(maill6 ~ water * temp , random= ~1|rep, data = milk)Linear mixed-effects model fit by REML Data: milk Log-restricted-likelihood: -10.57237 Fixed: maill6 ~ water * temp (Intercept) water temp water:temp -1.107227891 0.928965420 0.032507653 -0.008792517 Random effects: Formula: ~1 | rep (Intercept) Residual StdDev: 0.1358565 0.2189339 Number of Observations: 27 Number of Groups: 3 For the smaller model, I get:> lme(maill6 ~ water + temp , random= ~1|rep, data = milk)Linear mixed-effects model fit by REML Data: milk Log-restricted-likelihood: -8.068963 Fixed: maill6 ~ water + temp (Intercept) water temp 1.17083333 -0.05819444 0.01212500 Random effects: Formula: ~1 | rep (Intercept) Residual StdDev: 0.1328748 0.2348303 Number of Observations: 27 Number of Groups: 3 Cheers, Dick ******************************************************************************* Richard P. Beyer, Ph.D. University of Washington Tel.:(206) 616 7378 Env. & Occ. Health Sci. , Box 354695 Fax: (206) 685 4696 4225 Roosevelt Way NE, # 100 Seattle, WA 98105-6099 http://depts.washington.edu/ceeh/ServiceCores/FC5/FC5.html ******************************************************************************* Message: 14 Date: Mon, 23 Feb 2004 07:41:07 -0800 From: Spencer Graves <spencer.graves at pdf.com> Subject: Re: [R] lme - problems with model To: CG Pettersson <cg.pettersson at evp.slu.se> Cc: Douglas Bates <bates at stat.wisc.edu>, r-help at stat.math.ethz.ch Message-ID: <403A1F13.7000008 at pdf.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed If you want to try to get the same answers as PROC MIXED, I suggest you try to figure out how SAS codes interactions and which ones it retains. Then you can try code those manually and include them as separate explanatory variables, e.g., I((water=="2")&(temp==110)). You could work this out in "lm" then try the result on "lme". An alternative would be to convert "temp" from a factor to a continuous variable. I would make plots of the response variables vs. "temp" with different lines and symbols for "water" and "rep" to make sure I had something that was mostly linear in some transformation of "temp". hope this helps. spencer graves CG Pettersson wrote:>Thanks a lot for the answer! > >Now, I only have the last one left - How do I get round it? >I knew about the missing cells in the design, but didn´t know how lme >would react on them. > >In this case, I can remove the water:temp term, but how can I be sure >that this is the right thing to do? > >Is the lm run without the random term enough for removing water:temp >from the lme model, or do I have to do a PROC MIXED run with the >random term to make that decision in a case like this? > >Is it possible (for me) to understand why MIXED accepts the design >but not lme? They ought to get the same sort of problems, or have I >missed something? > >/CG > >------------------- > > >>CG Pettersson <cg.pettersson at evp.slu.se> writes: >> >> >> >>>Hello all! >>> >>>I´m working with some training datasets in a SAS-based course, >>> >>> >trying > > >>>to do the same things in lme that I do in PROC MIXED. >>> >>>Why don´t lme do an analysis on this dataset when I use the model >>>water*temp? >>>The trouble comes from the water:temp term, as it works with >>>water+temp. >>>The data are, indeed, assymetric but lm accepts the water:temp >>> >>> >term > > >>>giving results in the F-test near what PROC MIXED produces. MIXED >>>accepts the model. >>> >>>The water:temp term can be removed from the model according to the >>>F-test in SAS (and to the lm model without any random term). Doing >>> >>> >so > > >>>in both MIXED and lme gives reasonably similar results for both >>>systems. >>> >>>What do the error message mean, and how can I get around this? >>> >>> >>Because of missing cells in the design >> >> >> >>>xtabs(~water + temp, milk) >>> >>> >> temp >>water 100 110 120 140 >> 1 3 3 3 0 >> 2 3 0 3 3 >> 3 3 3 0 3 >> >>the model matrix for the fixed effects is rank deficient. In lm the >>rank deficiency is detected and appropriate adjustments made >> >> >> >>>coef(summary(lm(maill6 ~ water * temp, milk))) >>> >>> >> Estimate Std. Error t value Pr(>|t|) >>(Intercept) 2.17666667 0.1142339 19.0544730 2.218661e-13 >>water2 0.28333333 0.1615511 1.7538308 9.647013e-02 >>water3 0.05333333 0.1615511 0.3301329 7.451108e-01 >>temp110 0.14000000 0.1615511 0.8665987 3.975669e-01 >>temp120 0.31333333 0.1615511 1.9395305 6.827304e-02 >>temp140 0.23333333 0.1615511 1.4443312 1.658280e-01 >>water3:temp110 -0.18666667 0.2284678 -0.8170371 4.245898e-01 >>water2:temp120 0.09666667 0.2284678 0.4231085 6.772282e-01 >>water2:temp140 0.21666667 0.2284678 0.9483467 3.555125e-01 >> >>Notice that you would expect 6 degrees of freedom for the >> >> >interaction > > >>term but only three coefficients are estimated. >> >>In lme it is much more difficult to compensate for such rank >>deficiencies because they could be systematic, like this, or they >>could be due to relative precision parameters approaching zero >> >> >during > > >>the iterations. Because of this we just report the error (although >>admittedly we could be a bit more explicit about the nature of the >>problem - we are reporting the symptom that we detect, not the >>probable cause). >> >> >> >> >>>The dataset: >>> >>> >>>>milk >>>> >>>> >>> water temp rep maill4 maill6 maill8 taste4 taste6 taste8 >>>1 1 100 1 2.90 2.13 2.39 10.1 10.0 9.6 >>>2 1 100 2 2.19 2.20 2.27 11.0 9.3 11.0 >>>3 1 100 3 2.13 2.20 2.41 10.1 7.0 9.6 >>>4 1 110 1 2.13 2.34 2.41 11.0 10.5 9.8 >>>5 1 110 2 2.32 2.27 2.25 11.0 11.3 11.2 >>>6 1 110 3 2.13 2.34 2.42 9.4 10.7 9.0 >>>7 1 120 1 2.00 2.49 2.71 11.1 11.2 11.4 >>>8 1 120 2 2.41 2.49 2.46 11.6 11.7 9.6 >>>9 1 120 3 2.22 2.49 2.73 10.7 10.3 10.2 >>>10 2 100 1 2.13 2.41 2.49 11.1 10.8 11.2 >>>11 2 100 2 2.49 2.34 2.53 11.1 11.2 9.2 >>>12 2 100 3 2.80 2.63 3.33 8.3 9.7 7.8 >>>13 2 120 1 2.38 2.85 2.06 11.9 11.2 11.2 >>>14 2 120 2 2.61 2.70 2.70 11.7 10.8 11.0 >>>15 2 120 3 2.77 3.06 3.25 10.9 9.0 9.4 >>>16 2 140 1 2.56 2.84 3.10 10.7 11.2 9.8 >>>17 2 140 2 2.63 2.61 2.81 10.8 11.0 11.6 >>>18 2 140 3 2.99 3.28 3.75 9.2 9.6 9.6 >>>19 3 100 1 2.60 2.24 2.32 10.8 8.4 10.8 >>>20 3 100 2 2.06 2.11 2.20 11.0 11.2 11.8 >>>21 3 100 3 1.98 2.34 2.80 10.3 10.2 10.6 >>>22 3 110 1 1.91 2.06 2.29 11.0 11.4 9.4 >>>23 3 110 2 1.98 1.98 2.15 10.0 11.8 10.6 >>>24 3 110 3 1.98 2.51 2.81 9.3 9.2 10.2 >>>25 3 140 1 2.27 2.42 2.72 10.8 11.6 12.0 >>>26 3 140 2 2.27 2.20 2.41 11.2 11.0 11.4 >>>27 3 140 3 2.20 2.77 3.06 10.5 10.2 10.0 >>> >>>The failing model: >>> >>> >>>>lme(maill6 ~ water * temp , random= ~1|rep, data = milk) >>>> >>>> >>>Error in MEEM(object, conLin, control$niterEM) : >>> Singularity in backsolve at level 0, block 1 >>> >>>The smaller (working) model: >>> >>> >>>>lme(maill6 ~ water + temp , random= ~1|rep, data = milk) >>>> >>>> >>>Linear mixed-effects model fit by REML >>> Data: milk >>> Log-restricted-likelihood: 4.922178 >>> Fixed: maill6 ~ water + temp >>>(Intercept) water2 water3 temp110 temp120 >>>temp140 >>> 2.19466667 0.32800000 -0.04533333 0.07800000 0.32133333 >>>0.35066667 >>> >>>Random effects: >>> Formula: ~1 | rep >>> (Intercept) Residual >>>StdDev: 0.1477760 0.1323057 >>> >>>Number of Observations: 27 >>>Number of Groups: 3 >>> >>> >>> >>> >>>CG Pettersson, MSci, PhD Stud. >>>Swedish University of Agricultural Sciences >>>Dep. of Ecology and Crop Production. Box 7043 >>>SE-750 07 Uppsala >>> >>>______________________________________________ >>>R-help at stat.math.ethz.ch mailing list >>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help >>>PLEASE do read the posting guide! >>> >>> >http://www.R-project.org/posting-guide.html > > >>-- >>Douglas Bates bates at stat.wisc.edu >>Statistics Department 608/262-2598 >>University of Wisconsin - Madison >> >> >http://www.stat.wisc.edu/~bates/ > > >CG Pettersson, MSci, PhD Stud. >Swedish University of Agricultural Sciences >Dep. of Ecology and Crop Production. Box 7043 >SE-750 07 Uppsala > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://www.stat.math.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > >