Stata:如何估计置信区间?

学术   2024-10-23 10:02   北京  


🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春;张宏亮
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)


作者:曹琳君 (南开大学)
邮箱:linjuncao@yeah.net


目录

  • 1. 何谓置信区间?

  • 2. 回归结果中的置信区间

  • 3. 使用 bootstrap 获取置信区间

  • 4. Stata 范例

  • 5. 结束语

  • 6. 参考资料

  • 7. 相关推文



温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

1. 何谓置信区间?

利用已知数据及其分布规律对未知数据进行合理的推断是数理统计学的重要功能之一。在数理统计学中,我们将用来进行合理推断的已知数据称为样本,将被合理推断的未知数据称为参数,将这种推断方法称为参数估计。参数估计方法包括点估计和区间估计。

点估计就是适当选择一个统计量作为未知参数的估计 (称为估计量),并用样本来估计该值。对于不同的样本有不同的估计值。由于仅依靠点估计难以评估待参数估计值与其真实值之间的接近程度,即无法通过点估计来度量估计值的可信程度,故需要引入区间估计。

区间估计就是给出一个区间 (置信区间),并预测真正的参数 以一定的概率存在于这一区间的方法。这一区间覆盖真实值的概率被称为置信系数。置信区间用区间的端点 表示,。当给定常数 ,若有

成立,则称 这一区间能够覆盖真值的概率为 。这样的区间 为待估参数 置信区间 (confidence interval,简写为 CI), 称为置信系数或 置信水平 (confidence level,简写为 CL), 称为显著性水平。 分别称为置信区间的下限和置信区间的上限。

2. 回归结果中的置信区间

以简单线性回归模型为例。对于给定的一个线性模型:

是回归系数也是模型的参数, 是误差项。

我们通常计算得到的回归系数是根据样本数据计算的点估计值,如果收集的样本数据不同,则求得的回归系数的数值也会不同。因此,如果为避免样本数据产生的误差,可以对它们进行区间估计。

为了计算回归系数的置信区间,首先需要计算总方差:

接着,计算回归系数的均值与方差。其中,系数 的均值与方差为:

系数 的均值与方差为:

最后,计算回归系数的置信区间。其中,系数 的置信区间为:

系数 的置信区间为:

3. 使用 bootstrap 获取置信区间

常规的参数的置信区间的计算都服从一定的分布 ( 分布、正态分布等)。然而,当我们需要计算的参数的置信区间不服从常见分布时,是否意味着不能获得该参数的置信区间?

答案是否定的。bootstrap 不对数据的分布做任何假设。bootstrap 方法将一项研究获得的样本数据进行多次重抽样,创建多个模拟样本集,该方法中不考虑原数据集的固有分布特征以及特定的前提假设等。在该过程结束时,模拟数据集将包含原始数据集中存在的值的许多种不同组合。每个模拟数据集都有自己的一组样本统计信息。

是来自总体 容量为 的样本, 是一个已知的样本值, 中含有未知参数 的估计量,现在求 的置信水平为 的置信区间。

相继地,独立从样本 中抽出 个容量为 的 bootstrap 样本,对于每个 bootstrap 样本求出 的 bootstrap 估计:。将它们自小到大排序,得:

,用对应的 的分布作为 的分布的近似,求出 的近似分位数,使得:

于是近似地有,

,在上式中,以 分别作为分位数 ,得到近似等式:

于是由上式得到 的置信水平为 的近似置信区间:

这一区间被称为 的置信水平为 的 bootstrap 置信区间。这种求区间的方法被称为分位数法。

4. Stata 范例

我们使用 Stata 自带的数据 auto 来分别演示不同的置信区间的获取过程。

首先,导入数据并显示数据基本格式:

. sysuse auto, clear
. des

Observations: 74 1978 automobile data
Variables: 12 13 Apr 2020 17:45
(_dta has notes)
---------------------------------------------------------
Variable Storage Display
name type format Variable label
---------------------------------------------------------
make str18 %-18s Make and model
price int %8.0gc Price
mpg int %8.0g Mileage (mpg)
rep78 int %8.0g Repair record 1978
headroom float %6.1f Headroom (in.)
trunk int %8.0g Trunk space (cu. ft.)
weight int %8.0gc Weight (lbs.)
length int %8.0g Length (in.)
turn int %8.0g Turn circle (ft.)
displacement int %8.0g Displacement (cu. in.)
gear_ratio float %6.2f Gear ratio
foreign byte %8.0g Car origin
----------------------------------------------------------
Sorted by: foreign

然后,分别以变量 priceforeign 为例,计算它们各自的均值在 95% 置信水平的均值置信区间。前者为连续变量,后者为分类变量。

. ci means  price, level(95)
Variable | Obs Mean Std. err. [95% conf. interval]
----------+----------------------------------------------------
price | 74 6165.257 342.8719 5481.914 6848.6

. ci proportions foreign
Binomial exact
Variable | Obs Proportion Std. err. [95% conf. interval]
----------+----------------------------------------------------
foreign | 74 .2972973 .0531331 .196584 .4148353

