菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

统计 - 均值假设检验(双侧检验)


总体 均值 是一个总体的值的平均数。

假设检验用于检查关于该总体均值大小的声明。


均值假设检验

假设检验使用以下步骤

  1. 检查条件
  2. 定义断言
  3. 确定显著性水平
  4. 计算检验统计量
  5. 结论

例如

  • 总体:诺贝尔奖得主
  • 类别:获奖时的年龄。

我们要检验的断言是

“诺贝尔奖获得者获奖时的平均年龄**不是**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,所以拒绝区域被分成左尾和右尾两部分。

Student's T-Distribution with a left and right tail areas (rejection region) denoted as the greek symbol alpha

拒绝域的大小由显著性水平 (\(\alpha\)) 决定。

学生 t 分布会根据较小样本的不确定性进行调整。

这种调整称为自由度 (df),它是样本量 \((n) - 1\)

在本例中,自由度 (df) 是:\(30 - 1 = \underline{29} \)

选择显著性水平(\(\alpha\))为0.05,即5%,我们可以从T表中找到临界T值,或使用编程语言函数。

注意: 因为这是一个双侧检验,所以尾部面积(\(\alpha\))需要分成两半(除以2)。

示例

使用Python,可以使用Scipy Stats库中的 t.ppf() 函数找到对于 \(\alpha\)/2 = 0.025,自由度(df)为29的T值。

import scipy.stats as stats
print(stats.t.ppf(0.025, 29))
自己动手试一试 »

示例

使用R,可以使用内置的 qt() 函数找到对于 \(\alpha\)/2 = 0.025,自由度(df)为29的t值。

qt(0.025, 29)
自己动手试一试 »

使用任何一种方法,我们都可以找到临界T值约为 \(\underline{-2.045}\)

对于**双侧检验**,我们需要检查检验统计量(TS)是否**小于**负临界值(-CV),**或大于**正临界值(CV)。

如果检验统计量小于**负**临界值,则检验统计量位于**拒绝区域**。

如果检验统计量大于**正**临界值,则检验统计量位于**拒绝区域**。

当检验统计量在拒绝域内时,我们拒绝零假设 (\(H_{0}\))。

在此,检验统计量(TS)约为 \(\underline{0.855}\),临界值约为 \(\underline{-2.045}\)

下图显示了此检验的图示

Student's T-Distribution with a left and right tail area (rejection region) equal to 0.05, a critical value of 2.045, and a test statistic of 0.855

由于检验统计量**介于**临界值之间,我们**保留**零假设。

这意味着样本数据不支持备择假设。

我们可以总结结论如下

在**5%的显著性水平**下,样本数据**不支持**“诺贝尔奖获得者获奖时的平均年龄不是60岁”的说法。

P 值方法

对于 P 值方法,我们需要找到检验统计量 (TS) 的 P 值

如果 P 值小于显著性水平 (\(\alpha\)),我们拒绝零假设 (\(H_{0}\))。

检验统计量计算结果约为 \( \underline{0.855} \)

对于总体比例检验,检验统计量是来自学生 t 分布的 T 值。

因为这是一个**双侧检验**,我们需要找到大于0.855的T值的P值,然后**乘以2**。

学生 t 分布根据自由度 (df) 进行调整,自由度为样本量 \((30) - 1 = \underline{29}\)

我们可以使用 T 表或编程语言函数来找到 P 值。

示例

使用Python,可以使用Scipy Stats库中的 t.cdf() 函数找到对于双侧检验,自由度(df)为29,检验统计量大于0.855的P值。

import scipy.stats as stats
print(2*(1-stats.t.cdf(0.855, 29)))
自己动手试一试 »

示例

使用R,可以使用内置的 pt() 函数找到对于双侧检验,自由度(df)为29,检验统计量大于0.855的P值。

2*(1-pt(0.855, 29))
自己动手试一试 »

使用任何一种方法,我们都可以找到P值约为 \(\underline{0.3996}\)

这告诉我们,要**拒绝**零假设,显著性水平(\(\alpha\))需要小于0.3996,即39.96%。

下图显示了此检验的图示

这个P值**大于**任何常见的显著性水平(10%、5%、1%)。

因此,零假设在所有这些显著性水平下都被保留

我们可以总结结论如下

在**10%、5%或1%的显著性水平**下,样本数据**不支持**“诺贝尔奖获得者获奖时的平均年龄不是60岁”的说法。


使用编程计算假设检验的 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-value 检验统计量的 p 值(双侧检验)
2*(1-pt(test_stat, n-1))
自己动手试一试 »

左尾和双尾检验

这是一个**左侧**尾部检验的示例,其中备择假设声称的参数**小于**零假设的声称值。

您可以在此处查看其他类型的等效分步指南


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持