统计 - 假设检验均值
总体 均值 是一个总体的值的平均数。
假设检验用于检查关于该总体均值大小的声明。
均值假设检验
假设检验使用以下步骤
- 检查条件
- 定义断言
- 确定显著性水平
- 计算检验统计量
- 结论
例如
- 总体:诺贝尔奖得主
- 类别:获奖时的年龄。
我们要检验的断言是
“诺贝尔奖获得者获奖时的平均年龄大于 55 岁”
通过抽取 30 名随机选择的诺贝尔奖获得者样本,我们可以发现:
样本均值 (\(\bar{x}\)) 为 62.1
样本年龄的标准差 (\(s\)) 为 13.46
我们根据以下步骤,使用此样本数据检验断言。
1. 检查条件
计算比例置信区间的条件是
- 样本是随机选择的
- 并且满足以下任一条件:
- 总体数据呈正态分布
- 样本量足够大
通常,30 这样的中等样本量就足够大了。
在此示例中,样本量为 30 且是随机抽取的,因此条件已满足。
注意: 数据是否呈正态分布可以通过专门的统计检验来检查。
2. 定义断言
我们需要根据我们正在检验的断言来定义一个零假设 (\(H_{0}\)) 和一个备择假设 (\(H_{1}\))。
断言是
“诺贝尔奖获得者获奖时的平均年龄大于 55 岁”
在这种情况下,参数是诺贝尔奖获得者获奖时的平均年龄 (\(\mu\))。
零假设和备择假设是
零假设:平均年龄为 55 岁。
备择假设:平均年龄大于 55 岁。
可以用符号表示为
\(H_{0}\): \(\mu = 55 \)
\(H_{1}: \mu > 55 \)
这是一个“右尾”检验,因为备择假设声称该比例大于零假设中的比例。
如果数据支持备择假设,我们拒绝零假设并接受备择假设。
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\)) 为 \( 55 \)
样本均值 (\(\bar{x}\)) 为 \(62.1\)
样本标准差 (\(s\)) 为 \(13.46\)
样本量 (\(n\)) 为 \(30\)
所以检验统计量 (TS) 是
\(\displaystyle \frac{62.1-55}{13.46} \cdot \sqrt{30} = \frac{7.1}{13.46} \cdot \sqrt{30} \approx 0.528 \cdot 5.477 = \underline{2.889}\)
您也可以使用编程语言函数计算检验统计量
示例
使用 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 = 55
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 <- 55
n <- 30
# 输出检验统计量
(x_bar - mu_null)/(s/sqrt(n))
自己动手试一试 »
5. 做出结论
做出假设检验结论主要有两种方法
- 临界值方法将检验统计量与显著性水平的临界值进行比较。
- P 值方法将检验统计量的 P 值与显著性水平进行比较。
注意:这两种方法只是在呈现结论的方式上有所不同。
临界值方法
对于临界值方法,我们需要找到显著性水平 (\(\alpha\)) 的临界值 (CV)。
对于总体均值检验,临界值 (CV) 是来自学生 t 分布的 T 值。
这个临界 T 值 (CV) 定义了检验的拒绝域。
拒绝域是标准正态分布尾部的概率区域。
因为声称总体均值大于 55,所以拒绝域在右尾。
拒绝域的大小由显著性水平 (\(\alpha\)) 决定。
学生 t 分布会根据较小样本的不确定性进行调整。
这种调整称为自由度 (df),它是样本量 \((n) - 1\)
在本例中,自由度 (df) 是:\(30 - 1 = \underline{29} \)
选择显著性水平 (\(\alpha\)) 为 0.01,即 1%,我们可以从 T 表或使用编程语言函数找到临界 T 值。
示例
使用 Python,可以利用 Scipy Stats 库的 t.ppf()
函数找到 \(\alpha\) = 0.01、29 个自由度 (df) 的 T 值。
import scipy.stats as stats
print(stats.t.ppf(1-0.01, 29))
自己动手试一试 »
使用任一方法,我们都可以找到临界 T 值为 \(\approx \underline{2.462}\)
对于右尾检验,我们需要检查检验统计量 (TS) 是否大于临界值 (CV)。
如果检验统计量大于临界值,则该检验统计量位于拒绝域内。
当检验统计量在拒绝域内时,我们拒绝零假设 (\(H_{0}\))。
在此,检验统计量 (TS) 约为 \(\underline{2.889}\),临界值为 \(\approx \underline{2.462}\)
下图显示了此检验的图示
由于检验统计量大于临界值,我们拒绝零假设。
这意味着样本数据支持备择假设。
我们可以总结结论如下
在 1% 的显著性水平下,样本数据支持“诺贝尔奖获得者获奖时的平均年龄大于 55 岁”这一声明。
P 值方法
对于 P 值方法,我们需要找到检验统计量 (TS) 的 P 值。
如果 P 值小于显著性水平 (\(\alpha\)),我们拒绝零假设 (\(H_{0}\))。
检验统计量计算为 \( \approx \underline{2.889} \)
对于总体比例检验,检验统计量是来自学生 t 分布的 T 值。
因为这是一个右尾检验,我们需要找到一个 t 值为大于 2.889 的 P 值。
学生 t 分布根据自由度 (df) 进行调整,自由度为样本量 \((30) - 1 = \underline{29}\)
我们可以使用 T 表或编程语言函数来找到 P 值。
示例
使用 Python,可以利用 Scipy Stats 库的 t.cdf()
函数找到 29 个自由度 (df) 下,检验统计量大于 2.889 的 P 值。
import scipy.stats as stats
print(1-stats.t.cdf(2.889, 29))
自己动手试一试 »
使用任一方法,我们都可以找到 P 值为 \(\approx \underline{0.0036}\)
这表明,要拒绝零假设,显著性水平 (\(\alpha\)) 需要大于 0.0036,即 0.36%。
下图显示了此检验的图示
这个 P 值小于任何常见的显著性水平(10%、5%、1%)。
因此,零假设在所有这些显著性水平下都被拒绝。
我们可以总结结论如下
样本数据支持“诺贝尔奖获得者获奖时的平均年龄大于 55 岁”这一声明,在 10%、5% 或 1% 的显著性水平下。
注意: 假设检验中拒绝零假设的结果,其 P 值为 0.36% 意味着:
对于这个 P 值,我们只期望在 10000 次中拒绝一个真实的零假设 36 次。
使用编程计算假设检验的 P 值
许多编程语言可以计算 P 值来决定假设检验的结果。
对于大型数据集,使用软件和编程计算统计量更为常见,因为手动计算会变得困难。
此处计算的 P 值将告诉我们零假设可以被拒绝的最低可能显著性水平。
示例
使用 Python,可以利用 scipy 和 math 库计算右尾均值假设检验的 P 值。
在此,样本量为 30,样本均值为 62.1,样本标准差为 13.46,检验是针对大于 55 的均值。
import scipy.stats as stats
import math
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设声称的均值 (mu_null) 和样本量 (n)
x_bar = 62.1
s = 13.46
mu_null = 55
n = 30
# 计算检验统计量
test_stat = (x_bar - mu_null)/(s/math.sqrt(n))
# 输出检验统计量的 P 值(右尾检验)
print(1-stats.t.cdf(test_stat, n-1))
自己动手试一试 »
示例
使用 R,可以利用内置的数学和统计函数计算右尾均值假设检验的 P 值。
在此,样本量为 30,样本均值为 62.1,样本标准差为 13.46,检验是针对大于 55 的均值。
# 指定样本均值 (x_bar)、样本标准差 (s)、零假设声称的均值 (mu_null) 和样本量 (n)
x_bar <- 62.1
s <- 13.46
mu_null <- 55
n <- 30
# 计算检验统计量
test_stat = (x_bar - mu_null)/(s/sqrt(n))
# P-value 检验统计量的 P 值(右尾检验)
1-pt(test_stat, n-1)
自己动手试一试 »
左尾和双尾检验
这是一个右尾检验的示例,其中备择假设声称该参数大于零假设的声称值。
您可以在此处查看其他类型的等效分步指南