统计 - 比例假设检验(双尾)
总体比例是指属于特定类别的总体中的一部分。
假设检验用于检验关于该总体比例大小的声明。
比例假设检验
以下步骤用于假设检验
- 检查条件
- 定义声明
- 确定显著性水平
- 计算检验统计量
- 结论
例如
- 总体:诺贝尔奖获得者
- 类别:女性
我们想检验以下声明
"诺贝尔奖获得者中女性的比例不是 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% 的显著性水平意味着当我们拒绝零假设时
我们预计会拒绝一个真实的零假设 5 次中的 1 次。
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\))决定。
选择 0.01 或 1% 的显著性水平(\(\alpha\)),我们可以从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) 约为 \(\approx \underline{-8}\),而临界值约为 \(\approx \underline{-2.5758}\)
以下是该检验在图表中的说明
由于检验统计量**小于**负临界值,我们**拒绝**原假设。
这意味着样本数据支持备择假设。
我们可以总结结论,指出
样本数据**支持**这样的说法:“诺贝尔奖获得者中女性的比例**不**是 50%”,置信水平为**1%**。
P 值方法
对于 P 值方法,我们需要找到检验统计量 (TS) 的**P 值**。
如果 P 值**小于**显著性水平 (\(\alpha\)),我们**拒绝**原假设 (\(H_{0}\))。
检验统计量被发现为 \( \approx \underline{-8} \)
对于总体比例检验,检验统计量是来自标准正态分布的 Z 值。
因为这是一个**双尾**检验,我们需要找到小于 -8 的 Z 值的 P 值,并**乘以 2**。
我们可以使用Z 表或编程语言函数找到 P 值
示例
使用 Python,使用 Scipy Stats 库中的 norm.cdf()
函数找到小于 -8 的 Z 值的 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%)。
因此,在所有这些显著性水平上,原假设都被**拒绝**。
我们可以总结结论,指出
样本数据**支持**这样的说法:“诺贝尔奖获得者中女性的比例不为 50%”,置信水平为**10%,5% 和 1%**。
使用编程计算假设检验的 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%,因此 conf.level 为 1-0.01 = 0.99 或 99%。
左尾检验和双尾检验
这是一个**双**尾检验的示例,其中备择假设声称参数**不同于**原假设的主张。
您可以在此处查看其他类型等效的逐步指南