全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
92658 157
2019-08-24
首先,抛出问题。做中介效应运行 bootstrap  r(ind_eff) r(dir_eff),reps(1000) : sgmediation y, mv() iv() cv(),出现了如下结果:
'r(ind_eff)' evaluated to missing in full sample
r(322);

由于本人也在做中介效应,遇到了同样的问题,几经波折之下,终于找到了原因。

出现上面的这个问题,主要原因是sgmediation这个包里面没有计算r(ind_eff)和r(dir_eff),也就是中介效应里的直接效应和间接效应两个值。所以,解决办法如下

1、保证下了一个正确的sgmediation的ado文件包
很多朋友说直接在stata窗口中用findit 和help或者ssc install已经无法下载到这个包了
是的,所以我在附件里提供了这个ado包
请大家下载后,放到 ado/base/s 这个文件夹下,到时候才可以自动调取命令

2、可以自行检查一下ado包里是否有r(ind_eff)和r(dir_eff)这两个单值,这里我简单给大家展示一下ado里中介效应的原理
(1)ado文件按照打开do文件的方式打开
(2)检查命令的触发项
program define sgmediation, rclass
这里就定义了我要用 sgmediation执行这一整条ado文档,我自己把它称为触发键
就比如你用regress命令的时候,其实在regress的包里定义了program define regress,rclass
!!这个触发命令要保证与 bootstrap  r(ind_eff) r(dir_eff),reps(1000) : sgmediation y, mv() iv() cv() 命令中的红色部分一致,否则就无法调动程序命令
(3)检查是否有r(ind_eff)和r(dir_eff)这两项
看下图这个包,分别先定义和计算了sobel(其实就是间接效应,即中介效应,是系数a*b),也计算了直接效应direff,是总效应减去中介效应,即系数 c-a*b
local sobel =(`acoef'*`bcoef')
local direff = (`ccoef'-(`acoef'*`bcoef'))

再看,包的最后是返回了这两个单值命令的
return scalar ind_eff = `sobel'
return scalar dir_eff = `direff'

3、检查无误后,就可以进行中介效应检验了
命令分别是 sgmediation y, mv() iv() cv() ---只做一般的中介效应
bootstrap  r(ind_eff) r(dir_eff),reps(1000) : sgmediation y, mv() iv() cv()
estat bootstrap,percentile bc     -----用bootsrap的方法抽样
注: y, mv() iv() cv() 依次是被解释变量 ,中介变量,核心自变量,控制变量

4、最后,就可以出结果了
      command:  sgmediation2 y, mv(tagcreditde) iv(dum_e) cv(w networth0_w1 socinsurepfde famisize
                    eduyearf_m z finscore plittlec100 pbankcredit100 dum_reg1 dum_reg3)
        _bs_1:  r(ind_eff)
        _bs_2:  r(dir_eff)

------------------------------------------------------------------------------
             |   Observed   Bootstrap                         Normal-based
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       _bs_1 |   .3266715   .0660581     4.95   0.000     .1972001    .4561429
       _bs_2 |   1.636901   .4493625     3.64   0.000     .7561668    2.517636
------------------------------------------------------------------------------



要知道,我之前的结果也是


第一次发帖子回答问题,如果对我的回答还满意的话,请给我点赞哦,跟大家一起进步~!~!~O(∩_∩)O哈哈~

另外,还有什么细节出现问题出不来结果的话,欢迎留言或者私信!!~
附件列表

sgmediation.rar

大小:1.22 KB

只需: 15 个论坛币  马上下载

中介效应确定的ado命令包

本附件包括:

  • sgmediation.ado

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-8-25 22:51:33
下了这个包依旧出现这个错误
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-8-26 04:50:10
同出茄威极低茄fake0874
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-8-26 16:27:12
hq1998 发表于 2019-8-25 22:51
下了这个包依旧出现这个错误
多看下后面的讨论,应该没问题的,这里说不清楚
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-8-28 22:14:27
您好,我下载了您提供的安装包,仍然还会出现'r(ind_eff)' evaluated to missing in full sample,怎么办啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-8-31 11:13:34
代码完全可以使用,如果依然报错,将ado中原有代码“program define sgmediation, rclass”修改成“program define sgmediation1, rclass”,并相应的将文件名和do文件中的命令名也做修改。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群