Stata:如何估计置信区间?

发布时间:2021-09-05 阅读 10622

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

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


目录


1. 何谓置信区间?

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

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

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

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

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

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

β0 和 β1 是回归系数也是模型的参数,ε 是误差项。

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

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

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

系数 β^1 的均值与方差为:

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

系数 β^1 的置信区间为:

3. 使用 bootstrap 获取置信区间

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

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

设 X=(X1,X2,,Xn) 是来自总体 F 容量为 n 的样本,x=(x1,x2,,xn) 是一个已知的样本值,F 中含有未知参数 θθ^=θ^(X1,X2,,Xn) 是 θ 的估计量,现在求 θ 的置信水平为 1α 的置信区间。

相继地,独立从样本 x=(x1,x2,,xn) 中抽出 B 个容量为 n 的 bootstrap 样本,对于每个 bootstrap 样本求出 θ 的 bootstrap 估计:θ^1,θ^2,,θ^B。将它们自小到大排序,得:

取 R(X)=θ^,用对应的 R(X)=θ^ 的分布作为 R(X) 的分布的近似,求出 R(X) 的近似分位数,使得:

于是近似地有,

记 k1=[B×α2]k2=[B×(1α2)],在上式中,以 θ^(k1) 和 θ^(k2) 分别作为分位数 θ^a/2 和 θ^1a/2,得到近似等式:

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

这一区间被称为 θ 的置信水平为 1α 的 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

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

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

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh