从R中的T检验中找出P值分数

时间:2015-08-24 20:44:04

标签: r distribution

给出来自完全相同的正态分布的500个值的2个样本(平均值10和标准差2),我运行t检验100,000次:

replicate(100,000, (t.test(rnorm(500,10,5), rnorm(500,10,5))))

输出如下:

    [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    [50] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    [99] 0 0

[编辑]如果我删除逗号以运行它100000,因为显然它不是之前, 它出来了

        [,98011]                                  [,98012]                                 
        [,98013]                                  [,98014]                                 
        [,98015]                                  [,98016]                                 
        [,98017]                                  [,98018]                                 
        [,98019]                                  [,98020]                                 
        [,98021]                                  [,98022]                                 
        [,98023]                                  [,98024]                                 
        [,98025]                                  [,98026]         

我对这些输出感到有点困惑......

我现在如何找到P值低于0.05的情况的分数,当它只显示零时?

1 个答案:

答案 0 :(得分:0)

请原谅我早期的智力失效(漫长的一天)。试一试。

x <- replicate(100000, {
  sample1 <- rnorm(500,10,5);
  sample2 <- rnorm(500,10,5);
  test <- t.test(sample1, sample2);
  test$p.value
})
hist(x)

enter image description here

length(x[x < 0.05])/length(x)
[1] 0.04936