Professional Documents
Culture Documents
numberofvariables<-5
numberoflatent<-3
set.seed(123456)
library(VIM)
library(simFrame)
library(simPopulation)
library(rrcov)
library(rrcovNA)
library(RColorBrewer)
library(mvtnorm)
library(mi)
library(mice)
library(lme4)
n<-500
asim<-5000
ls195<-rep(NA,asim)
ls295<-rep(NA,asim)
ls395<-rep(NA,asim)
ls495<-rep(NA,asim)
ls595<-rep(NA,asim)
rs195<-rep(NA,asim)
rs295<-rep(NA,asim)
rs395<-rep(NA,asim)
rs495<-rep(NA,asim)
rs595<-rep(NA,asim)
mu<-0
pv1<-rep(NA,asim)
pv2<-rep(NA,asim)
pv3<-rep(NA,asim)
pv4<-rep(NA,asim)
pv5<-rep(NA,asim)
l<-rep(NA,5000)
r<-rep(NA,5000)
for(i in 1:5000)
{
set.seed(i)
effect<-matrix(c(1,5,.7,0,1,1.6,0,.0,3.39,1,0.5,2,.7,.5,.3),nrow=numberoflatent
,ncol=numberofvariables,byrow=TRUE)
#measurement model
model<-matrix(c(1,8,-9,7,5,0,1,0,4,4,0,0,1,2,5,0,0,0,1,-
5,0,0,0,0,1),nrow=numberofvariables,byrow=TRUE)
uniqueness<-communality
errorweight<-sqrt(uniqueness)
errorweight<-diag(errorweight) #how much to weight the errors
truescores<-matrix(rnorm(numberofcases*(numberoflatent)),numberofcases)
#create true scores for the latent variables.
Matrix 200 by 3.
round(cor(truescores),2)
truescores<-truescores%*%effect #create true scores to reflect
structural relations
observedscore<-truescores%*%tmodel
round(cor(observedscore),2) #show the true score correlation
matrix (without error)
error<- matrix(rnorm(numberofcases*(numberofvariables)),numberofcases) #create
normal error scores
#error<- matrix(rchisq(1000,5),ncol=5) #create chisquare error scores
pindar1=data.frame(V1,V2,V3,V4,V5)
ls195[i]<-mean(pindar[,1])-qt(0.975,499)*sqrt(var(pindar[,1])/n)
ls295[i]<-mean(pindar[,2])-qt(0.975,499)*sqrt(var(pindar[,2])/n)
ls395[i]<-mean(pindar[,3])-qt(0.975,499)*sqrt(var(pindar[,3])/n)
ls495[i]<-mean(pindar[,4])-qt(0.975,499)*sqrt(var(pindar[,4])/n)
ls595[i]<-mean(pindar[,5])-qt(0.975,499)*sqrt(var(pindar[,5])/n)
rs195[i]<-mean(pindar[,1])+qt(0.975,499)*sqrt(var(pindar[,1])/n)
rs295[i]<-mean(pindar[,2])+qt(0.975,499)*sqrt(var(pindar[,2])/n)
rs395[i]<-mean(pindar[,3])+qt(0.975,499)*sqrt(var(pindar[,3])/n)
rs495[i]<-mean(pindar[,4])+qt(0.975,499)*sqrt(var(pindar[,4])/n)
rs595[i]<-mean(pindar[,5])+qt(0.975,499)*sqrt(var(pindar[,5])/n)
l[i]<-t.test(pindar[,1],alternative="two.sided",mu = 0,conf.level=0.95)$conf.int[1]
r[i]<-t.test(pindar[,1],alternative="two.sided",mu = 0,conf.level=0.95)$conf.int[2]
##p-value
pv1[i]<-t.test(pindar[,1],alternative="two.sided",mu=0)$p.value
pv2[i]<-t.test(pindar[,2],alternative="two.sided",mu=0)$p.value
pv3[i]<-t.test(pindar[,3],alternative="two.sided",mu=0)$p.value
pv4[i]<-t.test(pindar[,4],alternative="two.sided",mu=0)$p.value
pv5[i]<-t.test(pindar[,5],alternative="two.sided",mu=0)$p.value
}
##length of intervals
mean(rs195-ls195)
mean(rs295-ls295)
mean(rs395-ls395)
mean(rs495-ls495)
mean(rs595-ls595)
##pvalues
mean(pv1<0.05)
mean(pv2<0.05)
mean(pv3<0.05)
mean(pv4<0.05)
mean(pv5<0.05)
hist(pv)