R 中的 2 比例假设检验

2 proportions hypothesis testing in R

我正在尝试做一个假设检验,看看一个比例是否与另一个比例有显着差异。 R 中是否有针对这种特定情况的函数?我应该如何获得 z-score、Zc、p hat 等?

非常感谢

如果对相关数据了解不多,很难准确地说出您想应用哪个测试。我发现“rstatix”在学习如何使用 R 进行许多常见统计测试方面变得非常流行。这是文档中的示例,其中描述了所有功能。虽然基本 R 中的所有内容都可用,但对于不熟悉它们的人来说,测试诊断可能有点时髦。

https://cran.r-project.org/web/packages/rstatix/rstatix.pdf

 # Exact binomial test
 # Data: 160 mice with cancer including 95 male and 65 female
 # Q1: Does cancer affect more males than females?
binom_test(x = 95, n = 160)

tulip <- c(red = 81, yellow = 50, white = 27)
# Q1: Are the colors equally common?
chisq_test(tulip)
pairwise_chisq_gof_test(tulip)

如果您提供更多关于这些数据的信息,以及您感兴趣的测试,这将有助于我们给出更有针对性的建议。否则请查看 Rstatix!

据我所知,r 不会为您提供 2 比例 z 检验的 z 分数,它始终使用 X2 检验统计量。但是,这会为您提供相同的 p 值。

您可以执行常规卡方检验,也可以使用函数 prop.test。为此,您只需创建数据的频率 table,然后将其用作您的“x”。

这是一个例子:

col1 <- c("m", "f", "f", "f", "m", "m", "m", "f")
col2 <- c("p", "f", "p", "f", "f", "f", "p", "f")

array <- cbind(col1, col2)

freqtable <- table(array[,1], array[,2], dnn =c("Gender","Pass/Fail"))

test <- prop.test(freqtable)
print(test)

这是输出:

    2-sample test for equality of proportions with continuity correction

data:  freqtable
X-squared = 0, df = 1, p-value = 1
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.6481972  1.0000000
sample estimates:
prop 1 prop 2 
  0.75   0.50 

这是一个函数,将服务于双尾假设的两个比例 z 检验

twopropztest <- function(p1,n1,p2,n2)
{
p <- (p1*n1 + p2*n2) / (n1+n2)
print(paste0("p :",p))
z <- (p1-p2) / sqrt((p*(1-p))*(1/n1+1/n2))
print(paste0("z score: ",z))

# p-value for two-tailed
print(paste0("p-value(two-tailed): ",(1-pnorm(z))*2))

}

如果您使用 prop.test,您将需要更改 correct = FALSE 并对 X 平方分数求平方以获得 z 分数。就像maiebee说的,p值是一样的。 prop.test

的z分数和p.value我亲自验证过