[R] Stratifying level-1 variance with lmer()
    David Afshartous 
    dafshartous at med.miami.edu
       
    Tue Feb  5 22:34:42 CET 2008
    
    
  
All,
I've fit some models via lme() and now I'm trying to fit similar models with
lmer() for some simulations I'm running.
The model below (fm1) has an intercept variance that depends on treatment
group.  How would one accomplish a similar stratification for the level-1
variance, i.e., the within-group or patient variance?
With lme() I was able to do this via:
update(fm1,
weights = varIdent(form = ~ 1 | treatment.ind) )
However, this does not work for lmer().  Is there any way around this?
Model and simulated data below.
Cheers,
David
 
fm1 = lmer (y ~  treatment.ind + ( 0 + placebo.ind | person1) + (0 +
treatment.ind | person1), data = fake)
###################
Strat.mean.var.simple <- function (J, K){
 # function to generate simple longit
     time <- rep(seq(0,1, ,length=K), J) # K measurements
     person <- rep(1:(J/2), each = K)
     treatment <- rep(0:1, each = J/2)
     treatment.ind <- rep(0:1, each = (J/2)*K)
     person1 <- rep(1:J, ,each = K)
     placebo.ind.1 <- treatment.ind < 1
     placebo.ind = ifelse( placebo.ind.1, 1, 0)
 #
     mu.a.true.P = 4.8
     mu.a.true.T = 8.8
     sigma.a.true.P = 2.2
     sigma.a.true.T = 4.2
     sigma.y.true = 1.2
 #
     a.true.P = rnorm (J/2, mu.a.true.P, sigma.a.true.P)
     a.true.T = rnorm (J/2, mu.a.true.T, sigma.a.true.T)
 #
     y.P <- rnorm( (J/2)*K, a.true.P[person], sigma.y.true)
     y.T <- rnorm( (J/2)*K, a.true.T[person], sigma.y.true)
     y <- c(y.P, y.T)
     return ( data.frame (y, time, person1, treatment.ind, placebo.ind))
 }
 
 
 J = 10
 K = 4
 set.seed(500)
 fake = Strat.mean.var.simple (J,K)
    
    
More information about the R-help
mailing list