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(): Higher weight in case of more measurements
2 messages · Susanne Susanne, Ken Beath
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:
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)
_______________________________________________ R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
*Ken Beath* Lecturer Statistics Department MACQUARIE UNIVERSITY NSW 2109, Australia Phone: +61 (0)2 9850 8516 Level 2, AHH http://stat.mq.edu.au/our_staff/staff_-_alphabetical/staff/beath,_ken/ CRICOS Provider No 00002J This message is intended for the addressee named and may...{{dropped:9}}