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

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

在我们这个例子中,点估计是 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() 函数来计算估计均值的置信区间。

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

# 指定样本大小 (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
自己动手试一试 »

×

联系销售

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

报告错误

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

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

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