我有一个值的chi-square=23.426,df=3,α=0.05(α为显著性水平),我如何计算这个在r中的p值?
R中的概率分布函数有很多,请参见 https:/www.stat.umn.edugeyerold5101rlook.html
你要的是 pchisq()
函数,其中你的p值由
1-pchisq(23.426, 3)
关于p值和α值
p值是指如果你假设零假设为真,你的结果的概率。换句话说,仅凭抽样误差,样本与空值不同,而空值假设为真的概率是多少。考虑下面的例子;xBase是一个与0没有差异的群体(它是一个标准正态分布,群体均值为0)。我们有一个零点假设,即人口中的均值为零,并想检验这个零点,(在这种情况下)我们知道零点为真--通常我们不知道。我们可以对50个人进行抽样,得到一个(非零)的样本均值,然后进行t检验,告诉我们在给定我们的均值和样本量的情况下,空值为真的概率是多少。重复做20000次,并使用 sum(pOut)
我们可以看到,1004个样本返回的p值小于0.05,假阳性率为0.0502。
set.seed(1)
# Create a base population
xBase <- rnorm(100000,0,1)
# Repeated sampling of base population
pOut <- vector()
for(i in 1:20000){
# Sample that population
xSample <- sample(xBase, 50)
# Perform t test (storing whether p < 0.05)
pOut[i] <- 1 - pt(
(mean(xSample) - 0)/(sd(xSample)/sqrt(50)),
50 - 1) < 0.05
}
# False positive rate
mean(pOut)
Alpha简单的说就是你认为p的什么值是 "统计学意义",通常是0.05。这意味着,如果我们计算p,它大于α,我们就不能拒绝零假设。Alpha只是我们接受的假阳性率,所以在上面的例子中,它是0.05。如果你决定α是0.01,那么只有当p小于0.01时,你才会拒绝零假设。用alpha=0.01重复模拟,有186个假阳性(0.093)。
set.seed(1)
# Create a base population
xBase <- rnorm(100000,0,1)
# Repeated sampling of base population
pOut <- vector()
for(i in 1:20000){
# Sample that population
xSample <- sample(xBase, 50)
# Perform t test (storing whether p < 0.05)
pOut[i] <- 1 - pt(
(mean(xSample) - 0)/(sd(xSample)/sqrt(50)),
50 - 1) < 0.05
}
# False positive rate
mean(pOut)
Alpha定义了一个分界点,它不影响p的计算,但它会影响我们从p中得出的结论。