my aims of simulation evaluate type 1 error rate of tests under several combination of factors.
sample sizes-(10,10),(10,25),(25,25),(25,50),(25,100),50,25),(50,100), (100,25),(100,100)
standard deviation ratio- (1.00, 1.50, 2.00, 2.50, 3.00 , 3.50)
distribution of gamma distribution unequal skewness , equal skewness
the 2 sample test involved pooled variance t test , welch t test , mann whitney test. tried modified code using above combination of factors.
######################################## #for normal distribution setup # ensure reproducity of result #(here declare random seed generator) set.seed(1) ## put samples sizes matrix use loop sample sizes sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100), nrow=2) #create vector combine std deviations sds<-matrix(c(4,4,6,4,8,4,10,4,12,4,14,4),nrow=2) sd1<-c(4,6,8,10,12) sd2<-c(4,4,4,4,4) sds2<-rep(sd2,each=9) ##(use expand.grid)to create data frame combination of data ss_sds1<- expand.grid(sample_sizes[2,], sd1) #create matrix combining fifty 4 cases of combination of ss , sds all_combine <- cbind(rep(sample_sizes[1,], 5), ss_sds1,sds2) # name column sample samples 1 , 2 , standard deviation colnames(all_combine) <- c("m", "n", "sds1","sds2") #number of simulations nsims<-10000 #set significance level,alpha whole simulation alpha<-0.05 #set matrix storing data simulation #set nrow =nsims because wan storing every p-value simulated matrix1_equal <-matrix(0,nrow=nsims,ncol=9) matrix4_unequal<-matrix(0,nrow=nsims,ncol=9) matrix7_mann <-matrix(0,nrow=nsims,ncol=9) #set vector storing data 3 tests (nrow all_combine=45) equal1 <- unequal4<- mann7 <- rep(0, nrow(all_combine)) # loop steps through all_combine matrix for(ss in 1:nrow(all_combine)) { #generate samples first column , second column m<-all_combine[ss,1] n<-all_combine[ss,2] (sim in 1:nsims) { #generate random samples 2 normal distribution x<-rnorm(m,5,all_combine[ss,3]) y<-rnorm(n,5,4) #extract p-value out , store every p-value matrix matrix1_equal[sim,1]<-t.test(x,y,var.equal=true)$p.value matrix4_unequal[sim,4]<-t.test(x,y,var.equal=false)$p.value matrix7_mann[sim,7] <-wilcox.test(x,y)$p.value } ##store result equal1[ss]<- mean(matrix1_equal[,1]<=alpha) unequal4[ss]<-mean(matrix4_unequal[,4]<=alpha) mann7[ss]<- mean(matrix7_mann[,7]<=alpha) } # combine results nresult <- cbind(all_combine, equal1, unequal4, mann7) save.image(file="normal.data")
i new in r , have completed code in normal distribution , have add on 2 more simulation on distribution of gamma distribution using if else...can pls give advice how change normal distr. gamma distr? stucking in part right now...
help!! code above gave me result 0.00 several times, check them many times , yet did not spot mistake. please
this current coding..
######################################## #for normal distribution setup # ensure reproducity of result #(here declare random seed generator) set.seed(1) ## put samples sizes matrix use loop sample sizes sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100), nrow=2) #create vector combine std deviations sds<-matrix(c(4,4,6,4,8,4,10,4,12,4,14,4),nrow=2) sd1<-c(4,6,8,10,12) sd2<-c(4,4,4,4,4) sds2<-rep(sd2,each=9) ##(use expand.grid)to create data frame combination of data ss_sds1<- expand.grid(sample_sizes[2,], sd1) #create matrix combining fifty 4 cases of combination of ss , sds all_combine <- cbind(rep(sample_sizes[1,], 5), ss_sds1,sds2) # name column sample samples 1 , 2 , standard deviation colnames(all_combine) <- c("m", "n", "sds1","sds2") #number of simulations nsims<-10000 #set significance level,alpha whole simulation alpha<-0.05 #set matrix storing data simulation #set nrow =nsims because wan storing every p-value simulated matrix1_equal <-matrix(0,nrow=nsims,ncol=9) matrix4_unequal<-matrix(0,nrow=nsims,ncol=9) matrix7_mann <-matrix(0,nrow=nsims,ncol=9) #set vector storing data 3 tests (nrow all_combine=45) equal1 <- unequal4<- mann7 <- rep(0, nrow(all_combine)) # loop steps through all_combine matrix for(ss in 1:nrow(all_combine)) { #generate samples first column , second column m<-all_combine[ss,1] n<-all_combine[ss,2] (sim in 1:nsims) { #generate random samples 2 normal distribution x<-rnorm(m,5,all_combine[ss,3]) y<-rnorm(n,5,4) #extract p-value out , store every p-value matrix matrix1_equal[sim,1]<-t.test(x,y,var.equal=true)$p.value matrix4_unequal[sim,4]<-t.test(x,y,var.equal=false)$p.value matrix7_mann[sim,7] <-wilcox.test(x,y)$p.value } ##store result equal1[ss]<- mean(matrix1_equal[,1]<=alpha) unequal4[ss]<-mean(matrix4_unequal[,4]<=alpha) mann7[ss]<- mean(matrix7_mann[,7]<=alpha) } # combine results nresult <- cbind(all_combine, equal1, unequal4, mann7) save.image(file="normal.data")
Comments
Post a Comment