Menu
×
   ❮   
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} \)

选择 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))
尝试自己 »

示例

使用 R 的内置 qt() 函数查找 29 个自由度 (df) 下 \(\alpha\)/ = 0.025 的 t 值。

qt(0.025, 29)
尝试自己 »

使用这两种方法中的任何一种,我们都可以发现临界 T 值约为 \(\approx \underline{-2.045}\)

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

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

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

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

这里,检验统计量 (TS) 约为 \(\approx \underline{0.855}\),临界值约为 \(\approx \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

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

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

我们可以总结结论,即

样本数据 **不支持** 以下说法:“诺贝尔奖获得者在获得奖项时的平均年龄不为 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)))
尝试自己 »

示例

使用 R 的内置 pt() 函数找到在 29 个自由度 (df) 下,T 值大于 0.855 的双尾检验的 P 值

2*(1-pt(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))
尝试自己 »

左尾检验和双尾检验

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

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


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.