a_lampei <anna.lampei-bucharova <at> uni-tuebingen.de> writes: > > Dear all, > I have a problem with interactions in lmer. I have 2 factors (garden and > gebiet) which interact, plus one other variable (home), > dataframe arr. When > I put: > / > lmer (biomass ~ home + garden:gebiet + ( 1|Block), data = arr)/ > > it writes: > /Error in lme4::lFormula(formula = biomass ~ home + garden:gebiet > + (1 | : > rank of X = 28 < ncol(X) = 30/ > > In the lmer help I found out that if not all combination of > the interaction > are realized, lmer has problems and one should do new variable using > "interaction", which I did: > / > arr$agg <- interaction (arr$gebiet, arr$garden, drop = TRUE)/ > > when I fit the interaction term now: > / > lmer (biomass ~ home + agg+ ( 1|Block), data = arr)/ > > The error does not change: > / > Error in lme4::lFormula(formula = biomass ~ home + agg + (1 | Block), : > rank of X = 28 < ncol(X) = 29/ > > No NAs are in the given variables in the dataset. > > Interestingly it works when I put only given interaction like > > /lmer (biomass ~ agg + ( 1|Block), data = arr)/ > > Even following models work: > /lmer (biomass ~ gebiet*garden + ( 1|Block), data = arr) > lmer (biomass ~ garden + garden:gebiet +( 1|Block), data = arr)/ > > But if I add the interaction term in th enew formate of > the new fariable, it > reports again the same error. > > /lmer (biomass ~ garden + agg +( 1|Block), data = arr)/ > > If I put any other variable from the very same dataframe > (not only variable > "home"), the error is reported again. > > I do not understand it, the new variable is just another > factor now, or? And > it is in the same dataframe, it has the same length. > > Does anyone have any idea? > > Thanks a lot, Anna >
This probably belongs on r-sig-mixed-models. Presumably 'home' is still correlated with one of the columns of 'garden:gebiet'. Here's an example of how you can use svd() to find out which of your columns are collinear: set.seed(101) d <- data.frame(x=runif(100),y=1:100,z=2:101) m <- model.matrix(~x+y+z,data=d) s <- svd(m) zapsmall(s$d) ## [1] 828.8452 6.6989 2.6735 0.0000 ## this tells us there is one collinear component zapsmall(s$v) ## [,1] [,2] [,3] [,4] ## [1,] -0.0105005 -0.7187260 0.3872847 0.5773503 ## [2,] -0.0054954 -0.4742947 -0.8803490 0.0000000 ## [3,] -0.7017874 0.3692117 -0.1945349 0.5773503 ## [4,] -0.7122879 -0.3495142 0.1927498 -0.5773503 ## this tells us that the first (intercept), third (y), ## and fourth (z) column of the model matrix are ## involved in the collinear term, i.e. ## 1+y-z is zero ______________________________________________ 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.