Dear all,
I am working with panel data on S&P 500 firms and an OLS model of yearly stock returns (RET) with year and Fama–French 12 industry dummies and firm–clustered SEs. My main variable of interest is the interaction HARD_FREEZEXCSO_PRESENCE = HARD_FREEZE * CSO_PRESENCE, which is meant to capture the presence of the Chief Sustainability Officer (dummy variable 1 and 0 ) and hard-freeze (dummy variable 1 and 0 ). My baseline model is:
I now want to see whether a CSR disclosure index (CSR_DISC) mediates the effect of this interaction term on RET (a mediated moderation idea). After dropping missing outcome/mediator, I followed a Baron & Kenny style 3-step approach:
My main questions are: (1) Is this a correct and sensible way to implement mediation (or mediated moderation) when the “X” is an interaction term like HARD_FREEZEXCSO_PRESENCE in a panel OLS with fixed effects and clustered SEs? (2) If not, what would you change in the code or design? (3) If I want to formally estimate the indirect effect HARD_FREEZEXCSO_PRESENCE → CSR_DISC → RET with clustered SEs and my fixed effects, would you recommend using reg as above, or instead sem/gsem/mediate or another approach?
I am using Stata (version …) and can provide a small dataex if needed.
Best regards,
Hussein
I am working with panel data on S&P 500 firms and an OLS model of yearly stock returns (RET) with year and Fama–French 12 industry dummies and firm–clustered SEs. My main variable of interest is the interaction HARD_FREEZEXCSO_PRESENCE = HARD_FREEZE * CSO_PRESENCE, which is meant to capture the presence of the Chief Sustainability Officer (dummy variable 1 and 0 ) and hard-freeze (dummy variable 1 and 0 ). My baseline model is:
HTML Code:
reg RET CSO_PRESENCE ///
HARD_FREEZE HARD_FREEZEXCSO_PRESENCE ///
SIZE ROA LEV MB OCF SD_OCF BOARD_SIZE GENDER_RATIO BOARD_IND ///
SUS_COMM FUND_STATUS FUND_RATIO PLAN_SIZE ///
i.year i.ff_12, vce(cluster id)
HTML Code:
drop if missing(RET) | missing(CSR_DISC)
* Step 1: X -> Y
reg RET HARD_FREEZEXCSO_PRESENCE CSO_PRESENCE HARD_FREEZE ///
SIZE ROA LEV MB OCF SD_OCF BOARD_SIZE GENDER_RATIO BOARD_IND ///
SUS_COMM FUND_STATUS FUND_RATIO PLAN_SIZE ///
i.year i.ff_12, vce(cluster id)
* Step 2: X -> M
reg CSR_DISC HARD_FREEZEXCSO_PRESENCE CSO_PRESENCE HARD_FREEZE ///
SIZE ROA LEV MB OCF SD_OCF BOARD_SIZE GENDER_RATIO BOARD_IND ///
SUS_COMM FUND_STATUS FUND_RATIO PLAN_SIZE ///
i.year i.ff_12, vce(cluster id)
* Step 3: X & M -> Y
reg RET HARD_FREEZEXCSO_PRESENCE CSR_DISC CSO_PRESENCE HARD_FREEZE ///
SIZE ROA LEV MB OCF SD_OCF BOARD_SIZE GENDER_RATIO BOARD_IND ///
SUS_COMM FUND_STATUS FUND_RATIO PLAN_SIZE ///
i.year i.ff_12, vce(cluster id)
My main questions are: (1) Is this a correct and sensible way to implement mediation (or mediated moderation) when the “X” is an interaction term like HARD_FREEZEXCSO_PRESENCE in a panel OLS with fixed effects and clustered SEs? (2) If not, what would you change in the code or design? (3) If I want to formally estimate the indirect effect HARD_FREEZEXCSO_PRESENCE → CSR_DISC → RET with clustered SEs and my fixed effects, would you recommend using reg as above, or instead sem/gsem/mediate or another approach?
I am using Stata (version …) and can provide a small dataex if needed.
Best regards,
Hussein

Comment