菜单
×
   ❮   
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. 计算置信区间

例如

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

我们可以抽取一个样本,看看其中有多少人出生在美国。

样本数据用于估计所有诺贝尔奖获得者在美国出生的比例。

通过随机抽取 30 位诺贝尔奖获得者,我们发现

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

根据这些数据,我们可以按照以下步骤计算置信区间。


1. 检查条件

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

  • 样本是随机选择
  • 只有两个选项
    • 属于该类别
    • 不属于该类别
  • 样本至少需要
    • 5 个成员属于该类别
    • 5 个成员不属于该类别

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

其余的人不是出生在美国,所以其他类别有 24 人。

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

注意:在每种类别中都有 5 个的情况下,计算置信区间是可能的。但需要进行特殊调整。



2. 找到点估计

点估计是样本比例(\(\hat{p}\))。

计算样本比例的公式是发生次数(\(x\)) 除以样本大小(\(n\))。

\(\displaystyle \hat{p} =\frac{x}{n}\)

在我们的例子中,30 人中有 6 人出生在美国:\(x\) 是 6,\(n\) 是 30。

因此,比例的点估计是

\(\displaystyle \hat{p} = \frac{x}{n} = \frac{6}{30} = \underline{0.2} = 20\%\)

因此,样本中有 20% 的人出生在美国。


3. 确定置信水平

置信水平用百分比或小数表示。

例如,如果置信水平是 95% 或 0.95

那么剩余的概率(\(\alpha\)) 是:5% 或 1 - 0.95 = 0.05。

常用的置信水平是

  • 90% 带有 \(\alpha\) = 0.1
  • 95% 带有 \(\alpha\) = 0.05
  • 99% 带有 \(\alpha\) = 0.01

注意: 95% 的置信水平意味着,如果我们抽取 100 个不同的样本并分别为每个样本制作置信区间

真实参数将有 95 次出现在这 100 个置信区间内。

我们使用标准正态分布来计算置信区间的误差范围

剩余的概率(\(\alpha\)) 被分成两半,一半在分布的左尾区域,一半在右尾区域。

分隔尾部区域和中间区域的 z 值轴上的值称为临界 z 值

下面是标准正态分布的图,显示了不同置信水平的尾部区域(\(\alpha\))。

Standard Normal Distributions with two tail areas, with different sizes.


4. 计算误差范围

误差范围是点估计与下界和上界之间的差值。

比例的误差范围(\(E\)) 使用临界 z 值标准误差来计算

\(\displaystyle E = Z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \)

临界 z 值 \(Z_{\alpha/2} \) 从标准正态分布和置信水平计算得出。

标准误差 \(\sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \) 从点估计(\(\hat{p}\)) 和样本大小(\(n\)) 计算得出。

在我们例子中,30 位诺贝尔奖获得者样本中有 6 位出生在美国,标准误差是

\(\displaystyle \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} = \sqrt{\frac{0.2(1-0.2)}{30}} = \sqrt{\frac{0.2 \cdot 0.8}{30}} = \sqrt{\frac{0.16}{30}} = \sqrt{0.00533..} \approx \underline{0.073}\)

如果我们选择 95% 作为置信水平,则 \(\alpha\) 是 0.05。

所以我们需要找到临界 z 值 \(Z_{0.05/2} = Z_{0.025}\)

临界 z 值可以使用Z 表或编程语言函数找到。

示例

使用 Python,请使用 Scipy Stats 库的 norm.ppf() 函数找到 \(\alpha\)/2 = 0.025 的 Z 值。

import scipy.stats as stats
print(stats.norm.ppf(1-0.025))
自己动手试一试 »

示例

使用 R,请使用内置的 qnorm() 函数找到 \(\alpha\)/2 = 0.025 的 Z 值。

qnorm(1-0.025)
自己动手试一试 »

使用任一方法,我们都可以发现临界 Z 值 \( Z_{\alpha/2} \) 约为 \(\underline{1.96}\)。

标准误差 \(\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\) 约为 \(\underline{0.073}\)。

因此,误差范围(\(E\)) 是

\(\displaystyle E = Z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \approx 1.96 \cdot 0.073 = \underline{0.143}\)


5. 计算置信区间

置信区间的下界和上界是通过从点估计(\(\hat{p}\)) 减去和加上误差范围(\(E\)) 来找到的。

在我们的例子中,点估计为 0.2,误差范围为 0.143,那么

下界是

\(\hat{p} - E = 0.2 - 0.143 = \underline{0.057} \)

上界是

\(\hat{p} + E = 0.2 + 0.143 = \underline{0.343} \)

置信区间是

\([0.057, 0.343]\) 或 \([5.7 \%, 34.4 \%]\)

我们可以通过陈述来总结置信区间:

出生在美国的诺贝尔奖获得者比例的95%置信区间在5.7% 和 34.4%之间。


使用编程计算置信区间

置信区间可以使用许多编程语言计算。

对于大型数据集,使用软件和编程计算统计量更为常见,因为手动计算会变得困难。

示例

使用 Python,请使用 scipy 和 math 库来计算估计比例的置信区间。

这里,样本大小是 30,发生次数是 6。

import scipy.stats as stats
import math

# 指定样本发生次数 (x)、样本大小 (n) 和置信水平
x = 6
n = 30
confidence_level = 0.95

# 计算点估计、alpha、临界 z 值、标准误差和误差范围
point_estimate = x/n
alpha = (1-confidence_level)
critical_z = stats.norm.ppf(1-alpha/2)
standard_error = math.sqrt((point_estimate*(1-point_estimate)/n))
margin_of_error = critical_z * standard_error

# 计算置信区间的下界和上界
lower_bound = point_estimate - margin_of_error
upper_bound = point_estimate + margin_of_error

# 打印结果
print("点估计: {:.3f}".format(point_estimate))
print("临界 Z 值: {:.3f}".format(critical_z))
print("误差范围: {:.3f}".format(margin_of_error))
print("置信区间: [{:.3f},{:.3f}]".format(lower_bound,upper_bound))
print("人口比例的 {:.1%} 置信区间为:".format(confidence_level))
print("介于 {:.3f} 和 {:.3f} 之间".format(lower_bound,upper_bound))
自己动手试一试 »

示例

使用 R,请使用内置的数学和统计函数来计算估计比例的置信区间。

这里,样本大小是 30,发生次数是 6。

# 指定样本发生次数 (x)、样本大小 (n) 和置信水平
x = 6
n = 30
confidence_level = 0.95

# 计算点估计、alpha、临界 z 值、标准误差和误差范围
point_estimate = x/n
alpha = (1-confidence_level)
critical_z = qnorm(1-alpha/2)
standard_error = sqrt(point_estimate*(1-point_estimate)/n)
margin_of_error = critical_z * standard_error

# 计算置信区间的下界和上界
lower_bound = point_estimate - margin_of_error
upper_bound = point_estimate + margin_of_error

# 打印结果
sprintf("点估计: %0.3f", point_estimate)
sprintf("临界 Z 值: %0.3f", critical_z)
sprintf("误差范围: %0.3f", margin_of_error)
sprintf("置信区间: [%0.3f,%0.3f]", lower_bound, upper_bound)
sprintf("人口比例的 %0.1f%% 置信区间为:", confidence_level*100)
sprintf("介于 %0.4f 和 %0.4f 之间", lower_bound, upper_bound)
自己动手试一试 »

×

联系销售

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

报告错误

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

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

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