Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: re: standardized betas with nlcom
From 
 
John Antonakis <[email protected]> 
To 
 
[email protected] 
Subject 
 
Re: st: re: standardized betas with nlcom 
Date 
 
Sun, 13 Apr 2014 11:40:21 +0200 
Hi Amy:
You can prefix test-type commands with -estat stdize- that is for sure. 
I would sooner trust tests of the unstandardized than the standardized 
results.  Standardized results do not mean much and most would prefer to 
see original metrics for interpretation.
However, what is more important is for you to reflect on what you are 
testing, exactly.  Are the mediators endogenous? They probably are. If 
so, you should not be estimating "piecemeal" equations--you need to 
"join" them by allowing the disturbances to correlate and thus account 
for possible common omitted causes of the mediators and the dependent 
variable. What you are doing now is akin to testing the system of 
equations via OLS, which will be inconsistent as compared to 2SLS if the 
mediators are endogenous. You need to use an instrumental variable 
estimator (see code below, and for explanations see Antonakis et al., 
2010). Thus, following your specification you should also add the 
disturbance covariances:
sem (med1 <- indvar mod interact ) (med2 <- indvar mod interact )
(depvar <- med1 med2 indvar mod interact), cov(e.depvar*e.med1 
e.depvar*med2 e.med1*e.med2)
Now, if you try to estimate this, you are not causally identified.  I 
guess you are interested in testing a moderation effect in the first 
stage. If so you should test:
sem (med1 <- indvar mod interact ) (med2 <- indvar mod interact )
(depvar <- med1 med2), cov(e.depvar*e.med1 e.depvar*med2 e.med1*e.med2)
The Hausman endogeneity test is:
test (_b[cov(e.y,e.med1):_cons]=0) ( _b[cov(e.y,e.med2):_cons] = 0)
However, you will still have a problem because you do not have a unique 
instrument for each mediator. To identify the causal effect you need to 
have one unique instrument for each endogenous regressor. To see the 
problems, run the following code (we know that from the data generation, 
the effect of each mediator on y should be 1; note, q is an omitted 
common cause of the mediators and y):
clear
set seed 123
set obs 10000
gen iv = rnormal()
gen mod = rnormal()
gen q = rnormal()
gen inter = iv*mod
gen med1 = iv + mod + inter + q + rnormal()
gen med2 = iv + mod + inter + q + rnormal()
gen y = med1 + med2 + q + rnormal()
*your way
sem (y <- med1 med2 iv mod inter) (med1 med2 <- iv mod inter),
*the correct way (but which is not causally identified)
sem (y <- med1 med2) (med1 med2 <- iv mod inter), cov(e.y*e.med1 
e.y*e.med2 e.med1*e.med2)
test (_b[cov(e.y,e.med1):_cons]=0) ( _b[cov(e.y,e.med2):_cons] = 0)
So, I would stand back and think about what it is you are trying to do. 
You should have an extra instrument for either med1 or med2:
clear
set seed 123
set obs 10000
gen iv = rnormal()
gen iv2 = rnormal()
gen mod = rnormal()
gen q = rnormal()
gen inter = iv*mod
gen med1 = iv + mod + inter + q + iv2+ rnormal()
gen med2 = iv + mod + inter + q + rnormal()
gen y = med1 + med2 + q + rnormal()
*your way
sem (y <- med1 med2 iv mod inter iv2) (med1 med2 <- iv mod inter iv2),
*the correct way (which is causally identified this time)
sem (y <- med1 med2) (med1 med2 <- iv mod inter iv2), cov(e.y*e.med1 
e.y*e.med2 e.med1*e.med2)
test (_b[cov(e.y,e.med1):_cons]=0) ( _b[cov(e.y,e.med2):_cons] = 0)
To better understand these issues see the papers below--you might want 
to start with my video and then the book chapter.
Best,
J.
Ref:
Antonakis, J., Bendahan, S., Jacquart, P., & Lalive, R. (2010). On 
making causal claims: A review and recommendations. The Leadership 
Quarterly, 21(6), 1086-1120.
Baltagi, B. H. (2002). Econometrics. New York: Springer.
If you would like a more basic introduction, see: Antonakis, J., 
Bendahan, S., Jacquart, P., & Lalive, R. (2014). Causality and 
Endogeneity: Problems and solutions. In D. V. Day (Ed.), The Oxford 
Handbook of Leadership and Organizations (pp. 93-117). New York: Oxford 
University Press.
For a more basic introduction, see also
http://www.youtube.com/watch?v=dLuTjoYmfXs
__________________________________________
John Antonakis
Professor of Organizational Behavior
Director, Ph.D. Program in Management
Faculty of Business and Economics
University of Lausanne
Internef #618
CH-1015 Lausanne-Dorigny
Switzerland
Tel ++41 (0)21 692-3438
Fax ++41 (0)21 692-3305
http://www.hec.unil.ch/people/jantonakis
Associate Editor:
The Leadership Quarterly
Organizational Research Methods
__________________________________________
On 13.04.2014 04:29, Amy Hale wrote:
Hi Statalisters,
I'm running some moderated mediation models and need to obtain
standardized betas, but when I added - estat stdize: - to the - nlcom-
command line the z and p-values changed dramatically (e.g. before
adding - estat stdize: - p value was .015, after it was .881).  Any
ideas what might be happening?
The code I'm using is:
sem (med1 <- indvar mod interact) (med2 <- indvar mod interact)
(depvar <- med1 med2 indvar mod interact), standardized
summarize mod
global m = r(mean)
global s = r(sd)
estat stdize: nlcom (_b[med1:indvar]+($m-$s)*_b[med1:wx])*_b[depvar:med1]
estat stdize: nlcom (_b[med1:indvar]+($m)*_b[med1:wx])*_b[depvar:med1]
estat stdize: nlcom (_b[med1:indvar]+($m+$s)*_b[med1:wx])*_b[depvar:med1]
estat stdize: nlcom (_b[med2:indvar]+($m-$s)*_b[med2:wx])*_b[depvar:med2]
estat stdize: nlcom (_b[med2:indvar]+($m)*_b[med2:wx])*_b[depvar:med2]
estat stdize: nlcom (_b[med2:indvar]+($m+$s)*_b[med2:wx])*_b[depvar:med2]
estat stdize: nlcom
(_b[med1:indvar]+($m-$s)*_b[med1:wx])*_b[depvar:med1]+
(_b[med2:indvar]+($m-$s)*_b[med2:wx])*_b[depvar:med2]
estat stdize: nlcom (_b[med1:indvar]+($m)*_b[med1:wx])*_b[depvar:med1]
+ (_b[med2:indvar]+($m)*_b[med2:wx])*_b[depvar:med2]
estat stdize: nlcom
(_b[med1:indvar]+($m+$s)*_b[med1:wx])*_b[depvar:med1] +
(_b[med2:indvar]+($m+$s)*_b[med2:wx])*_b[depvar:med2]
key:
*med1 = mediator #1
*med2 = mediator #2
*mod = moderator
*interact = interaction term
*indvar = independent variable
*depvar = dependent variable
Should I be using a different command to get standardized betas with
-nlcom-, or am I missing something obvious?
Thanks,
Amy
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/