Skip to content

lmer(): Higher weight in case of more measurements

2 messages · Susanne Susanne, Ken Beath

#
Hello everyone,
?
I just saw now, that my last emails were empty. I had this question regarding the lme4 package. 
I want to  regress a simple
 
  lmer(y ~ x + (x | group),

but the number of datapoints vary among groups.
 
So what I want is to weight groups, which have more measurements than others, slightly higher (as they provide more information).

 
My question is: Is this done automatically in the lmer() function or should I do it manually by myself?


It seems an easy question, but I tried a small example which I attached and it's very contradictory.

The upper two pictures seem to proove that lmer doesn't weight groups higher which report more datapoints. I get the same regression line, independent of whether the blue group has more or less datapoints.

In the lower two pictures I used the "weights=" argument to weight the blue group higher. And then suddenly it seems to matter how many datapoints a group has. I used the same weights in both pictures, but now I get different regression lines, dependent of how many datapoints the blue group has. 
??

I really need to know this for my thesis and would be very thankful if someone could help me!

Susanne
?

?

I add my code:

# Data 
# many Values 
x <- c(2, 4, 1, 1.25, 1.5,1.75, 2,2.25, 2.5, 2.75, 3, 3.25, 3.5,3.75,4,4.25, 4.5, 4.75, 5) 
y <- c(0.2, 0.4, 0.5, 0.525, 0.57, 0.575, 0.62, 0.625, 0.65, 0.677, 0.7,0.726,0.75,0.775,0.8,0.827,0.85,0.873, 0.9) 
group <- c(1,1,rep(2,17)) 

# Less values 
x <- c(2, 4, 1, 3.25, 5) y <- c(0.2, 0.4,0.5,0.726, 0.9) 
group <- c(1,1,rep(2,3)) 

# Weights 
if(weights == "Default"){ w <- NULL } 

if(weights == "Disequilibrated"){
   w <- c(1,1, rep(5000,17)) 
  # or for less values 
  w <- c(1,1, rep(5000,3)) 
  # scale weights to sum weights=number of values 
  w <- length(w)*w/sum(w) } 

# Lme Model 
lmeModel <- lmer(y ~ x + (x|group), weights=w) 
s <- summary(lmeModel) 

# Plot 
plot(x,y, pch=16, col=c(1,1,rep(2,17)), xlim=c(min(x),max(x)),ylim=c(min(y),max(y)), ylab="y",xlab="x",main="Random Intercept + Slope") abline(s$coefficients[1,1],s$coefficients[2,1], lty=2, col = 1)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Plots.png
Type: image/png
Size: 52978 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20150624/7151476b/attachment-0001.png>
#
lmer will sort out by itself the fact that some groups are larger than the
others. weights is used when an individual point is the summary of a number
of observations.

When generating data sets to test things 2 groups isn't enough, use a
similar number that would be used in the analysis, and generate the data
randomly, that way the results can be compared to what is expected.
On 24 June 2015 at 23:10, Susanne Susanne <susanne.stat at gmx.de> wrote: