Stata:展示OLS和GLM的交乘项(二)-icalc

发布时间:2023-03-05 阅读 878

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下载 - 推文合集

作者:陈美琪 (宁波诺丁汉大学)
邮箱438508741@qq.com


目录


   

1. 简介

在推文 Stata:展示OLS和GLM的交乘项(一)-icalc 中,我们介绍了 icalc 命令包中设置交乘项的命令 intspec,生成图的命令 effdisp,以及生成代数表达式的命令 gfi。在这篇推文中将为大家介绍工具包中的另外两个命令:sigregoutdisp 命令。

sigreg 的功能是创建显示焦点变量的影响和统计显著性的表,显示其如何随调节变量的值而变化;而 outdisp 生成表格、条形图、散点图或等高线图,以显示结果的预测值。

2. 命令介绍

2.1 sigreg 命令

sigreg 以表格形式对焦点变量影响的显著性区域进行了经验推导定义。如果可能的话也执行用于检验调节效应的 Johnson-Neyman 边界值分析,以找到中心变量显著影响调节变量的值。在运行 sigreg 之前必须运行 intspecintspec 的命令介绍详见推文 Stata:展示OLS和GLM的交乘项(一)-icalc

sigreg, [ siglev(#, adjtype) effect(type(suboptions)) 
  save( filepath, table matrix) ndigits(#) 
  concise nobva plotjn(graphname, skip#) ]

其中,siglev(#, adjtype) 是显著性的调整,默认为 0.05。

effect 是焦点变量单位变化显著性区域表中报告的系数值类型,具体参数 type 是系数类型的关键词。其中,b 为估计系数,factor 为因子变化系数,spostmchange 命令计算的边际/离散变化,默认为 effect(b)

  • suboptions 为类型的子选项。对于系数类型为 b 或者 factor,默认为 1,表示一个单位的变动,也可以更改为:sd 表示一个标准差的变动;# 表示任何非零实数的变动;sdy 表示以“模型”结果的标准差单位进行缩放的估计效果;sdyx 表示对焦点变量的1个标准差的变化所计算的 sdy 效应。
  • 对于系数类型为 spost,语法为 spost(amtopt() atopt()) whereamtopt() 为 SPOST13 的 mchange 命令指定变化量选项。必须包括 amount() 的单一条目。默认为 amtopt(amount(one))atopt()margins 命令的 at() 选项指定内容,适用于除焦点或调节器以外的预测因子。默认为 atopt((asobs) _all)

save 设置存储路径,将文件保存在 filepath 路径下,选择表格或者矩阵格式,例如 save(\output\sigtable.xlsx tab)

此外,ndigits 表示表格中数字的位数,必须为整数,默认为 2。concise 限制边界值分析中的细节。nobva 选项如果标注的话不做边界值分析。plotjn 表示如果有 2 个调节变量,则请求 Johnson-Neyman 边界值的图。

2.2 outdisp 命令

第二个命令为 outdispoutdisp 生成表格和/或柱状图,散点图或等高线图,显示交互作用的预测因素与结果之间的关系模式。柱状图和散点图可以选择性地将主效应模型的预测叠加在交互模型的预测值上。同样,在运行 outdisp 之前必须运行 intspec

outdisp 的基本语法为:

outdisp , [ outcome(metric(predtype) atopt(marginspec) sdy dualaxis mainest(estname)) 
  plot(type(plottype) single(detail) name(graphname) 
  save(filepath) freq(base) keepfrq ccuts(numlist))) 
  table(rowvar(type) save(filepath) freq(base) abs) ndigits(#) pltopts(string) ]

outcome 展示预测结果,其中:

  • metric(predtype) 可选关键词为 obsmodel,分别对应观测到的度量 (默认) 和预测的度量。
  • atoptmargin 命令的 at 选项指定内容,而不是焦点变量或调节变量。默认为 atopt((asobs) _all)
  • sdy 关键字仅对 metric(model) 有效。在模型中标记主 y 轴公制标准偏差单位 (如适用)。
  • dualaxix 关键字仅对 metric(model) 有效。添加标记的第二个 y 轴观察结果指标。对 mlogit 无效。
  • mainest 仅对 metric(obs) 有效。为交互效果添加主效果预测显示。必须使用 estimates store estname 保存主要效果模型估计。

plot 指定如何绘制随焦点变量和调节变量而变化的结果,其中:

  • (type(plottype) 为绘制的图标类型,可以是散点图 (关键词 sca),柱状图 (关键词 bar),等值线图 (关键词 contour)。
  • name 为图表命名。
  • save 将绘图数据和频率分布保存到 Excel 文件,并注明名称和位置。
  • single 是每单张图表显示何内容的关键词。1 表示为第一个调节变量的每个值显示单独焦点结果图,2 表示在相同的焦点结果图上显示第一调节变量的所有结果,但为第二个调节变量显示不同的值,all 表示为第一调节变量和第二调节变量的每个组合都显示不同的焦点结果图。
  • freq(base) 在图中添加第一个调节变量或第一个和第二个的乘积的相对频率分布。(base) 的关键词可以是: tot 第一调节变量的分布;sub 第一调节变量在第二调节变量不同层级内的分布; subtot 第一第二调节变量在总样本中的联合分布。
  • keepfreq 用于保存用于创建最终频率的单独频率分布图。

table 通过焦点和调节变量制作预测结果表,其中:

  • rowvar(type) 关键字 focalmod 表行。默认 rowvar(focal)
  • save(filepath) 保存 (文件路径) 与 plot 子选项相同。
  • freq(base) 频率 (基数) 与 plot 子选项相同。
  • ndigits(#) y 轴标签的位数,默认 4。
  • ccuts(numlist) 定义等值线切割点。默认为从最小值到最大值的 6 等步预测的结果。
  • pltopts(string) 包含双向图形选项来定制外观 (例如线的颜色)。但它们不总是有效的,如果无效,请使用图形编辑器。

3. Stata 实操

同样,我们使用作者提供的 SIPP_Wealth.dta,设置好路径并建立名为 Output 的文件夹,用于存储结果。执行以下命令,如果当前路径没有名为 Output 的文件夹就新建一个设置为存储路径。

. cap mkdir Output
. lxhuse sipp_wealth, clear
. mata: st_numscalar("dout", dirout=direxists("Output"))

首先我们执行回归命令,关注返回的回归结果。然后使用上一期提到的 intspec 命令设置好交互内容。最后使用 sigreg 命令查看交互结果。数据因变量为 netw10k (家庭财富净值,以 10k 为单位) ,我们关注 hoh (户主类型) 与 kids (孩子数量) 的交互关系,设定焦点变量为 hoh 户主类型,取值包括夫妻、单身男性、单身女性。

. regress netw10k metro i.edcat i.hoh##c.kids age agesq retired nilf hhld_income 

      Source |       SS           df       MS      Number of obs   =    14,237
-------------+----------------------------------   F(15, 14221)    =    320.85
       Model |  1460168.38        15  97344.5585   Prob > F        =    0.0000
    Residual |  4314653.45    14,221  303.400144   R-squared       =    0.2529
-------------+----------------------------------   Adj R-squared   =    0.2521
       Total |  5774821.82    14,236  405.649187   Root MSE        =    17.418
-------------------------------------------------------------------------------
      netw10k | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
--------------+----------------------------------------------------------------
        metro |      0.491      0.332     1.48   0.139       -0.160       1.142
              |
        edcat |
          HS  |      4.579      0.497     9.21   0.000        3.605       5.553
    SomeColl  |      6.223      0.544    11.44   0.000        5.156       7.289
    CollGrad  |      8.728      0.606    14.41   0.000        7.541       9.916
    PostGrad  |     10.066      0.619    16.26   0.000        8.852      11.279
              |
          hoh |
  Single_man  |     -1.699      0.499    -3.41   0.001       -2.677      -0.721
Single_woman  |     -3.770      0.438    -8.61   0.000       -4.628      -2.911
              |
         kids |     -0.968      0.173    -5.59   0.000       -1.307      -0.628
              |
   hoh#c.kids |
  Single_man  |      0.062      0.706     0.09   0.930       -1.323       1.446
Single_woman  |      1.677      0.390     4.30   0.000        0.912       2.443
              |
          age |      0.386      0.062     6.25   0.000        0.265       0.507
        agesq |     -0.000      0.001    -0.15   0.884       -0.001       0.001
      retired |      1.281      0.582     2.20   0.028        0.141       2.422
         nilf |      5.764      0.755     7.63   0.000        4.283       7.244
  hhld_income |      2.804      0.072    38.96   0.000        2.663       2.945
        _cons |    -21.119      1.546   -13.66   0.000      -24.149     -18.089
-------------------------------------------------------------------------------

. mat list e(b)
. mat list e(V)
. intspec focal(i.hoh) main((c.kids, name(Children) range(0/10))  ///
>     (i.hoh, name(Headship_Type) range(0/2)))                    ///
>     int2(i.hoh#c.kids) ndig(0) abbrevn(14)
. sigreg, ndig(2)

Boundary Value Analysis Options Specified or Default
    Skip BVA  =  no
    Details  
Significance Region Table Options Specified or Default
    Critical value F = 3.842 set with p = 0.0500 
    Effect type = b   (1 unit difference) 
    Decimals reported in tables = 2
 Boundary Values for Significance of Effect of Headship_Type on g(netw10k) Moderated by Children
   Critical value F = 3.842 set with p = 0.0500
+------------------------------------------------------------------------------------------+
|Effect of Headship_T|When Children >=|Sig Changes         |When Children >=| Sig Changes  |
|--------------------+----------------+--------------------+----------------+--------------|
|          Single_man|     1.21       | to Not Sig [-5.69] | -0.84 (< min)  | to Sig [4.90]|
|        Single_woman|     1.59       | to Not Sig [-15.66]|     3.80       | to Sig [2.80]|
+------------------------------------------------------------------------------------------+
     Note: Derivatives of Boundary Values in [ ]

   Significance Region for Effect of Headship_Type (1 unit difference) 
   on g(netw10k) at Selected Values of Children 
----------------------------------------------------------------------------------
                                 At Children=   
Effect of   |   0      1      2     3     4     5     6     7     8      9     10    
------------+--------------------------------------------------------------------
Single_man  |-1.70* -1.64* -1.58 -1.51 -1.45 -1.39 -1.33 -1.27 -1.20  -1.14  -1.08 
Single_woman|-3.77* -2.09* -0.41  1.26  2.94* 4.62* 6.29* 7.97* 9.65* 11.33* 13.00*
----------------------------------------------------------------------------------
     Key: Plain font  = Pos, Not Sig     Bold font*   = Pos, Sig 
          Italic font = Neg, Not Sig     Italic font* = Neg, Sig 

从表中可以看到,Single_womankids 的交互项显著为正。通过 intspec 命令设置为我们关注 kids 变量如何调节 hohnetw10k 的影响。可以看到,当孩子数量大于 3.8 时,单身女性显著正向影响家庭净资产,相比之下单身男性对家庭净资产的影响不显著。第二张表清楚地显示了在不同的孩子数量下,户主类型对家庭净资产的影响大小及显著性。

接下来看一下 outdisp 命令的效果。我们执行回归命令,关注返回的回归结果。然后使用 intspec 命令设置好交互内容。最后使用 outdisp 命令查看图示交互效果。

我们关注 edcat (教育水平) 与 hoh (户主类型) 的交互关系。在这里我们设定了教育水平为焦点变量。下图显示了户主类型如何调节教育水平对家庭净值的影响,命令要求保留小数点后一位,增加图的边距。可以看到,对于不同的户主类型,不同的教育水平对家庭净值的影响是有差异的。


. regress netw10k metro i.edcat##i.hoh i.anykids age agesq retired nilf hhld_income 

      Source |       SS           df       MS      Number of obs   =    14,237
-------------+----------------------------------   F(21, 14215)    =    231.00
       Model |  1469291.75        21   69966.274   Prob > F        =    0.0000
    Residual |  4305530.07    14,215  302.886392   R-squared       =    0.2544
-------------+----------------------------------   Adj R-squared   =    0.2533
       Total |  5774821.82    14,236  405.649187   Root MSE        =    17.404
----------------------------------------------------------------------------------------
               netw10k | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-----------------------+----------------------------------------------------------------
                 metro |      0.499      0.332     1.50   0.133       -0.151       1.150
                       |
                 edcat |
                   HS  |      4.005      0.769     5.21   0.000        2.498       5.513
             SomeColl  |      5.860      0.810     7.24   0.000        4.273       7.448
             CollGrad  |      9.044      0.858    10.54   0.000        7.361      10.726
             PostGrad  |     10.914      0.864    12.63   0.000        9.220      12.609
                       |
                   hoh |
           Single_man  |     -1.227      1.167    -1.05   0.293       -3.514       1.060
         Single_woman  |     -3.102      0.900    -3.45   0.001       -4.866      -1.337
                       |
             edcat#hoh |
        HS#Single_man  |      1.407      1.383     1.02   0.309       -1.304       4.119
      HS#Single_woman  |      1.139      1.062     1.07   0.284       -0.943       3.220
  SomeColl#Single_man  |     -0.325      1.464    -0.22   0.824       -3.195       2.545
SomeColl#Single_woman  |      1.267      1.156     1.10   0.273       -0.999       3.532
  CollGrad#Single_man  |     -2.741      1.587    -1.73   0.084       -5.853       0.370
CollGrad#Single_woman  |     -0.785      1.325    -0.59   0.554       -3.381       1.812
  PostGrad#Single_man  |     -3.766      1.602    -2.35   0.019       -6.906      -0.626
PostGrad#Single_woman  |     -3.542      1.399    -2.53   0.011       -6.285      -0.800
                       |
               anykids |
              1+ Kids  |     -2.222      0.352    -6.31   0.000       -2.913      -1.531
                   age |      0.416      0.062     6.72   0.000        0.294       0.537
                 agesq |     -0.000      0.001    -0.75   0.454       -0.002       0.001
               retired |      1.210      0.581     2.08   0.037        0.071       2.350
                  nilf |      6.012      0.749     8.02   0.000        4.544       7.481
           hhld_income |      2.803      0.072    38.70   0.000        2.661       2.945
                 _cons |    -21.296      1.615   -13.19   0.000      -24.461     -18.130
----------------------------------------------------------------------------------------

. intspec focal(i.edcat) main((i.edcat, name(Education) range(0/4))   ///
>     (i.hoh, name(Head_Type) range(0/2)))                            ///
>     int2(i.edcat#i.hoh) ndig(0) abbrevn(14)

Interaction Effects on netw10k Specified as
     Main effect terms: 1.edcat 2.edcat 3.edcat 4.edcat  1.hoh 2.hoh 
     Two-way interaction terms: i.edcat#i.hoh 
  These will be treated as: Focal variable = 1.edcat 2.edcat 3.edcat 4.edcat ("Education")
    moderated by interaction(s) with
        1.hoh 2.hoh ("Head_Type")

. outdisp, plot(type(bar)) out(atopt((means) _all)) ndig(1) pltopts(plotregion(ma(t+4)))

Outcome Options Specified or Default
   metric =  obs
   atopt =  (means) _all
Plot Options Specified or Default
   type =  bar

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 交乘, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

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

课程主页

课程主页

关于我们

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

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

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

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

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