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]
st: reproducing published CFA results using -ssd- / -sem-
From
Stas Kolenikov <[email protected]>
To
[email protected]
Subject
st: reproducing published CFA results using -ssd- / -sem-
Date
Tue, 12 Mar 2013 09:38:04 -0500
I am working to reproduce some published multiple traits - multiple
methods results, and Stata does not want to cooperate. The code below
produces "initial values not feasible" error, even though I think I
have paranoidally set most of the initial values explicitly, and
constrained covariances between the "traits" and the "methods" to be
zero. How can I get a better idea of how Stata sets initial values?
(Do not comment on the lousy precision of two-digit correlations and
model complexity; this is not my data, my model or my paper.)
The code is long, but it runs.
clear
* Reproducing CFA of Lorenz Melby Conger and Xu.sas;
* Journal of Family Psychology;
* The effects of context on the correspondence between observational
ratings and questionnaire reports
* of hostile behavior: A multitrait, Multimethod Approach;
#delimit ;
ssd init hostility_or angrycoercionor antisocialbehavior_or
criticize_selfnow angry_selfnow argue_selfnow shout_selfnow
criticize_selfpast angry_selfpast argue_selfpast shout_selfpast
criticize_partnernow angry_partnernow argue_partnernow shout_partnernow
criticize_partnerpast angry_partnerpast argue_partnerpast shout_partnerpast;
ssd set obs 292;
ssd set means
4.13 2.14 5.33 2.27 1.70 1.87 1.21 1.26 1.61 1.86 1.18
2.41 1.76 2.11 1.30 1.42 1.64 1.95 1.22
;
ssd set sd
2.36 1.70 1.87 1.37 1.05 1.23 0.52 0.98 0.96 1.38 1.06
1.43 1.07 1.27 0.68 1.17 1.07 1.36 1.23
;
ssd set correlations
1 \
.73 1 \
.79 .58 1 \
.37 .28 .38 1 \
.39 .34 .42 .57 1 \
.39 .29 .42 .61 .78 1 \
.19 .24 .30 .39 .59 .58 1 \
.11 .02 .11 .35 .25 .35 .21 1 \
.26 .20 .21 .34 .31 .35 .21 .53 1 \
.30 .21 .23 .32 .30 .35 .12 .52 .65 1 \
.26 .19 .20 .35 .36 .34 .32 .60 .70 .64 1 \
.48 .31 .39 .37 .35 .37 .15 .16 .24 .20 .18 1 \
.44 .35 .38 .35 .49 .46 .25 .25 .29 .24 .30 .62 1 \
.50 .42 .47 .40 .51 .53 .30 .24 .32 .28 .32 .62
.74 1 \
.26 .28 .24 .25 .30 .26 .27 .16 .19 .18 .19 .26
.44 .44 1 \
.31 .21 .28 .34 .29 .34 .24 .33 .42 .34 .42 .46
.45 .44 .22 1 \
.34 .24 .25 .34 .31 .28 .20 .22 .44 .31 .46 .38
.43 .39 .19 .65 1 \
.28 .17 .24 .32 .27 .31 .17 .20 .45 .32 .43 .34
.38 .44 .23 .54 .63 1 \
.32 .17 .28 .33 .30 .29 .20 .26 .46 .33 .50 .44
.46 .42 .25 .68 .77 .64 1
;
ssd status;
foreach trait in OR_Factor SelfNow_Factor SelfPast_Factor
PartnerNow_Factor PartnerPast_Factor {;
foreach method in Criticize_Factor Angry_Factor Argue_Factor Shout_Factor {;
local constrcov `constrcov' `trait'*`method'@0;
};
};
foreach factor in OR_Factor SelfNow_Factor SelfPast_Factor
PartnerNow_Factor PartnerPast_Factor
Criticize_Factor Angry_Factor Argue_Factor Shout_Factor {;
local varopt `varopt' (`factor', init(1) );
};
sem
(OR_Factor -> (hostility_or, init(1))
(angrycoercionor , init(1))
(antisocialbehavior_or , init(1))
)
(SelfNow_Factor -> (criticize_selfnow , init(1) )
(angry_selfnow , init(1) )
(argue_selfnow , init(1) )
(shout_selfnow , init(1) )
)
(SelfPast_Factor -> (criticize_selfpast , init(1) )
(angry_selfpast , init(1) )
(argue_selfpast , init(1) )
(shout_selfpast , init(1) )
)
(PartnerNow_Factor -> (criticize_partnernow , init(1) )
(angry_partnernow , init(1) )
(argue_partnernow , init(1) )
(shout_partnernow , init(1) )
)
(PartnerPast_Factor -> (criticize_partnerpast , init(1) )
(angry_partnerpast , init(1) )
(argue_partnerpast , init(1) )
(shout_partnerpast , init(1) )
)
(Criticize_Factor -> (criticize_selfnow , init(1) )
(criticize_selfpast , init(1) )
(criticize_partnernow , init(1) )
(criticize_partnerpast , init(1) )
)
(Angry_Factor -> (angry_selfnow , init(1) )
(angry_selfpast , init(1) )
(angry_partnernow , init(1) )
(angry_partnerpast , init(1) )
)
(Argue_Factor -> (argue_selfnow , init(1) )
(argue_selfpast , init(1) )
(argue_partnernow , init(1) )
(argue_partnerpast , init(1) )
)
(Shout_Factor -> (shout_selfnow , init(1) )
(shout_selfpast , init(1) )
(shout_partnernow , init(1) )
(shout_partnerpast , init(1) )
)
, cov( `constrcov' ) var( `varopt' ) ;
exit;
-- Stas Kolenikov, PhD, PStat (SSC)
-- Senior Survey Statistician, Abt SRBI
-- Opinions stated in this email are mine only, and do not reflect the
position of my employer
-- http://stas.kolenikov.name
*
* 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/