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/