首页 > 解决方案 > 我想绘制测试的大小(例如 t test )与样本大小。如何在 R 中做到这一点?

问题描述

我有x<-rnorm (a,0,1)并且y <- rnorm( a,0,1)a 代表样本大小我将使用不同的样本大小,例如(20、30、40、50),然后计算测试的大小(t 测试或任何其他测试),然后将其与样本大小进行对比。

plot (a,size of the test)

标签: rtestingsimulation

解决方案


这听起来像是我和学生一起做的一个练习,向他们展示自由度对关键 T 值的影响。

首先,我不会为每个样本量做一次,但至少 100-1000 次。然后,存储所有结果并绘制密度图以可视化 T 值。也许还包括条形图以显示 5% 变得显着,与样本量无关,因为 R 校正了自由度:

ssizes = c(5,10,20,30,50,100,200)
cols = rainbow(7)
t.list = list()
p.list = list()
n = 1000
for(s in ssizes){
  t = c()
  sig = 0
  for(i in 1:n){
    x = rnorm(s,0,1)
    y = rnorm(s,0,1)
    test = t.test(x,y)
    t[i] = test$statistic ## Store the t-value
    if(test$p.value<0.05){sig=sig+1}
  }
  t.list[[as.character(s)]]=t
  p.list[[as.character(s)]]=sig
}

plot(0,0,pch="",main="Density Plots",xlim=c(-4,4),ylim=c(0,0.5),
     xlab="T-Value")
for(i in 1:length(ssizes)){
  lines(density(t.list[[i]]),col=cols[i])
}
legend("topleft",as.character(ssizes),lwd=1,col=cols)

barplot(unlist(p.list),main=paste("Number of tests with p<.05 out of ",n,"tests"),
        xlab="Sample Size")

推荐阅读