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

例如

  • 总体:诺贝尔奖获得者
  • 类别:出生在美国

我们想要检验这个说法

"超过20%的诺贝尔奖获得者出生在美国"

通过随机抽取40位诺贝尔奖获得者的样本,我们发现

样本中40位诺贝尔奖获得者中有10位出生在美国

那么样本比例为:\(\displaystyle \frac{10}{40} = 0.25\),即25%。

根据这个样本数据,我们使用以下步骤检验该说法。


1. 检查条件

计算比例置信区间的条件是

  • 样本是随机抽取的
  • 只有两种选择
    • 属于该类别
    • 不属于该类别
  • 样本需要至少
    • 5名成员属于该类别
    • 5名成员不属于该类别

在我们这个例子中,我们随机抽取了10位在美国出生的人。

其余的人没有在美国出生,所以另外一类有30人。

在这种情况下,条件得到了满足。

注意:即使每个类别没有5人,也可以进行假设检验。但是需要进行特殊调整。


2. 定义假设

我们需要根据我们正在检验的说法定义一个原假设(\(H_{0}\))和一个备择假设(\(H_{1}\))。

该说法是

"超过20%的诺贝尔奖获得者出生在美国"

在这种情况下,参数是美国出生的诺贝尔奖获得者比例(\(p\)).

那么原假设和备择假设为

原假设:20%的诺贝尔奖获得者出生在美国。

备择假设超过20%的诺贝尔奖获得者出生在美国。

可以使用符号表示为

\(H_{0}\): \(p = 0.20 \)

\(H_{1}\): \(p > 0.20 \)

这是一个“右尾”检验,因为备择假设声称比例超过原假设中的比例。

如果数据支持备择假设,我们拒绝原假设并接受备择假设。



3. 确定显著性水平

显著性水平(\(\alpha\))是在假设检验中拒绝原假设时我们接受的不确定性

显著性水平是意外得出错误结论的百分比概率。

典型的显著性水平是

  • \(\alpha = 0.1\) (10%)
  • \(\alpha = 0.05\) (5%)
  • \(\alpha = 0.01\) (1%)

较低的显著性水平意味着数据中的证据需要更强才能拒绝原假设。

没有“正确”的显著性水平 - 它只说明结论的不确定性。

注意:5%的显著性水平意味着当我们拒绝原假设时

我们预计在100次中拒绝一个真的原假设5次。


4. 计算检验统计量

检验统计量用于确定假设检验的结果。

检验统计量是从样本计算得出的一个标准化值。

总体比例的检验统计量 (TS) 公式为

\(\displaystyle \frac{\hat{p} - p}{\sqrt{p(1-p)}} \cdot \sqrt{n} \)

\(\hat{p}-p\) 是样本比例(\(\hat{p}\))和所声称的总体比例(\(p\)) 之间的差值

\(n\) 是样本量。

在我们这个例子中

所声称的(\(H_{0}\))总体比例(\(p\)) 为 \( 0.20 \)

样本比例(\(\hat{p}\)) 为10除以40,即:\(\displaystyle \frac{10}{40} = 0.25\)

样本量(\(n\)) 为 \(40\)

那么检验统计量 (TS) 为

\(\displaystyle \frac{0.25-0.20}{\sqrt{0.2(1-0.2)}} \cdot \sqrt{40} = \frac{0.05}{\sqrt{0.2(0.8)}} \cdot \sqrt{40} = \frac{0.05}{\sqrt{0.16}} \cdot \sqrt{40} \approx \frac{0.05}{0.4} \cdot 6.325 = \underline{0.791}\)

你也可以使用编程语言函数来计算检验统计量

示例

使用 Python 的 scipy 和 math 库来计算比例的检验统计量。

import scipy.stats as stats
import math

# 指定出现次数 (x)、样本量 (n) 和原假设中声称的比例 (p)
x = 10
n = 40
p = 0.2

# 计算样本比例
p_hat = x/n

# 计算并打印检验统计量
print((p_hat-p)/(math.sqrt((p*(1-p))/(n))))
自己试试 »

示例

使用 R 的内置 prop.test() 函数来计算比例的检验统计量。

# 指定样本出现次数 (x)、样本量 (n) 和原假设中的声明 (p)
x <- 10
n <- 40
p <- 0.20

# 计算样本比例
p_hat = x/n

# 计算并打印检验统计量
(p_hat-p)/(sqrt((p*(1-p))/(n)))
自己试试 »

5. 结论

