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. 结论

例如

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

我们想检查以下断言

"诺贝尔奖获得者获奖时的平均年龄大于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,所以拒绝域位于右尾

Standard Normal Distribution with a right tail area (rejection region) denoted as the greek symbol alpha

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

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

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

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

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

示例

使用 Python 中的 Scipy Stats 库 t.ppf() 函数找到 29 个自由度 (df) 下 \(\alpha\) = 0.01 的 T 值。

import scipy.stats as stats
print(stats.t.ppf(1-0.01, 29))
自己尝试 »

示例

使用 R 中的内置 qt() 函数找到 29 个自由度 (df) 下 \(\alpha\) = 0.01 的 T 值。

qt(1-0.01, 29)
自己尝试 »

使用任何一种方法,我们都可以发现临界T值为 \(\approx \underline{2.462}\)

对于右尾检验,我们需要检查检验统计量(TS)是否大于临界值(CV)。

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

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

这里,检验统计量 (TS) 为 \(\approx \underline{2.889}\),临界值为 \(\approx \underline{2.462}\)

以下是该检验的图形说明。

Student's T-Distribution with a right tail area (rejection region) equal to 0.01, a critical value of 2.462, and a test statistic of 2.889

由于检验统计量大于临界值,因此我们拒绝原假设。

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

我们可以总结结论,指出

样本数据支持“诺贝尔奖获得者获奖时的平均年龄超过 55 岁”这一说法,显著性水平为 1%

P 值方法

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

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

检验统计量被发现为 \( \approx \underline{2.889} \)

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

因为这是一个尾检验,我们需要找到大于 2.889 的 t 值的 P 值。

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

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

示例

使用 Python 的 Scipy Stats 库中的 t.cdf() 函数找到 29 个自由度 (df) 下大于 2.889 的 T 值的 P 值。

import scipy.stats as stats
print(1-stats.t.cdf(2.889, 29))
自己尝试 »

示例

使用 R 的内置 pt() 函数找到 29 个自由度 (df) 下大于 2.889 的 T 值的 P 值。

1-pt(2.889, 29)
自己尝试 »

使用任何一种方法,我们都可以发现 P 值为 \(\approx \underline{0.0036}\)

这告诉我们,显著性水平 (\(\alpha\)) 需要大于 0.0036 或 0.36%,才能拒绝原假设。

以下是该检验的图形说明。

这个 P 值小于所有常见的显著性水平 (10%、5%、1%)。

因此,在所有这些显著性水平下,原假设都会被拒绝

我们可以总结结论,指出

样本数据支持“诺贝尔奖获得者获奖时的平均年龄超过 55 岁”这一说法,显著性水平为 10%、5% 或 1%

注意:假设检验结果以 0.36% 的 p 值拒绝原假设意味着

对于这个 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 值是检验统计量的 p 值(右尾检验)
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.