统计学 - 比例的假设检验(双尾)
总体比例是指属于特定类别的总体份额。
假设检验用于检验关于总体比例大小的断言。
比例的假设检验
假设检验使用以下步骤
- 检查条件
- 定义断言
- 确定显著性水平
- 计算检验统计量
- 结论
例如
- 总体:诺贝尔奖得主
- 类别:女性
我们要检验的断言是
“诺贝尔奖女性得主所占的比例不是 50%”
通过随机抽取 100 名诺贝尔奖得主样本,我们发现
样本中有 100 名诺贝尔奖得主中的 10 名是女性
因此样本比例为:\(\displaystyle \frac{10}{100} = 0.1\),即 10%。
我们根据以下步骤,使用此样本数据检验断言。
1. 检查条件
计算比例置信区间的条件是
- 样本是随机选择的
- 只有两个选项
- 属于该类别
- 不属于该类别
- 样本至少需要
- 5 个成员属于该类别
- 5 个成员不属于该类别
在我们的示例中,我们随机选择了 10 名女性。
其余不是女性,所以在其他类别中有 90 人。
在这种情况下,条件得到满足。
注意:在没有每个类别都达到 5 个成员的情况下进行假设检验是可能的。但需要进行特殊调整。
2. 定义断言
我们需要根据我们正在检验的断言来定义一个零假设 (\(H_{0}\)) 和一个备择假设 (\(H_{1}\))。
断言是
“诺贝尔奖女性得主所占的比例不是 50%”
在这种情况下,参数是诺贝尔奖女性得主的比例 (\(p\))。
零假设和备择假设是
零假设:50% 的诺贝尔奖得主是女性。
备择假设:诺贝尔奖女性得主所占的比例不是 50%。
可以用符号表示为
\(H_{0}\):\(p = 0.50 \)
\(H_{1}\):\(p \neq 0.50 \)
这是一个“双尾”检验,因为备择假设声称该比例与零假设中的比例不同(更大或更小)。
如果数据支持备择假设,我们拒绝零假设并接受备择假设。
3. 确定显著性水平
显著性水平 (\(\alpha\)) 是我们在假设检验中拒绝零假设时接受的不确定性。
显著性水平是意外做出错误结论的百分比概率。
典型的显著性水平是
- \(\alpha = 0.1\) (10%)
- \(\alpha = 0.05\) (5%)
- \(\alpha = 0.01\) (1%)
较低的显著性水平意味着数据中的证据需要更强才能拒绝零假设。
没有“正确”的显著性水平——它只说明了结论的不确定性。
注意:5% 的显著性水平意味着当我们拒绝一个零假设时
我们预计在 100 次中会拒绝 5 次真实的零假设。
4. 计算检验统计量
检验统计量用于决定假设检验的结果。
检验统计量是根据样本计算出的标准化值。
总体比例的检验统计量 (TS) 公式是
\(\displaystyle \frac{\hat{p} - p}{\sqrt{p(1-p)}} \cdot \sqrt{n} \)
\(\hat{p}-p\) 是样本比例 (\(\hat{p}\)) 与声称的总体比例 (\(p\)) 之间的差值。
\(n\) 是样本大小。
在我们的例子中
声称的 (\(H_{0}\)) 总体比例 (\(p\)) 为 \( 0.50 \)
样本比例 (\(\hat{p}\)) 为 100 分之 10,即:\(\displaystyle \frac{10}{100} = 0.10\)
样本大小 (\(n\)) 为 \(100\)
所以检验统计量 (TS) 是
\(\displaystyle \frac{0.1-0.5}{\sqrt{0.5(1-0.5)}} \cdot \sqrt{100} = \frac{-0.4}{\sqrt{0.5(0.5)}} \cdot \sqrt{100} = \frac{-0.4}{\sqrt{0.25}} \cdot \sqrt{100} = \frac{-0.4}{0.5} \cdot 10 = \underline{-8}\)
您也可以使用编程语言函数计算检验统计量
示例
使用 Python,利用 scipy 和 math 库计算比例的检验统计量。
import scipy.stats as stats
import math
# 指定出现次数 (x)、样本大小 (n) 和零假设中声称的比例 (p)
x = 10
n = 100
p = 0.5
# 计算样本比例
p_hat = x/n
# 计算并打印检验统计量
print((p_hat-p)/(math.sqrt((p*(1-p))/(n))))
自己动手试一试 »
示例
使用 R 语言,可以使用内置的数学函数来计算比例的检验统计量。
# 指定样本出现次数 (x)、样本大小 (n) 和零假设声称 (p)
x <- 10
n <- 100
p <- 0.5
# 计算样本比例
p_hat = x/n
# 计算并输出检验统计量
(p_hat-p)/(sqrt((p*(1-p))/(n)))
自己动手试一试 »
5. 做出结论
做出假设检验结论主要有两种方法
- 临界值方法将检验统计量与显著性水平的临界值进行比较。
- P 值方法将检验统计量的 P 值与显著性水平进行比较。
注意:这两种方法只是在呈现结论的方式上有所不同。
临界值方法
对于临界值方法,我们需要找到显著性水平 (\(\alpha\)) 的临界值 (CV)。
对于总体比例检验,临界值 (CV) 是来自标准正态分布的 Z 值。
此临界 Z 值 (CV) 定义了检验的拒绝域。
拒绝域是标准正态分布尾部的概率区域。
由于声明是总体比例与 50% 不同,因此拒绝区域分为左尾和右尾。
拒绝域的大小由显著性水平 (\(\alpha\)) 决定。
选择显著性水平 (\(\alpha\)) 为 0.01 或 1%,我们可以从 Z 表 或使用编程语言函数找到临界 Z 值。
注意:由于这是双尾检验,尾部面积 (\(\alpha\)) 需要分成两半(除以 2)。
示例
使用 Python,使用 Scipy Stats 库的 norm.ppf()
函数找到左尾 \(\alpha\)/2 = 0.005 的 Z 值。
import scipy.stats as stats
print(stats.norm.ppf(0.005))
自己动手试一试 »
使用任何一种方法,我们都可以发现左尾的临界 Z 值约为 \(\approx \underline{-2.5758}\)
由于正态分布是对称的,我们知道右尾的临界 Z 值将是相同的数字,只是正数:\(\underline{2.5758}\)
对于双尾检验,我们需要检查检验统计量 (TS) 是否小于负临界值 (-CV),或者大于正临界值 (CV)。
如果检验统计量小于负临界值,则检验统计量在拒绝区域内。
如果检验统计量大于正临界值,则检验统计量在拒绝区域内。
当检验统计量在拒绝域内时,我们拒绝零假设 (\(H_{0}\))。
这里,检验统计量 (TS) 约为 \(\underline{-8}\),临界值约为 \(\underline{-2.5758}\)
下图显示了此检验的图示
由于检验统计量小于负临界值,我们拒绝零假设。
这意味着样本数据支持备择假设。
我们可以总结结论如下
样本数据在 1% 显著性水平上支持“诺贝尔奖女性得主所占的比例不是 50%”的说法。
P 值方法
对于 P 值方法,我们需要找到检验统计量 (TS) 的 P 值。
如果 P 值小于显著性水平 (\(\alpha\)),我们拒绝零假设 (\(H_{0}\))。
检验统计量约为 \( \underline{-8} \)
对于总体比例检验,检验统计量是来自标准正态分布的 Z 值。
由于这是双尾检验,我们需要找到 Z 值小于 -8 的 P 值,然后乘以 2。
我们可以使用 Z 表或使用编程语言函数找到 P 值
示例
使用 Python,使用 Scipy Stats 库的 norm.cdf()
函数找到双尾检验 Z 值小于 -8 的 P 值。
import scipy.stats as stats
print(2*stats.norm.cdf(-8))
自己动手试一试 »
使用任何一种方法,我们都可以发现 P 值约为 \(\approx \underline{1.25 \cdot 10^{-15}}\) 或 \(0.00000000000000125\)
这告诉我们,显著性水平 (\(\alpha\)) 需要大于 0.000000000000125% 才能拒绝零假设。
下图显示了此检验的图示
这个 P 值小于任何常见的显著性水平(10%、5%、1%)。
因此,零假设在所有这些显著性水平下都被拒绝。
我们可以总结结论如下
样本数据在 10%、5% 和 1% 显著性水平上支持“诺贝尔奖女性得主所占的比例不是 50%”的说法。
使用编程计算假设检验的 P 值
许多编程语言可以计算 P 值来决定假设检验的结果。
对于大型数据集,使用软件和编程计算统计量更为常见,因为手动计算会变得困难。
此处计算的 P 值将告诉我们零假设可以被拒绝的最低可能显著性水平。
示例
使用 Python,使用 scipy 和 math 库计算比例的双尾假设检验的 P 值。
这里,样本大小是 100,发生次数是 10,检验是针对比例不等于 0.50 的。
import scipy.stats as stats
import math
# 指定出现次数 (x)、样本大小 (n) 和零假设中声称的比例 (p)
x = 10
n = 100
p = 0.5
# 计算样本比例
p_hat = x/n
# 计算检验统计量
test_stat = (p_hat-p)/(math.sqrt((p*(1-p))/(n)))
# 输出检验统计量的 p 值(双尾检验)
print(2*stats.norm.cdf(test_stat))
自己动手试一试 »
示例
使用 R 语言,使用内置的 prop.test()
函数找到比例的左尾假设检验的 P 值。
这里,样本大小是 100,发生次数是 10,检验是针对比例不等于 0.50 的。
# 指定样本出现次数 (x)、样本大小 (n) 和零假设声称 (p)
x <- 10
n <- 100
p <- 0.5
# 0.01 显著性水平下的左尾比例检验的 P 值
prop.test(x, n, p, alternative = c("two.sided"), conf.level = 0.99, correct = FALSE)$p.value
自己动手试一试 »
注意:R 代码中的 conf.level
与显著性水平相反。
这里,显著性水平是 0.01 或 1%,所以置信水平是 1-0.01 = 0.99 或 99%。
左尾和双尾检验
这是一个双尾检验的示例,其中备择假设声称参数与零假设的声明不同。
您可以在此处查看其他类型的等效分步指南