==== normal data ==== R<-1000 pc<-0 pmu1<-0 pmu2<-0 pS1<-1 pS2<-1 pSX<-1 rho<-.5 sm<-1.1521 sy<-1.175234 set.seed(20100402) dir.create('compdata') for (r in 1:R){ for (ab in c(0, .14, .39, .59)){ pa<-ab pb<-ab ## Generate complete data X<-rnorm(500) M<-pmu1+pa*X+rnorm(500) Y<-pmu2+pb*M+pc*X+rnorm(500) rho<-.5 ## auxiliary data by<-sqrt(rho^2/(1-rho^2)/sy) bm<-sqrt(rho^2/(1-rho^2)/sm) V<-bm*M+rnorm(500) W<-by*Y+rnorm(500) ## all data together dset<-cbind(X, M, Y, V, W) write.table(dset, paste('compdata/500-','ab-',ab,'-r',r,'.txt', sep=''), row.names=F, col.names=F) ## select data with a fixed sample size for (N in c(50,100,200)){ ## MCAR data rate<-c(0.1,0.2,0.4) X<-dset[1:N,1] for (i in 1:3){ M<-dset[1:N,2] Y<-dset[1:N,3] M[sample(1:N, N*rate[i])]<-NA Y[sample(1:N, N*rate[i])]<-NA ## create a folder folder.name<-paste('ab',ab,'N',N,'MCAR','M',rate[i],sep='') if (!file.exists(folder.name)) dir.create(folder.name) ## no auxiliary variables out.name<-paste(folder.name,'/data-noav-',r,'.txt',sep='') write.table(cbind(X,M,Y), out.name, row.names=F, col.names=F, na='99999') ## with auxiliary variables out.name<-paste(folder.name,'/data-av-',r,'.txt',sep='') write.table(cbind(X,M,Y,dset[1:N,4:5]), out.name, row.names=F, col.names=F, na='99999') } ##End of MCAR data ## Start of MAR data rate<-c(9,4,1.5) mrate<- -log(rate) X<-dset[1:N,1] for (i in 1:3){ M<-dset[1:N,2] Y<-dset[1:N,3] rate.m<-exp(mrate[i]+X)/(1+exp(mrate[i]+X)) rate.y<-exp(mrate[i]+X)/(1+exp(mrate[i]+X)) M[runif(N)par), na.rm=T)*100 power<-mean((temp[,5]>0) | (temp[,9]<0), na.rm=T)*100 c(bias, cvg, power) } for (ab in c(0, .14, .39, .59)){ for (N in c(50,100,200)){ for (miss in c('MCAR','MNAR1', 'MNAR2')){ for (rate in c(.1,.2,.4) ){ for (av in c('av','noav')){ res.name<-paste('ab',ab,'N',N,miss,'M',rate,av,'-em-results.txt',sep='') if (file.exists(res.name)){ cat(ab, N, miss, rate, av, runone(res.name, ab),'\n') } } } } for (miss in 'MAR'){ for (rate in c(1.5, 4, 9) ){ for (av in c('av','noav')){ res.name<-paste('ab',ab,'N',N,miss,'M',rate,av,'-em-results.txt',sep='') if (file.exists(res.name)){ cat(ab, N, miss, rate, av, runone(res.name, ab),'\n') } } } } } } ==== Lognormal data ==== R<-200 pc<-0 pmu1<-0 pmu2<-0 pS1<-1 pS2<-1 pSX<-1 rho<-.5 sm<-1.1521 sy<-1.175234 set.seed(20100402) dir.create('compdata') for (r in 1001:1100){ for (ab in c(0, .14, .39, .59)){ pa<-ab pb<-ab ## Generate complete data X<-rlnorm(500) M<-pmu1+pa*X+rlnorm(500) Y<-pmu2+pb*M+pc*X+rlnorm(500) rho<-.5 ## auxiliary data by<-sqrt(rho^2/(1-rho^2)/sy) bm<-sqrt(rho^2/(1-rho^2)/sm) V<-bm*M+rlnorm(500) W<-by*Y+rlnorm(500) ## all data together dset<-cbind(X, M, Y, V, W) write.table(dset, paste('compdata/500-','ab-',ab,'-r',r,'.txt', sep=''), row.names=F, col.names=F) ## select data with a fixed sample size for (N in c(50,100,200)){ ## MCAR data rate<-c(0.1,0.2,0.4) X<-dset[1:N,1] for (i in 1:3){ M<-dset[1:N,2] Y<-dset[1:N,3] M[sample(1:N, N*rate[i])]<-NA Y[sample(1:N, N*rate[i])]<-NA ## create a folder folder.name<-paste('ab',ab,'N',N,'MCAR','M',rate[i],sep='') if (!file.exists(folder.name)) dir.create(folder.name) ## no auxiliary variables out.name<-paste(folder.name,'/data-noav-',r,'.txt',sep='') write.table(cbind(X,M,Y), out.name, row.names=F, col.names=F, na='99999') ## with auxiliary variables out.name<-paste(folder.name,'/data-av-',r,'.txt',sep='') write.table(cbind(X,M,Y,dset[1:N,4:5]), out.name, row.names=F, col.names=F, na='99999') } ##End of MCAR data ## Start of MAR data rate<-c(9,4,1.5) mrate<- -log(rate) X<-dset[1:N,1] for (i in 1:3){ M<-dset[1:N,2] Y<-dset[1:N,3] rate.m<-exp(mrate[i]+X)/(1+exp(mrate[i]+X)) rate.y<-exp(mrate[i]+X)/(1+exp(mrate[i]+X)) M[runif(N)