yanglingyang 发表于 2019-7-20 09:46 
您好,您上述问题解决了吗?我也遇到了同样的问题,恳求您的回复。
sgmediation 的ado文件包里没有计算ind_eff这个单值。如果要解决这个问题,可以自己在ado文件里改一下,计算这个单值
*! version 1.1.1 -- 5/17/06 -- pbe
*! verion 1.0 -- 2/28/05 -- pbe
program define sgmediation
/* sobel-goodman mediation tests */
version 8.0
syntax varlist(max=1) [if/] [in], iv(varlist numeric max=1) ///
mv(varlist numeric max=1) [ cv(varlist numeric) BOOTstrap reps(integer 200) level(integer 95)]
marksample touse
markout `touse' `varlist' `mv' `iv' `cv'
tempname coef emat
display
display as text "Model with dv regressed on iv"
regress `varlist' `iv' `cv' if `touse'
local ccoef=_b[`iv']
display
display "Model with mediator regressed on iv"
regress `mv' `iv' `cv' if `touse'
local acoef=_b[`iv']
local avar=_se[`iv']^2
display
display "Model with dv regressed on mediator and iv"
regress `varlist' `mv' `iv' `cv' if `touse'
local bcoef=_b[`mv']
local bvar=_se[`mv']^2
local sobel =(`acoef'*`bcoef')
local serr=sqrt(`bcoef'^2*`avar' + `acoef'^2*`bvar')
local stest=`sobel'/`serr'
local g1err=sqrt(`bcoef'^2*`avar' + `acoef'^2*`bvar' + `avar'*`bvar')
local good1=`sobel'/`g1err'
local g2err=sqrt(`bcoef'^2*`avar' + `acoef'^2*`bvar' - `avar'*`bvar')
local good2=`sobel'/`g2err'
local toteff = `sobel'/((`acoef'*`bcoef')+(`ccoef'-(`acoef'*`bcoef')))
local ratio = `sobel'/((`ccoef'-(`acoef'*`bcoef')))
display
display "Sobel-Goodman Mediation Tests"
display
display " Coef Std Err Z P>|Z|"
display as txt "Sobel " as res `sobel' _skip(4) `serr' %8.4g ///
`stest', _skip(5) 2*(1-norm(abs(`stest')))
display as txt "Goodman-1 " as res `sobel' _skip(4) `g1err' %8.4g ///
`good1', _skip(5) 2*(1-norm(abs(`good1')))
display as txt "Goodman-2 " as res `sobel' _skip(4) `g2err' %8.4g ///
`good2', _skip(5) 2*(1-norm(abs(`good2')))
display
display as txt "Pecent of total effect that is mediated: ", as res ///
%5.2f 100*`toteff',"%"
display as txt "Ratio of indirect to direct effect: ", as res %8.4f `ratio'
if "`bootstrap'"~="" {
display
display as txt "Percentile and Bias-corrected bootstrap results for Sobel: `reps' replications"
display
quietly bootstrap coef=r(sobel), reps(`reps') level(`level'): sgboot `varlist' , mv(`mv') iv(`iv') cv(`cv' )
estat bootstrap, bc percentile noheader
}
end