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. 计算置信区间

例如

  • **总体**: 诺贝尔奖获得者
  • **变量**: 他们获得诺贝尔奖时的年龄

我们可以抽取样本并计算该样本的均值和 标准差

样本数据用于估计 **所有** 诺贝尔奖获得者的平均年龄。

通过随机选择 30 位诺贝尔奖获得者,我们可以发现

样本中的平均年龄为 62.1

样本中年龄的标准差为 13.46

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


1. 检查条件

计算总体均值置信区间的条件是

  • 样本是 随机选择的
  • 或者
    • 总体数据呈正态分布
    • 样本量足够大

中等大小的样本量,例如 30,通常足够大。

在本例中,样本量为 30,并且是随机选择的,因此条件满足。

**注意:** 可以使用专门的统计检验来检查数据是否呈正态分布。



2. 找到点估计值

点估计值是 样本均值 (\(\bar{x}\))。

计算样本均值的公式是所有值的总和 \(\sum x_{i}\) 除以样本量 (\(n\))

\(\displaystyle \bar{x} = \frac{\sum x_{i}}{n}\)

在本例中,样本中的平均年龄为 62.1。


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 个不同的样本并为每个样本构建置信区间

真实参数将在这 100 个置信区间中的 95 个中。

我们使用 学生t分布 来找到置信区间的 **误差范围**。

t分布根据样本量进行调整,使用 “自由度”(df)。

自由度是样本量 (n) - 1,在本例中是 30 - 1 = 29

剩余概率 (\(\alpha\)) 被分成两部分,使一半在分布的每个尾部区域。

t 值轴上将尾部区域与中间区域分开的点称为 **临界 t 值**。

以下是标准正态分布图,显示了不同置信水平下 29 个自由度 (df) 的尾部区域 (\(\alpha\))。

Student's t-distributions with two tail areas, with different sizes.


4. 计算误差范围

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

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

\(\displaystyle E = t_{\alpha/2}(df) \cdot \frac{s}{\sqrt{n}} \)

临界 t 值 \(t_{\alpha/2}(df) \) 是根据标准正态分布和置信水平计算的。

标准误差 \(\frac{s}{\sqrt{n}} \) 是根据样本标准差 (\(s\)) 和样本量 (\(n\)) 计算的。

在本例中,样本标准差 (\(s\)) 为 13.46,样本量为 30,则标准误差为

\(\displaystyle \frac{s}{\sqrt{n}} = \frac{13.46}{\sqrt{30}} \approx \frac{13.46}{5.477} = \underline{2.458}\)

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

因此,我们需要找到临界 t 值 \(t_{0.05/2}(29) = t_{0.025}(29)\)

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

示例

使用 Python 的 Scipy Stats 库 t.ppf() 函数找到 \(\alpha\)/2 = 0.025 和 29 个自由度的 t 值。

import scipy.stats as stats
print(stats.t.ppf(1-0.025, 29))
动手试试 »

示例

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

qt(1-0.025, 29)
动手试试 »

使用任一方法,我们都可以发现临界 t 值 \(t_{\alpha/2}(df)\) 约为 \(\underline{2.05} \)

标准误差 \(\frac{s}{\sqrt{n}}\) 约为 \(\underline{2.458}\)

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

\(\displaystyle E = t_{\alpha/2}(df) \cdot \frac{s}{\sqrt{n}} \approx 2.05 \cdot 2.458 = \underline{5.0389}\)


5. 计算置信区间

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

在本例中,点估计值为 0.2,误差范围为 0.143,则

下限为

\(\bar{x} - E = 62.1 - 5.0389 \approx \underline{57.06} \)

上限为

\(\bar{x} + E = 62.1 + 5.0389 \approx \underline{67.14} \)

置信区间为

\([57.06, 67.14]\)

我们可以总结置信区间,如下所示

诺贝尔奖获得者平均年龄的 **95%** 置信区间在 **57.06 年至 67.14 年** 之间


使用编程计算置信区间

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

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

**注意:** 使用编程代码得到的结果将更加准确,因为手动计算时会对值进行四舍五入。

示例

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

这里,样本量为 30,样本均值为 62.1,样本标准差为 13.46。

import scipy.stats as stats
import math

# 指定样本均值 (x_bar)、样本标准差 (s)、样本量 (n) 和置信水平
x_bar = 62.1
s = 13.46
n = 30
confidence_level = 0.95

# 计算 alpha、自由度 (df)、临界 t 值和误差范围
alpha = (1-confidence_level)
df = n - 1
standard_error = s/math.sqrt(n)
critical_t = stats.t.ppf(1-alpha/2, df)
margin_of_error = critical_t * standard_error

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

# 打印结果
print("临界 t 值: {:.3f}".format(critical_t))
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,样本均值为 62.1,样本标准差为 13.46。

# 指定样本均值 (x_bar)、样本标准差 (s)、样本量 (n) 和置信水平
x_bar = 62.1
s = 13.46
n = 30
confidence_level = 0.95

# 计算 alpha、自由度 (df)、临界 t 值和误差范围
alpha = (1-confidence_level)
df = n - 1
standard_error = s/sqrt(n)
critical_t = qt(1-alpha/2, 29)
margin_of_error = critical_t * standard_error

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

# 打印结果
sprintf("临界 t 值: %0.3f", critical_t)
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)
动手试试 »

**注意:** R 还具有用于计算总体均值置信区间的内置函数。

示例

R 可以使用内置的 t.test() 函数来计算估计均值的置信区间。

这里,样本是使用 rnorm() 函数生成的 30 个随机值,均值为 60,标准差为 12.5。

# 指定样本大小 (n) 和置信水平
n = 30
confidence_level = 0.95

# 设置随机种子并生成均值为 60,标准差为 12.5 的样本数据
set.seed(3)
sample <- rnorm(n, 60, 12.5)

# 对样本数据、置信水平使用 t.test 函数,并选择 $conf.int 选项
t.test(sample, conf.level = confidence_level)$conf.int
动手试试 »

×

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.