统计 - 均值假设检验(双尾)
总体 均值 是总体中值的平均值。
假设检验用于检验关于该总体均值大小的断言。
均值假设检验
以下步骤用于假设检验
- 检查条件
- 定义断言
- 确定显著性水平
- 计算检验统计量
- 结论
例如
- 总体:诺贝尔奖获得者
- 类别:他们获奖时的年龄。
我们想要检验以下断言
"诺贝尔奖获得者在获得奖项时的平均年龄不是60岁"
通过随机抽取30个诺贝尔奖获得者的样本,我们可以发现
- 样本中的平均年龄(\(\bar{x}\))为62.1岁
- 样本中年龄的标准差(\(s\))为13.46岁
根据这些样本数据,我们使用以下步骤检验断言。
1. 检查条件
计算比例置信区间的条件是
- 样本是 随机抽取 的
- 并且满足以下任一条件
- 总体数据呈正态分布
- 样本量足够大
通常,30这样的中等样本量就足够大。
在本例中,样本量为30,并且是随机抽取的,因此满足条件。
注意:可以使用专门的统计检验来检查数据是否呈正态分布。
2. 定义断言
我们需要根据要检验的断言定义零假设(\(H_{0}\))和备择假设(\(H_{1}\))。
断言是
"诺贝尔奖获得者在获得奖项时的平均年龄不是60岁"
在本例中,参数是诺贝尔奖获得者在获得奖项时的平均年龄(\(\mu\))。
零假设和备择假设如下
零假设:平均年龄为60岁。
备择假设:平均年龄不是60岁。
可以用符号表示为
\(H_{0}\): \(\mu = 60 \)
\(H_{1}\): \(\mu \neq 60 \)
这是一个“双尾”检验,因为备择假设断言比例不同于零假设。
如果数据支持备择假设,则拒绝零假设并接受备择假设。
3. 确定显著性水平
显著性水平(\(\alpha\))是在假设检验中拒绝零假设时接受的不确定性。
显著性水平是偶然得出错误结论的百分比概率。
典型的显著性水平是
- \(\alpha = 0.1\) (10%)
- \(\alpha = 0.05\) (5%)
- \(\alpha = 0.01\) (1%)
较低的显著性水平意味着数据中的证据需要更强才能拒绝零假设。
没有“正确”的显著性水平 - 它只说明结论的不确定性。
注意: 5%的显著性水平意味着当我们拒绝零假设时
我们预计在100次中会拒绝真的零假设5次。
4. 计算检验统计量
检验统计量用于决定假设检验的结果。
检验统计量是根据样本计算的标准化值。
总体均值检验统计量(TS)的公式为
\(\displaystyle \frac{\bar{x} - \mu}{s} \cdot \sqrt{n} \)
\(\bar{x}-\mu\) 是样本均值(\(\bar{x}\))和断言的总体均值(\(\mu\))之间的差值。
\(s\) 是 样本标准差。
\(n\) 是样本量。
在我们的示例中
断言的(\(H_{0}\))总体均值(\(\mu\))为 \( 60 \)
样本均值(\(\bar{x}\))为 \(62.1\)
样本标准差(\(s\))为 \(13.46\)
样本量(\(n\))为 \(30\)
因此,检验统计量(TS)为
\(\displaystyle \frac{62.1-60}{13.46} \cdot \sqrt{30} = \frac{2.1}{13.46} \cdot \sqrt{30} \approx 0.156 \cdot 5.477 = \underline{0.855}\)
您也可以使用编程语言函数来计算检验统计量
示例
使用 Python 的 scipy 和 math 库来计算检验统计量。
import scipy.stats as stats
import math
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设中断言的均值 (mu_null) 和样本量 (n)
x_bar = 62.1
s = 13.46
mu_null = 60
n = 30
# 计算并打印检验统计量
print((x_bar - mu_null)/(s/math.sqrt(n)))
尝试自己 »
示例
使用 R 的内置数学和统计函数来计算检验统计量。
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设中断言的均值 (mu_null) 和样本量 (n)
x_bar <- 62.1
s <- 13.46
mu_null <- 60
n <- 30
# 输出检验统计量
(x_bar - mu_null)/(s/sqrt(n))
尝试自己 »
5. 得出结论
得出假设检验结论主要有两种方法
- 临界值方法将检验统计量与显著性水平的临界值进行比较。
- P 值方法将检验统计量的 P 值与显著性水平进行比较。
注意: 这两种方法只是在结论的呈现方式上有所不同。
临界值方法
对于临界值方法,我们需要找到显著性水平(\(\alpha\))的临界值(CV)。
对于总体均值检验,临界值(CV)是 学生 t 分布 中的T 值。
此临界 T 值(CV)定义了检验的拒绝域。
拒绝域是标准正态分布尾部中的概率区域。
因为断言是总体比例不同于 60,所以拒绝域被分成左尾和右尾
拒绝域的大小由显著性水平(\(\alpha\))决定。
学生 t 分布会根据较小样本的不确定性进行调整。
此调整称为自由度 (df),即样本量 \((n) - 1\)
在本例中,自由度 (df) 为:\(30 - 1 = \underline{29} \)
选择 0.05 或 5% 的显著性水平(\(\alpha\)),我们可以从 T 表 中找到临界 T 值,或者使用编程语言函数找到
注意: 由于这是一个双尾检验,因此尾部面积(\(\alpha\))需要分成一半(除以 2)。
示例
使用 Python 的 Scipy Stats 库 t.ppf()
函数查找 29 个自由度 (df) 下 \(\alpha\)/2 = 0.025 的 T 值。
import scipy.stats as stats
print(stats.t.ppf(0.025, 29))
尝试自己 »
使用这两种方法中的任何一种,我们都可以发现临界 T 值约为 \(\approx \underline{-2.045}\)
对于双尾检验,我们需要检查检验统计量(TS)是否小于负临界值 (-CV),或大于正临界值 (CV)。
如果检验统计量小于负临界值,则检验统计量位于拒绝域中。
如果检验统计量大于正临界值,则检验统计量位于拒绝域中。
当检验统计量位于拒绝域中时,我们拒绝零假设(\(H_{0}\))。
这里,检验统计量 (TS) 约为 \(\approx \underline{0.855}\),临界值约为 \(\approx \underline{-2.045}\)
以下是该检验的图形说明
由于检验统计量在临界值 **之间**,因此我们 **保留** 零假设。
这意味着样本数据不支持备择假设。
我们可以总结结论,即
样本数据 **不支持** 以下说法:“诺贝尔奖获得者在获得奖项时的平均年龄不为 60 岁”,**显著性水平为 5%**。
P 值方法
对于 P 值方法,我们需要找到检验统计量 (TS) 的 **P 值**。
如果 P 值 **小于** 显著性水平 (\(\alpha\)),则 **拒绝** 零假设 (\(H_{0}\))。
检验统计量被发现约为 \( \approx \underline{0.855} \)
对于总体比例检验,检验统计量是来自 学生 t 分布 的 T 值。
由于这是一个 **双尾** 检验,我们需要找到大于 0.855 的 T 值的 P 值,并将其 **乘以 2**。
学生 t 分布根据自由度 (df) 进行调整,自由度为样本大小 \((30) - 1 = \underline{29}\)
我们可以使用 T 表 或编程语言函数来找到 P 值
示例
使用 Python 的 Scipy Stats 库 t.cdf()
函数找到在 29 个自由度 (df) 下,T 值大于 0.855 的双尾检验的 P 值
import scipy.stats as stats
print(2*(1-stats.t.cdf(0.855, 29)))
尝试自己 »
使用任一方法,我们都可以发现 P 值约为 \(\approx \underline{0.3996}\)
这告诉我们,显著性水平 (\(\alpha\)) 需要小于 0.3996 或 39.96%,才能 **拒绝** 零假设。
以下是该检验的图形说明
此 P 值 **大于** 任何常见的显著性水平 (10%,5%,1%)。
因此,在所有这些显著性水平下,零假设被 **保留**。
我们可以总结结论,即
样本数据 **不支持** 以下说法:“诺贝尔奖获得者在获得奖项时的平均年龄不为 60 岁”,**显著性水平为 10%,5% 或 1%**。
使用编程计算假设检验的 P 值
许多编程语言可以计算 P 值,以决定假设检验的结果。
对于更大的数据集,使用软件和编程来计算统计数据更为常见,因为手动计算会很困难。
此处计算的 P 值将告诉我们 **最低可能的显著性水平**,在此水平下可以拒绝零假设。
示例
使用 Python 的 scipy 和 math 库计算均值双尾假设检验的 P 值。
这里,样本大小为 30,样本均值为 62.1,样本标准差为 13.46,检验的是均值是否与 60 不同。
import scipy.stats as stats
import math
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设中断言的均值 (mu_null) 和样本量 (n)
x_bar = 62.1
s = 13.46
mu_null = 60
n = 30
# 计算检验统计量
test_stat = (x_bar - mu_null)/(s/math.sqrt(n))
# 输出检验统计量的 P 值(双尾检验)
print(2*(1-stats.t.cdf(test_stat, n-1)))
尝试自己 »
示例
使用 R 的内置数学和统计函数找到均值双尾假设检验的 P 值。
这里,样本大小为 30,样本均值为 62.1,样本标准差为 13.46,检验的是均值是否与 60 不同。
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设中断言的均值 (mu_null) 和样本量 (n)
x_bar <- 62.1
s <- 13.46
mu_null <- 60
n <- 30
# 计算检验统计量
test_stat = (x_bar - mu_null)/(s/sqrt(n))
# P 值是检验统计量的 P 值(双尾检验)
2*(1-pt(test_stat, n-1))
尝试自己 »
左尾检验和双尾检验
这是一个 **左** 尾检验的示例,其中备择假设声称参数 **小于** 零假设的声称。
您可以在这里查看其他类型的等效分步指南