接着,我们以 price 为因变量,以 weightlengthforeign 为自变量,演示回归系数的在 95% 置信水平的置信区间的获取过程。

. reg price weight length foreign, level(95)

Source | SS df MS Number of obs = 74
---------+---------------------------------- F(3, 70) = 28.39
Model | 348565467 3 116188489 Prob > F = 0.0000
Residual | 286499930 70 4092856.14 R-squared = 0.5489
---------+---------------------------------- Adj R-squared = 0.5295
Total | 635065396 73 8699525.97 Root MSE = 2023.1
--------------------------------------------------------------------------
price | Coefficient Std. err. t P>|t| [95% conf. interval]
---------+----------------------------------------------------------------
weight | 5.775 0.959 6.02 0.000 3.861 7.688
length | -91.371 32.828 -2.78 0.007 -156.845 -25.897
foreign | 3573.092 639.328 5.59 0.000 2297.992 4848.191
_cons | 4838.021 3742.010 1.29 0.200 -2625.183 12301.224
--------------------------------------------------------------------------

最后,我们演示如何使用 bootstrap 计算回归系数的置信区间。

. bootstrap, reps(100): reg price weight length foreign //默认reps(50)
(running regress on estimation sample)
Bootstrap replications (100)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
.................................................. 50
.................................................. 100
Linear regression Number of obs = 74
Replications = 100
Wald chi2(3) = 51.68
Prob > chi2 = 0.0000
R-squared = 0.5489
Adj R-squared = 0.5295
Root MSE = 2023.0809
--------------------------------------------------------------------------
| Observed Bootstrap Normal-based
price | coefficient std. err. z P>|z| [95% conf. interval]
---------+----------------------------------------------------------------
weight | 5.775 1.617 3.57 0.000 2.605 8.944
length | -91.371 54.331 -1.68 0.093 -197.858 15.116
foreign | 3573.092 695.808 5.14 0.000 2209.333 4936.851
_cons | 4838.021 5871.232 0.82 0.410 -6669.382 16345.423
--------------------------------------------------------------------------

. *或者
. reg price weight length foreign, vce(bs, reps(100)) //默认reps(50)
(running regress on estimation sample)
Bootstrap replications (100)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
.................................................. 50
.................................................. 100
Linear regression Number of obs = 74
Replications = 100
Wald chi2(3) = 59.10
Prob > chi2 = 0.0000
R-squared = 0.5489
Adj R-squared = 0.5295
Root MSE = 2023.0809
--------------------------------------------------------------------------
| Observed Bootstrap Normal-based
price | coefficient std. err. z P>|z| [95% conf. interval]
---------+----------------------------------------------------------------
weight | 5.775 1.606 3.59 0.000 2.626 8.923
length | -91.371 51.877 -1.76 0.078 -193.047 10.306
foreign | 3573.092 640.629 5.58 0.000 2317.481 4828.703
_cons | 4838.021 5365.122 0.90 0.367 -5677.426 15353.467
--------------------------------------------------------------------------

通过对比可以发现,两种方法计算的标准误和置信区间有一定的差别。根据 bootstrap 帮助文档介绍,许多估计命令都允许 vce(bootstrap),因此我们建议在估计参数的时候使用 vce(bootstrap),而非 bootstrap 前缀命令。这主要是因为,估计命令已经帮我们处理好了聚类和其他一些模型细节,而 bootstrap 前缀命令 只适用于那些非估计命令,例如 summarize 和用户自定义程序等。

5. 结束语

概率论与数理统计学的基本原理是正确运用不同研究方法和解读研究结果的基础。尽管我们可以借助多种统计软件如 Stata、R、SPSS 等直接获得想要的数据结果,而不需要通过掌握许多数理知识来手工计算,但是当我们想要比较多种方法的优劣,思考代码或公式是否正确时,好的数理基础可以减少误入歧途的可能性。在参考资料部分,本文列出的基本概率论与统计学书籍可以供对此感兴趣的同学进一步阅读。

6. 参考资料

  • What exactly is the confidence interval?
  • 何晓群.现代统计分析方法与应用[M].第 3 版.北京:中国人民大学出版社,2012.
  • 陈希孺.概争论与数理统计.[M].合肥:中国科学技术大学出版社,1992.
  • 盛 骤,谢式千,潘承毅.概概率论与数理统计.[M].第 3 版.北京:高等教育出板社,2006.

7. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 参数估计 置信区间 bootstrap 统计推断, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Stata入门
    • 25常见种误区:P值、置信区间和统计功效
  • 专题:Stata程序
    • Stata: Bootstrap-自抽样-自举法
  • 专题:断点回归RDD
    • RDD:断点回归的非参数估计及Stata实现
  • 专题:空间计量
    • 空间计量:地理加权归回模型-(GWR)-参数估计
  • 专题:机器学习
    • Lasso:拉索中如何做统计推断

🍉 扫码加入连享会微信群,提问交流更方便


君泉计量
交流学习经验,探讨论文写作
 最新文章