An empty two level model has 2 variance components, eij and u0j (icc=u0j/(u0j+eij)).
Is var(dependent variable)=eij+u0j ?
Lets write a function;
require(nlme) require(MASS)
#ICCbreaks from 0 to .99, how many breaks for ICC?
# what is your total variance for a two level null model (eij+u0j)?
# on a scale 1 to 3 how unbalanced your data? 1 is perfect balance, 2 is some unbalance, 3 is ..
singleVSmlmVAR=function(ICCbreaks=100,totalvar=100,unbal=1){
if(ICCbreaks<3)ICCbreaks=3 plotdata=matrix(0,ncol=3,nrow=ICCbreaks)
icc=seq(0,.99,length.out=ICCbreaks) for(i in 1:ICCbreaks){ l1var=totalvar-(icc[i]*totalvar) l2var=(icc[i]*totalvar) if(unbal==3)probs=runif(50) if(unbal==3)wid=data.frame(l1id=1:1000,l2id=sample(1:50,1000,prob=runif(50)/sum(probs),replace = T),rij=mvrnorm(1000,0,Sigma=l1var,empirical = T)) if(unbal==1)wid=data.frame(l1id=1:1000,l2id=rep(1:50,each=20),rij=mvrnorm(1000,0,Sigma=l1var,empirical = T)) if(unbal==2)wid=data.frame(l1id=1:1000,l2id=sample(1:50,1000,replace = T),rij=mvrnorm(1000,0,Sigma=l1var,empirical = T))
cid=data.frame(l2id=1:50,u0j=mvrnorm(50,0,Sigma=l2var,empirical = T)) iccdata=merge(wid,cid,by="l2id") iccdata$y=with(iccdata,100+rij+u0j) plotdata[i,1]=var(iccdata$y) Null.Model<-lme( y~1,random=~1|l2id,data=iccdata) plotdata[i,2]=(as.numeric(VarCorr(Null.Model)[1])+as.numeric(VarCorr(Null.Model)[2])) plotdata[i,3]=icc[i] plotdata=data.frame(plotdata) names(plotdata)=c("Svar","Tvar","icc") } return(plotdata) }
1. Balanced case, 100 ICCs, eij+u0j=100
attach(singleVSmlmVAR(100,100,1)) plot(icc,(Tvar-Svar))
Tvar is eij+u0j and Svar=var(dependent variable)
The difference is 0 when ICC is 0 and only about 2 when ICC is 1 (compare to 100)
2. Unbalanced case, 100 ICCs, eij+u0j=100
attach(singleVSmlmVAR(100,100,2)) plot(icc,(Tvar-Svar))
The difference is 0 when ICC is 0 and varies as ICC goes to 1, ranged between -10 and 10
2. Sparse case, 100 ICCs, eij+u0j=100
attach(singleVSmlmVAR(100,100,3)) plot(icc,(Tvar-Svar))
The difference is 0 when ICC is 0 and varies as ICC goes to 1, ranged between -30 and 30.