得出假设检验结论主要有两种方法

  • 临界值方法将检验统计量与显著性水平的临界值进行比较。
  • P值方法将检验统计量的P值与显著性水平进行比较。

注意:两种方法只是在结论的表达方式上有所不同。

临界值方法

对于临界值方法,我们需要找到显著性水平(\(\alpha\))的临界值(CV)。

对于总体比例检验,临界值 (CV) 是来自标准正态分布Z值

这个临界Z值 (CV) 定义了检验的拒绝域

拒绝域是标准正态分布尾部中的一个概率区域。

因为该说法是总体比例超过20%,所以拒绝域在右尾

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

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

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

注意:这些函数找到的是左侧区域的Z值。

要找到右尾的Z值,我们需要在尾部左侧的区域(1-0.05 = 0.95)上使用该函数。

示例

使用 Python 的 Scipy Stats 库 norm.ppf() 函数找到右尾中 \(\alpha\) = 0.05 的 Z值。

import scipy.stats as stats
print(stats.norm.ppf(1-0.05))
自己试试 »

示例

使用 R 的内置 qnorm() 函数找到右尾中 \(\alpha\) = 0.05 的 Z值。

qnorm(1-0.05)
自己试试 »

使用任一方法,我们都可以发现临界Z值约为 \(\approx \underline{1.6449}\)

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

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

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

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

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

Standard Normal Distribution with a right tail area (rejection region) equal to 0.05, a critical value of 1.6449, and a test statistic of 0.791

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

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

我们可以总结一下结论,即

样本数据不支持“超过 20% 的诺贝尔奖获得者出生在美国”的断言,显著性水平为 5%

P 值方法

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

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

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

对于总体比例检验,检验统计量是来自标准正态分布的 Z 值。

由于这是一个尾检验,我们需要找到大于 0.791 的 Z 值的 P 值。

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

注意:这些函数会找到 Z 值左侧的 P 值(面积)。

要找到右尾的 P 值,我们需要从总面积中减去左侧面积:1 - 函数的输出。

示例

使用 Python 的 Scipy Stats 库 norm.cdf() 函数,找到大于 0.791 的 Z 值的 P 值。

import scipy.stats as stats
print(1-stats.norm.cdf(0.791))
自己试试 »

示例

使用 R 的内置 pnorm() 函数,找到大于 0.791 的 Z 值的 P 值。

1-pnorm(0.791)
自己试试 »

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

这意味着显著性水平 (\(\alpha\)) 需要大于 0.2145 或 21.45%,才能拒绝零假设。

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

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

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

我们可以总结一下结论,即

样本数据不支持“超过 20% 的诺贝尔奖获得者出生在美国”的断言,显著性水平为 10%、5% 或 1%

注意:真实总体比例可能仍然大于 20%。

但没有足够的证据表明,这个样本支持这种说法。


使用编程计算假设检验的 P 值

许多编程语言可以计算 P 值,以决定假设检验的结果。

对于较大的数据集,使用软件和编程来计算统计数据更为常见,因为手动计算会很困难。

这里计算的 P 值会告诉我们最低可能的显著性水平,在该水平下可以拒绝零假设。

示例

使用 Python 的 scipy 和 math 库,为比例的右尾假设检验计算 P 值。

这里,样本量为 40,出现次数为 10,检验的是比例大于 0.20 的假设。

import scipy.stats as stats
import math

# 指定出现次数 (x)、样本量 (n) 和原假设中声称的比例 (p)
x = 10
n = 40
p = 0.2

# 计算样本比例
p_hat = x/n

# 计算检验统计量
test_stat = (p_hat-p)/(math.sqrt((p*(1-p))/(n)))

# 输出检验统计量的 P 值(右尾检验)
print(1-stats.norm.cdf(test_stat))
自己试试 »

示例

使用 R 的内置 prop.test() 函数,为比例的右尾假设检验计算 P 值。

这里,样本量为 40,出现次数为 10,检验的是比例大于 0.20 的假设。

# 指定样本出现次数 (x)、样本量 (n) 和原假设中的声明 (p)
x <- 10
n <- 40
p <- 0.20

# 显著性水平为 0.05 的右尾比例检验的 P 值
prop.test(x, n, p, alternative = c("greater"), conf.level = 0.95, correct = FALSE)$p.value
自己试试 »

注意:R 代码中的 conf.level 与显著性水平相反。

这里,显著性水平为 0.05 或 5%,因此 conf.level 为 1-0.05 = 0.95 或 95%。


左尾检验和双尾检验

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

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


×

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.