What does the warning message "1: Singular precision matrix in level -1, block 1" mean? I get this warning 50+ times when I try to fit the following model lme( response ~ covariateA + poly(covariateB,3), ~poly(covariateB,3)|group ) It's not a small dataset - a set of up to 20 blood pressure readings on just over 2000 people, and I don't get the error message when I try to fit fewer random effects (although I'm not sure whether fitting random effects poly(B,2) with fixed effects poly(B,3) is generally the same as fitting random effects B+B^2 with fixed effects B+B^2+B^3). Sometimes I don't get the error message when I use subsets of the data, but that isn't guaranteed to be the case. If anybody could give me pointers to references for or could answer either question themselves (1. why the error message/what's causing it and 2. fitting random polynomials using poly()) I would be very grateful.
Thomas W Blackwell
2003-Jun-23 14:30 UTC
[R] precision matrix for polynomial growth curves
Robert - Just guessing, does the growth curve for any individual have exactly four points ? If so, then the fit with an order 3 polynomial would be exact, and have zero residual variance, while the fit with an order 2 polynomial would likely still have non-zero residuals. Another way the same thing might happen: Could any of the growth curves in the data set have been interpolated using a third order polynomial in covariateB ? This, too, would produce zero residuals in a subsequent third order polynomial fit, even if there are many more than four points in the curve. Note that these are just guesses, without knowing anything about the innards of lme(). - tom blackwell - u michigan medical school - ann arbor - On Mon, 23 Jun 2003, Robert Cuffe wrote:> What does the warning message > "1: Singular precision matrix in level -1, block 1" mean? > > I get this warning 50+ times when I try to fit the following > model > > lme( response ~ covariateA + poly(covariateB,3), ~poly(covariateB,3)|group ) > > It's not a small dataset - a set of up to 20 blood pressure > readings on just over 2000 people, and I don't get the error > message when I try to fit fewer random effects (although I'm > not sure whether fitting random effects poly(B,2) with fixed > effects poly(B,3) is generally the same as fitting random > effects B+B^2 with fixed effects B+B^2+B^3). > > Sometimes I don't get the error message when I use subsets of > the data, but that isn't guaranteed to be the case. > > If anybody could give me pointers to references for or > could answer either question themselves (1. why the error > message/what's causing it and 2. fitting random polynomials > using poly()) I would be very grateful.
Reasonably Related Threads
- ordinary polynomial coefficients from orthogonal polynomials?
- Orthogonal Polynomial Regression Parameter Estimation
- polynomial regression and poly
- Recommended package nlme: bug in predict.lme when an independent variable is a polynomial (PR#8905)
- polynomial contrasts in R