このシミュレーションの目的は、いくつかの要因を組み合わせてテストのタイプ1エラー率を評価することです。R:なぜ結果が0.00で表示されるのですか?
サンプルsizes-(10,10)、(10,25)、(25,25)、(25,50)、(25,100)、50,25)、(50,100)、(100、 25)、(100,100)
標準偏差の比 - (1.00、1.50、2.00、2.50、3.00および3.50)不等歪度と等しい歪度を有するガンマ分布の
分布
含まれる2つのサンプル試験は、プールされた分散t検定およびウェルチtテストとマンホイットニーテスト。上記の要素の組み合わせを使用してコードを修正しようとしました。どのように
########################################
#for normal distribution setup
# to ensure the reproducity of the result
#(here we declare the random seed generator)
set.seed(1)
## Put the samples sizes into matrix then use a loop for 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 to combine all 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 a data frame from combination of data
ss_sds1<- expand.grid(sample_sizes[2,], sd1)
#create a matrix combining the fifty four cases of combination of ss and sds
all_combine <- cbind(rep(sample_sizes[1,], 5), ss_sds1,sds2)
# name the column by sample samples 1 and 2 and standard deviation
colnames(all_combine) <- c("m", "n", "sds1","sds2")
#number of simulations
nSims<-10000
#set significance level,alpha for the whole simulation
alpha<-0.05
#set up matrix for storing data from 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 up vector for storing data from the three tests (nrow for all_combine=45)
equal1 <- unequal4<- mann7 <- rep(0, nrow(all_combine))
# this loop steps through the all_combine matrix
for(ss in 1:nrow(all_combine))
{
#generate samples from the first column and second column
m<-all_combine[ss,1]
n<-all_combine[ss,2]
for (sim in 1:nSims)
{
#generate random samples from 2 normal distribution
x<-rnorm(m,5,all_combine[ss,3])
y<-rnorm(n,5,4)
#extract p-value out and store every p-value into 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 the 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")
私はRで新しいですが、今私は正規分布でコードを完了し、もしそうでなければ使用することにより、ガンマ分布の分布上の2回のシミュレーションに追加する必要がいる...誰もがplsはいくつかのアドバイスを与えることができます通常のdistrから変更します。ガンマdistr?私は今この部分にこだわっています...
HELP !! 上記のコードは私に何回も0.00の結果を与えました。何度もチェックしていますが、間違いはありませんでした。 Please
、そしてどのようにあなたが' t_equal'、 't_unequal'、と' mann'を作成しました。それらはベクトルであるように見えますが、すべてのシミュレーションでそれらを保存したい行列を上書きしています。 –
申し訳ありませんが、nsdsは標準偏差の長さです。そして、t_equal、t_unequal、mannは、データがシミュレートされ、それらに格納されているベクトルです... –
私はちょうど私の質問にコードの残りの部分を編集しました....コメントのおかげで... –