Stata this?
Code:
foreach varMed of varlist moderator {
capture program drop ModMed
program define ModMed, rclass
quietly summarize `varMod'
local m=r(mean)
local sd=r(sd)
cap noisily reg `varMed' cl.`varIV'##c.`varMod'
if _rc==0 {
return scalar al=(_b[`varMed':L.`varIV']+_b[`varMed':cL.`varIV'#c.`varMod']*(`m'-1*`sd'))
return scalar a=(_b[`varMed':L.`varIV']+_b[`varMed':cL.`varIV'#c.`varMod']*(`m'))
return scalar ah=(_b[`varMed':L.`varIV']+_b[`varMed':cL.`varIV'#c.`varMod']*(`m'+1*`sd'))
}
cap noisily reg `varDV' cl.`varIV'##c.`varMod' Mediator
if _rc==0 {
return scalar b=(_b[`varDV':cL.gp`varMed'])
}
end
cap bootstrap belowMean=(r(al)*r(b)) mean=(r(a)*r(b)) aboveMean=(r(ah)*r(b)) , reps(50) seed(1234) : ModMed
cap estat bootstrap
0 Response to How to tell Stata "end" if for the "program define" rather than the loop?
Post a Comment