Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread hyena

Dear John,

   Thanks for the prompt reply! Sorry did not supply with more detailed 
information.


   The target model consists of three latent factors, general risk 
scale from Weber's domain risk scales, time perspective scale from 
Zimbardo(only future time oriented) and a travel risk attitude scale. 
Variables with prob_ prefix are items of general risk scale, variables 
of o1 to o12 are items of future time perspective and v5 to v13 
are items of travel risk scale.


 The purpose is to explore or find a best fit model that correctly 
represent the underlining relationship of three scales.  So far, the 
correlated model has the best fit indices, so I 'd like to check if 
there is a higher level factor that govern all three factors, thus the 
second model.


 The data are all 5 point Likert scale scores by respondents(N=397). 
The example listed bellow did not show prob_ variables(their names are 
too long).


  Given the following model structure, if they are indeed 
observationally indistinguishable, is there some possible adjustments to 
test the higher level factor effects?


 Thanks,

###
#data example, partial
#
1   1 11
 id o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 v5 v13 v14 v16 v17
14602  2  2  4  4  5  5  2  3  2   4   3   4   2  5   2   2   4   2
14601  2  4  5  4  5  5  2  5  3   4   5   4   5  5   3   4   4   2
14606  1  3  5  5  5  5  3  3  5   3   5   5   5  5   5   5   5   3
14610  2  1  4  5  4  5  3  4  4   2   4   2   1  5   3   5   5   5
14609  4  3  2  2  5  5  2  5  2   4   4   2   2  4   2   4   4   4


#correlated model, three scales corrlated to each other
model.correlated - specify.model()
weber-tp,e.webertp,NA
tp-tr,e.tptr,NA
tr-weber,e.trweber,NA
weber-weber,NA,1
tp-tp,e.tp,NA
tr -tr,e.trv,NA
weber - prob_wild_camp,alpha2,NA
weber - prob_book_hotel_in_short_time,alpha3,NA
weber - prob_safari_Kenia, alpha4, NA
weber - prob_sail_wild_water,alpha5,NA
weber - prob_dangerous_sport,alpha7,NA
weber - prob_bungee_jumping,alpha8,NA
weber - prob_tornado_tracking,alpha9,NA
weber - prob_ski,alpha10,NA
prob_wild_camp - prob_wild_camp, ep2,NA
prob_book_hotel_in_short_time - prob_book_hotel_in_short_time,ep3,NA
prob_safari_Kenia - prob_safari_Kenia, ep4, NA
prob_sail_wild_water - prob_sail_wild_water,ep5,NA
prob_dangerous_sport - prob_dangerous_sport,ep7,NA
prob_bungee_jumping - prob_bungee_jumping,ep8,NA
prob_tornado_tracking - prob_tornado_tracking,ep9,NA
prob_ski - prob_ski,ep10,NA
tp - o1,NA,1
tp - o3,beta3,NA
tp - o4,beta4,NA
tp - o5,beta5,NA
tp - o6,beta6,NA
tp - o7,beta7,NA
tp - o9,beta9,NA
tp - o10,beta10,NA
tp - o11,beta11,NA
tp - o12,beta12,NA
o1 - o1,eo1,NA
o3 - o3,eo3,NA
o4 - o4,eo4,NA
o5 - o5,eo5,NA
o6 - o6,eo6,NA
o7 - o7,eo7,NA
o9 - o9,eo9,NA
o10 - o10,eo10,NA
o11 - o11,eo11,NA
o12 - o12,eo12,NA
tr - v5, NA,1
tr - v13, gamma2,NA
tr - v14, gamma3,NA
tr - v16,gamma4,NA
tr - v17,gamma5,NA
v5 - v5,ev1,NA
v13 - v13,ev2,NA
v14 - v14,ev3,NA
v16 - v16, ev4, NA
v17 - v17,ev5,NA


sem.correlated - sem(model.correlated, cov(riskninfo_s), 397)
summary(sem.correlated)
samelist = c('weber','tp','tr')
minlist=c(names(rk),names(tp))
maxlist = NULL
path.diagram(sem2,out.file = 
e:/sem2.dot,same.rank=samelist,min.rank=minlist,max.rank = 
maxlist,edge.labels=values,rank.direction='LR')


#
#high level latent scale, a high level factor exist
##
model.rsk - specify.model()
rsk-tp,e.rsktp,NA
rsk-tr,e.rsktr,NA
rsk-weber,e.rskweber,NA
rsk-rsk, NA,1
weber-weber, e.weber,NA
tp-tp,e.tp,NA
tr -tr,e.trv,NA
weber - prob_wild_camp,NA,1
weber - prob_book_hotel_in_short_time,alpha3,NA
weber - prob_safari_Kenia, alpha4, NA
weber - prob_sail_wild_water,alpha5,NA
weber - prob_dangerous_sport,alpha7,NA
weber - prob_bungee_jumping,alpha8,NA
weber - prob_tornado_tracking,alpha9,NA
weber - prob_ski,alpha10,NA
prob_wild_camp - prob_wild_camp, ep2,NA
prob_book_hotel_in_short_time - prob_book_hotel_in_short_time,ep3,NA
prob_safari_Kenia - prob_safari_Kenia, ep4, NA
prob_sail_wild_water - prob_sail_wild_water,ep5,NA
prob_dangerous_sport - prob_dangerous_sport,ep7,NA
prob_bungee_jumping - prob_bungee_jumping,ep8,NA
prob_tornado_tracking - prob_tornado_tracking,ep9,NA
prob_ski - 

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread John Fox
Dear hyena,

 -Original Message-
 From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]
On
 Behalf Of hyena
 Sent: March-15-09 4:25 AM
 To: r-h...@stat.math.ethz.ch
 Subject: Re: [R] SEM model testing with identical goodness of fits (2)
 
 Dear John,
 
 Thanks for the prompt reply! Sorry did not supply with more detailed
 information.
 
 The target model consists of three latent factors, general risk
 scale from Weber's domain risk scales, time perspective scale from
 Zimbardo(only future time oriented) and a travel risk attitude scale.
 Variables with prob_ prefix are items of general risk scale, variables
 of o1 to o12 are items of future time perspective and v5 to v13
 are items of travel risk scale.
 
   The purpose is to explore or find a best fit model that correctly
 represent the underlining relationship of three scales.  So far, the
 correlated model has the best fit indices, so I 'd like to check if
 there is a higher level factor that govern all three factors, thus the
 second model.

Both models are very odd. In the first, each of tr, weber, and tp has direct
effects on different subsets of the endogenous variables. The implicit claim
of these models is that, e.g., prob_* are conditionally independent of tr
and tp given weber, and that the correlations among prob_* are entirely
accounted for by their dependence on weber. The structural coefficients are
just the simple regressions of each prob_* on weber. The second model is the
same except that the variances and covariances among weber, tr, and tp are
parametrized differently. I'm not sure why you set the models up in this
manner, and why your research requires a structural-equation model. I would
have expected that each of the prob_*, v*, and o* variables would have
comprised indicators of a latent variable (risk-taking, etc.). The models
that you specified seem so strange that I think that you'd do well to try to
find competent local help to sort out what you're doing in relationship to
the goals of the research. Of course, maybe I'm just having a failure of
imagination.

 
   The data are all 5 point Likert scale scores by respondents(N=397).

It's problematic to treat ordinal variables if they were metric (and to fit
SEMs of this complexity to a small sample).

 The example listed bellow did not show prob_ variables(their names are
 too long).
 
Given the following model structure, if they are indeed
 observationally indistinguishable, is there some possible adjustments to
 test the higher level factor effects?

No. Because the models necessarily fit the same, you'd have to decide
between them on grounds of plausibility. Moreover both models fit very
badly.

Regards,
 John

 
   Thanks,
 
 ###
 #data example, partial
 #
  1   1 11
   id o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 v5 v13 v14 v16 v17
 14602  2  2  4  4  5  5  2  3  2   4   3   4   2  5   2   2   4   2
 14601  2  4  5  4  5  5  2  5  3   4   5   4   5  5   3   4   4   2
 14606  1  3  5  5  5  5  3  3  5   3   5   5   5  5   5   5   5   3
 14610  2  1  4  5  4  5  3  4  4   2   4   2   1  5   3   5   5   5
 14609  4  3  2  2  5  5  2  5  2   4   4   2   2  4   2   4   4   4
 
 
 #correlated model, three scales corrlated to each other
 model.correlated - specify.model()
   weber-tp,e.webertp,NA
   tp-tr,e.tptr,NA
   tr-weber,e.trweber,NA
   weber-weber,NA,1
   tp-tp,e.tp,NA
   tr -tr,e.trv,NA
   weber - prob_wild_camp,alpha2,NA
   weber - prob_book_hotel_in_short_time,alpha3,NA
   weber - prob_safari_Kenia, alpha4, NA
   weber - prob_sail_wild_water,alpha5,NA
   weber - prob_dangerous_sport,alpha7,NA
   weber - prob_bungee_jumping,alpha8,NA
   weber - prob_tornado_tracking,alpha9,NA
   weber - prob_ski,alpha10,NA
   prob_wild_camp - prob_wild_camp, ep2,NA
   prob_book_hotel_in_short_time -
prob_book_hotel_in_short_time,ep3,NA
   prob_safari_Kenia - prob_safari_Kenia, ep4, NA
   prob_sail_wild_water - prob_sail_wild_water,ep5,NA
   prob_dangerous_sport - prob_dangerous_sport,ep7,NA
   prob_bungee_jumping - prob_bungee_jumping,ep8,NA
   prob_tornado_tracking - prob_tornado_tracking,ep9,NA
   prob_ski - prob_ski,ep10,NA
   tp - o1,NA,1
   tp - o3,beta3,NA
   tp - o4,beta4,NA
   tp - o5,beta5,NA
   tp - o6,beta6,NA
   tp - o7,beta7,NA
   tp - o9,beta9,NA
   tp - o10,beta10,NA
   tp - o11,beta11,NA
   tp - o12,beta12,NA
   o1 - o1,eo1,NA
   o3 - o3,eo3,NA
   o4 - o4,eo4,NA
   o5 - o5,eo5,NA
   o6 - o6,eo6,NA
   o7 - o7,eo7,NA
   o9 - o9,eo9,NA
   o10 - o10,eo10,NA
   o11 - o11,eo11,NA
   o12 - o12,eo12,NA
   tr - v5, NA,1
   tr - v13, gamma2,NA
   tr - v14, gamma3,NA
   tr - v16,gamma4,NA
   tr - v17,gamma5,NA

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread hyena

Dear John,

  Thanks for the reply.

Maybe I had used  wrong terminology, as you pointed out, in fact, 
variables prob*, o* and v* are indicators of three latent 
variables(scales): weber, tp, and  tr respectively. So variables 
prob*, o* and v* are exogenous variables. e.g., variable 
prob_dangerous_sport is the answers of question how likely do you 
think you will engage  a dangerous sport? (1-very unlikely to 5- very 
likely). Variables weber, tr, tp are latent variables representing risk 
attitudes in different domains(recreation, planned behaviour, travel 
choice ).   Hope this make sense of the models.


By exploratory analysis, it had shown consistencies(Cronbach alpha) in 
each scale(latent variable tr, tp, weber), and significant correlations 
among  these three scales. The two models mentioned in previous posts 
are the efforts to find out if there is a more general factor that can 
account for the correlations and make the three scales its sub scales. 
In this sense, SEM is used more of a CFA (sem is the only packages I 
know to do so, i did not search very hard of course).


 And Indeed the model fit is quite bad.

regards,







John Fox wrote:

Dear hyena,


-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]

On

Behalf Of hyena
Sent: March-15-09 4:25 AM
To: r-h...@stat.math.ethz.ch
Subject: Re: [R] SEM model testing with identical goodness of fits (2)

Dear John,

Thanks for the prompt reply! Sorry did not supply with more detailed
information.

The target model consists of three latent factors, general risk
scale from Weber's domain risk scales, time perspective scale from
Zimbardo(only future time oriented) and a travel risk attitude scale.
Variables with prob_ prefix are items of general risk scale, variables
of o1 to o12 are items of future time perspective and v5 to v13
are items of travel risk scale.

  The purpose is to explore or find a best fit model that correctly
represent the underlining relationship of three scales.  So far, the
correlated model has the best fit indices, so I 'd like to check if
there is a higher level factor that govern all three factors, thus the
second model.


Both models are very odd. In the first, each of tr, weber, and tp has direct
effects on different subsets of the endogenous variables. The implicit claim
of these models is that, e.g., prob_* are conditionally independent of tr
and tp given weber, and that the correlations among prob_* are entirely
accounted for by their dependence on weber. The structural coefficients are
just the simple regressions of each prob_* on weber. The second model is the
same except that the variances and covariances among weber, tr, and tp are
parametrized differently. I'm not sure why you set the models up in this
manner, and why your research requires a structural-equation model. I would
have expected that each of the prob_*, v*, and o* variables would have
comprised indicators of a latent variable (risk-taking, etc.). The models
that you specified seem so strange that I think that you'd do well to try to
find competent local help to sort out what you're doing in relationship to
the goals of the research. Of course, maybe I'm just having a failure of
imagination.


  The data are all 5 point Likert scale scores by respondents(N=397).


It's problematic to treat ordinal variables if they were metric (and to fit
SEMs of this complexity to a small sample).


The example listed bellow did not show prob_ variables(their names are
too long).

   Given the following model structure, if they are indeed
observationally indistinguishable, is there some possible adjustments to
test the higher level factor effects?


No. Because the models necessarily fit the same, you'd have to decide
between them on grounds of plausibility. Moreover both models fit very
badly.

Regards,
 John


  Thanks,

###
#data example, partial
#
 1   1 11
  id o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 v5 v13 v14 v16 v17
14602  2  2  4  4  5  5  2  3  2   4   3   4   2  5   2   2   4   2
14601  2  4  5  4  5  5  2  5  3   4   5   4   5  5   3   4   4   2
14606  1  3  5  5  5  5  3  3  5   3   5   5   5  5   5   5   5   3
14610  2  1  4  5  4  5  3  4  4   2   4   2   1  5   3   5   5   5
14609  4  3  2  2  5  5  2  5  2   4   4   2   2  4   2   4   4   4


#correlated model, three scales corrlated to each other
model.correlated - specify.model()
weber-tp,e.webertp,NA
tp-tr,e.tptr,NA
tr-weber,e.trweber,NA
weber-weber,NA,1
tp-tp,e.tp,NA
tr -tr,e.trv,NA
weber - prob_wild_camp,alpha2,NA
weber - prob_book_hotel_in_short_time,alpha3,NA
weber - prob_safari_Kenia, alpha4, NA
weber - prob_sail_wild_water,alpha5,NA
weber - prob_dangerous_sport,alpha7,NA
weber

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread William Revelle

Dear Hyena,

Your model  is of three correlated factors accounting for the 
observed variables.
Those three correlations may be accounted for equally well by 
correlations (loadings) of the lower order factors with a general 
factor.
Those two models are  indeed equivalent models and will, as a 
consequence have exactly equal fits and dfs.


Call the three correlations rab, rac, rbc.  Then a higher order 
factor model will have loadings of

fa, fb and fc, where fa*fb = rab, fa*bc = rac, and fb*fc = rbc.
You can solve for fa, fb and fc in terms of  factor inter-correlations.

You can not compare the one to the other, for they are equivalent models.

You can examine how much of the underlying variance of the original 
items is due to the general factor by considering a bi-factor 
solution where the general factor loads on each of the observed 
variables and a set of residual group factors account for the 
covariances within your three domains.  This can be done in an 
Exploratory Factor Analysis (EFA) context using the omega function in 
the psych package. It is possible to then take that model and test it 
using John Fox's sem package to evaluate the size of each of the 
general and group factor loadings.   (A discussion of how to do that 
is at http://www.personality-project.org/r/book/psych_for_sem.pdf ).


Bill


At 4:25 PM +0800 3/15/09, hyena wrote:

Dear John,

   Thanks for the prompt reply! Sorry did not supply with more 
detailed information.


   The target model consists of three latent factors, general risk 
scale from Weber's domain risk scales, time perspective scale from 
Zimbardo(only future time oriented) and a travel risk attitude 
scale. Variables with prob_ prefix are items of general risk 
scale, variables of o1 to o12 are items of future time 
perspective and v5 to v13 are items of travel risk scale.


 The purpose is to explore or find a best fit model that correctly 
represent the underlining relationship of three scales.  So far, the 
correlated model has the best fit indices, so I 'd like to check if 
there is a higher level factor that govern all three factors, thus 
the second model.


 The data are all 5 point Likert scale scores by respondents(N=397). 
The example listed bellow did not show prob_ variables(their names 
are too long).


  Given the following model structure, if they are indeed 
observationally indistinguishable, is there some possible 
adjustments to test the higher level factor effects?


 Thanks,

###
#data example, partial
#
1   1 11
 id o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 v5 v13 v14 v16 v17
14602  2  2  4  4  5  5  2  3  2   4   3   4   2  5   2   2   4   2
14601  2  4  5  4  5  5  2  5  3   4   5   4   5  5   3   4   4   2
14606  1  3  5  5  5  5  3  3  5   3   5   5   5  5   5   5   5   3
14610  2  1  4  5  4  5  3  4  4   2   4   2   1  5   3   5   5   5
14609  4  3  2  2  5  5  2  5  2   4   4   2   2  4   2   4   4   4


#correlated model, three scales corrlated to each other
model.correlated - specify.model()
weber-tp,e.webertp,NA
tp-tr,e.tptr,NA
tr-weber,e.trweber,NA
weber-weber,NA,1
tp-tp,e.tp,NA
tr -tr,e.trv,NA
weber - prob_wild_camp,alpha2,NA
weber - prob_book_hotel_in_short_time,alpha3,NA
weber - prob_safari_Kenia, alpha4, NA
weber - prob_sail_wild_water,alpha5,NA
weber - prob_dangerous_sport,alpha7,NA
weber - prob_bungee_jumping,alpha8,NA
weber - prob_tornado_tracking,alpha9,NA
weber - prob_ski,alpha10,NA
prob_wild_camp - prob_wild_camp, ep2,NA
prob_book_hotel_in_short_time - prob_book_hotel_in_short_time,ep3,NA
prob_safari_Kenia - prob_safari_Kenia, ep4, NA
prob_sail_wild_water - prob_sail_wild_water,ep5,NA
prob_dangerous_sport - prob_dangerous_sport,ep7,NA
prob_bungee_jumping - prob_bungee_jumping,ep8,NA
prob_tornado_tracking - prob_tornado_tracking,ep9,NA
prob_ski - prob_ski,ep10,NA
tp - o1,NA,1
tp - o3,beta3,NA
tp - o4,beta4,NA
tp - o5,beta5,NA
tp - o6,beta6,NA
tp - o7,beta7,NA
tp - o9,beta9,NA
tp - o10,beta10,NA
tp - o11,beta11,NA
tp - o12,beta12,NA
o1 - o1,eo1,NA
o3 - o3,eo3,NA
o4 - o4,eo4,NA
o5 - o5,eo5,NA
o6 - o6,eo6,NA
o7 - o7,eo7,NA
o9 - o9,eo9,NA
o10 - o10,eo10,NA
o11 - o11,eo11,NA
o12 - o12,eo12,NA
tr - v5, NA,1
tr - v13, gamma2,NA
tr - v14, gamma3,NA
tr - v16,gamma4,NA
tr - v17,gamma5,NA
v5 - v5,ev1,NA
v13 - v13,ev2,NA
v14 - v14,ev3,NA
v16 - v16, ev4, NA
v17 - v17,ev5,NA


sem.correlated - sem(model.correlated, cov(riskninfo_s), 397)
summary(sem.correlated)
samelist = 

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread John Fox
Dear Hyena,

OK -- I see that what you're trying to do is simply to fit a confirmatory
factor-analysis model. 

The two models that you're considering aren't really different -- they are,
as I said, observationally equivalent, and fit the data poorly. You can
*assume* a common higher-level factor and estimate the three loadings on it
for the lower-level factors, but you can't test this model against the first
model. 

I'm not sure what you gain from the CFA beyond what you learned from an
exploratory factor analysis. Using the same data first in an EFA and then
for a CFA essentially invalidates the CFA, which is no longer confirmatory.
One would, then, expect a CFA following an EFA to fit the data well, since
the CFA was presumably specified to do so, but I suspect that a closer
examination of the EFA will show that the items don't divide so neatly into
the three sets.

Regards,
 John

 -Original Message-
 From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]
On
 Behalf Of hyena
 Sent: March-15-09 12:00 PM
 To: r-h...@stat.math.ethz.ch
 Subject: Re: [R] SEM model testing with identical goodness of fits (2)
 
 Dear John,
 
Thanks for the reply.
 
 Maybe I had used  wrong terminology, as you pointed out, in fact,
 variables prob*, o* and v* are indicators of three latent
 variables(scales): weber, tp, and  tr respectively. So variables
 prob*, o* and v* are exogenous variables. e.g., variable
 prob_dangerous_sport is the answers of question how likely do you
 think you will engage  a dangerous sport? (1-very unlikely to 5- very
 likely). Variables weber, tr, tp are latent variables representing risk
 attitudes in different domains(recreation, planned behaviour, travel
 choice ).   Hope this make sense of the models.
 
 By exploratory analysis, it had shown consistencies(Cronbach alpha) in
 each scale(latent variable tr, tp, weber), and significant correlations
 among  these three scales. The two models mentioned in previous posts
 are the efforts to find out if there is a more general factor that can
 account for the correlations and make the three scales its sub scales.
 In this sense, SEM is used more of a CFA (sem is the only packages I
 know to do so, i did not search very hard of course).
 
   And Indeed the model fit is quite bad.
 
 regards,
 
 
 
 
 
 
 
 John Fox wrote:
  Dear hyena,
 
  -Original Message-
  From: r-help-boun...@r-project.org
[mailto:r-help-boun...@r-project.org]
  On
  Behalf Of hyena
  Sent: March-15-09 4:25 AM
  To: r-h...@stat.math.ethz.ch
  Subject: Re: [R] SEM model testing with identical goodness of fits (2)
 
  Dear John,
 
  Thanks for the prompt reply! Sorry did not supply with more
detailed
  information.
 
  The target model consists of three latent factors, general risk
  scale from Weber's domain risk scales, time perspective scale from
  Zimbardo(only future time oriented) and a travel risk attitude scale.
  Variables with prob_ prefix are items of general risk scale,
variables
  of o1 to o12 are items of future time perspective and v5 to v13
  are items of travel risk scale.
 
The purpose is to explore or find a best fit model that correctly
  represent the underlining relationship of three scales.  So far, the
  correlated model has the best fit indices, so I 'd like to check if
  there is a higher level factor that govern all three factors, thus the
  second model.
 
  Both models are very odd. In the first, each of tr, weber, and tp has
 direct
  effects on different subsets of the endogenous variables. The implicit
 claim
  of these models is that, e.g., prob_* are conditionally independent of
tr
  and tp given weber, and that the correlations among prob_* are entirely
  accounted for by their dependence on weber. The structural coefficients
are
  just the simple regressions of each prob_* on weber. The second model is
 the
  same except that the variances and covariances among weber, tr, and tp
are
  parametrized differently. I'm not sure why you set the models up in this
  manner, and why your research requires a structural-equation model. I
would
  have expected that each of the prob_*, v*, and o* variables would have
  comprised indicators of a latent variable (risk-taking, etc.). The
models
  that you specified seem so strange that I think that you'd do well to
try
 to
  find competent local help to sort out what you're doing in relationship
to
  the goals of the research. Of course, maybe I'm just having a failure of
  imagination.
 
The data are all 5 point Likert scale scores by respondents(N=397).
 
  It's problematic to treat ordinal variables if they were metric (and to
fit
  SEMs of this complexity to a small sample).
 
  The example listed bellow did not show prob_ variables(their names
are
  too long).
 
 Given the following model structure, if they are indeed
  observationally indistinguishable, is there some possible adjustments
to
  test the higher level factor effects?
 
  No. Because

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread hyena
Thanks for the clear clarification. The suggested bi-factor solution 
sounds attractive. I am going to check it in details.


regards,


William Revelle wrote:

Dear Hyena,

Your model  is of three correlated factors accounting for the observed 
variables.
Those three correlations may be accounted for equally well by 
correlations (loadings) of the lower order factors with a general factor.
Those two models are  indeed equivalent models and will, as a 
consequence have exactly equal fits and dfs.


Call the three correlations rab, rac, rbc.  Then a higher order factor 
model will have loadings of

fa, fb and fc, where fa*fb = rab, fa*bc = rac, and fb*fc = rbc.
You can solve for fa, fb and fc in terms of  factor inter-correlations.

You can not compare the one to the other, for they are equivalent models.

You can examine how much of the underlying variance of the original 
items is due to the general factor by considering a bi-factor solution 
where the general factor loads on each of the observed variables and a 
set of residual group factors account for the covariances within your 
three domains.  This can be done in an Exploratory Factor Analysis (EFA) 
context using the omega function in the psych package. It is possible to 
then take that model and test it using John Fox's sem package to 
evaluate the size of each of the general and group factor loadings.   (A 
discussion of how to do that is at 
http://www.personality-project.org/r/book/psych_for_sem.pdf ).


Bill


At 4:25 PM +0800 3/15/09, hyena wrote:

Dear John,

   Thanks for the prompt reply! Sorry did not supply with more 
detailed information.


   The target model consists of three latent factors, general risk 
scale from Weber's domain risk scales, time perspective scale from 
Zimbardo(only future time oriented) and a travel risk attitude scale. 
Variables with prob_ prefix are items of general risk scale, 
variables of o1 to o12 are items of future time perspective and 
v5 to v13 are items of travel risk scale.


 The purpose is to explore or find a best fit model that correctly 
represent the underlining relationship of three scales.  So far, the 
correlated model has the best fit indices, so I 'd like to check if 
there is a higher level factor that govern all three factors, thus the 
second model.


 The data are all 5 point Likert scale scores by respondents(N=397). 
The example listed bellow did not show prob_ variables(their names 
are too long).


  Given the following model structure, if they are indeed 
observationally indistinguishable, is there some possible adjustments 
to test the higher level factor effects?


 Thanks,

###
#data example, partial
#
1   1 11
 id o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 v5 v13 v14 v16 v17
14602  2  2  4  4  5  5  2  3  2   4   3   4   2  5   2   2   4   2
14601  2  4  5  4  5  5  2  5  3   4   5   4   5  5   3   4   4   2
14606  1  3  5  5  5  5  3  3  5   3   5   5   5  5   5   5   5   3
14610  2  1  4  5  4  5  3  4  4   2   4   2   1  5   3   5   5   5
14609  4  3  2  2  5  5  2  5  2   4   4   2   2  4   2   4   4   4


#correlated model, three scales corrlated to each other
model.correlated - specify.model()
weber-tp,e.webertp,NA
tp-tr,e.tptr,NA
tr-weber,e.trweber,NA
weber-weber,NA,1
tp-tp,e.tp,NA
tr -tr,e.trv,NA
weber - prob_wild_camp,alpha2,NA
weber - prob_book_hotel_in_short_time,alpha3,NA
weber - prob_safari_Kenia, alpha4, NA
weber - prob_sail_wild_water,alpha5,NA
weber - prob_dangerous_sport,alpha7,NA
weber - prob_bungee_jumping,alpha8,NA
weber - prob_tornado_tracking,alpha9,NA
weber - prob_ski,alpha10,NA
prob_wild_camp - prob_wild_camp, ep2,NA
prob_book_hotel_in_short_time - 
prob_book_hotel_in_short_time,ep3,NA

prob_safari_Kenia - prob_safari_Kenia, ep4, NA
prob_sail_wild_water - prob_sail_wild_water,ep5,NA
prob_dangerous_sport - prob_dangerous_sport,ep7,NA
prob_bungee_jumping - prob_bungee_jumping,ep8,NA
prob_tornado_tracking - prob_tornado_tracking,ep9,NA
prob_ski - prob_ski,ep10,NA
tp - o1,NA,1
tp - o3,beta3,NA
tp - o4,beta4,NA
tp - o5,beta5,NA
tp - o6,beta6,NA
tp - o7,beta7,NA
tp - o9,beta9,NA
tp - o10,beta10,NA
tp - o11,beta11,NA
tp - o12,beta12,NA
o1 - o1,eo1,NA
o3 - o3,eo3,NA
o4 - o4,eo4,NA
o5 - o5,eo5,NA
o6 - o6,eo6,NA
o7 - o7,eo7,NA
o9 - o9,eo9,NA
o10 - o10,eo10,NA
o11 - o11,eo11,NA
o12 - o12,eo12,NA
tr - v5, NA,1
tr - v13, gamma2,NA
tr - v14, gamma3,NA
tr - v16,gamma4,NA
tr - v17,gamma5,NA
v5 - v5,ev1,NA
v13 - v13,ev2,NA
v14 - v14,ev3,NA
v16 - v16, ev4, NA
v17 - v17,ev5,NA


sem.correlated - sem(model.correlated, cov(riskninfo_s), 397)
summary(sem.correlated)
samelist = c('weber','tp','tr')

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-15 Thread hyena



The purpose of carrying this CFA is to test the validity of a new 
developed scale tr with v* items, other two scales weber and tp 
are existing scales that measures specific risk attitudes. I am not sure 
if a simple correlation analysis is adequate to this purpose or not, 
thus the CFA test.


Further, although a PCA has tested the dimensionality of all items, they 
are not divided as PCA result suggested, rather, their original grouping 
remains. The indicators are indeed not very well divided in PCA, mainly, 
o* items are located in two components.


Originally, the EFA has been carried out on the first half of the sample 
and CFA on the second half. Due to the low fit indices from CFA of the 
partial sample, the full sample is tested in CFA to see  if sample size 
affects much, and the results is as poor as before.


It seems the time to read more about scale developing. And thanks for 
all these inputs.


regards,

John Fox wrote:

Dear Hyena,

OK -- I see that what you're trying to do is simply to fit a confirmatory
factor-analysis model. 


The two models that you're considering aren't really different -- they are,
as I said, observationally equivalent, and fit the data poorly. You can
*assume* a common higher-level factor and estimate the three loadings on it
for the lower-level factors, but you can't test this model against the first
model. 


I'm not sure what you gain from the CFA beyond what you learned from an
exploratory factor analysis. Using the same data first in an EFA and then
for a CFA essentially invalidates the CFA, which is no longer confirmatory.
One would, then, expect a CFA following an EFA to fit the data well, since
the CFA was presumably specified to do so, but I suspect that a closer
examination of the EFA will show that the items don't divide so neatly into
the three sets.

Regards,
 John


-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]

On

Behalf Of hyena
Sent: March-15-09 12:00 PM
To: r-h...@stat.math.ethz.ch
Subject: Re: [R] SEM model testing with identical goodness of fits (2)

Dear John,

   Thanks for the reply.

Maybe I had used  wrong terminology, as you pointed out, in fact,
variables prob*, o* and v* are indicators of three latent
variables(scales): weber, tp, and  tr respectively. So variables
prob*, o* and v* are exogenous variables. e.g., variable
prob_dangerous_sport is the answers of question how likely do you
think you will engage  a dangerous sport? (1-very unlikely to 5- very
likely). Variables weber, tr, tp are latent variables representing risk
attitudes in different domains(recreation, planned behaviour, travel
choice ).   Hope this make sense of the models.

By exploratory analysis, it had shown consistencies(Cronbach alpha) in
each scale(latent variable tr, tp, weber), and significant correlations
among  these three scales. The two models mentioned in previous posts
are the efforts to find out if there is a more general factor that can
account for the correlations and make the three scales its sub scales.
In this sense, SEM is used more of a CFA (sem is the only packages I
know to do so, i did not search very hard of course).

  And Indeed the model fit is quite bad.

regards,







John Fox wrote:

Dear hyena,


-Original Message-
From: r-help-boun...@r-project.org

[mailto:r-help-boun...@r-project.org]

On

Behalf Of hyena
Sent: March-15-09 4:25 AM
To: r-h...@stat.math.ethz.ch
Subject: Re: [R] SEM model testing with identical goodness of fits (2)

Dear John,

Thanks for the prompt reply! Sorry did not supply with more

detailed

information.

The target model consists of three latent factors, general risk
scale from Weber's domain risk scales, time perspective scale from
Zimbardo(only future time oriented) and a travel risk attitude scale.
Variables with prob_ prefix are items of general risk scale,

variables

of o1 to o12 are items of future time perspective and v5 to v13
are items of travel risk scale.

  The purpose is to explore or find a best fit model that correctly
represent the underlining relationship of three scales.  So far, the
correlated model has the best fit indices, so I 'd like to check if
there is a higher level factor that govern all three factors, thus the
second model.

Both models are very odd. In the first, each of tr, weber, and tp has

direct

effects on different subsets of the endogenous variables. The implicit

claim

of these models is that, e.g., prob_* are conditionally independent of

tr

and tp given weber, and that the correlations among prob_* are entirely
accounted for by their dependence on weber. The structural coefficients

are

just the simple regressions of each prob_* on weber. The second model is

the

same except that the variances and covariances among weber, tr, and tp

are

parametrized differently. I'm not sure why you set the models up in this
manner, and why your research requires a structural-equation model. I

would

have

Re: [R] SEM model testing with identical goodness of fits (2)

2009-03-14 Thread John Fox
Dear hyena,

Actually, looking at this a bit more closely, the first models dedicate 6
parameters to the correlational and variational structure of the three
variables that you mention -- 3 variances and 3 covariances; the second
model also dedicates 6 parameters -- 3 factor loadings and 3 error variances
(with the variance of the factor fixed as a normalization). You don't show
the remaining structure of the models, but a good guess is that they are
observationally indistinguishable.

John

 -Original Message-
 From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]
On
 Behalf Of hyena
 Sent: March-14-09 5:07 PM
 To: r-h...@stat.math.ethz.ch
 Subject: [R] SEM model testing with identical goodness of fits
 
 HI,
 
I am testing several models about three latent constructs that
 measure risk attitudes.
 Two models with different structure obtained identical of fit measures
 from chisqure to BIC.
 Model1 assumes three factors are correlated with  each other and model
 two assumes a higher order factor exist and three factors related to
 this higher factor instead of to each other.
 
 Model1:
 model.one - specify.model()
   tr-tp,e.trtp,NA
   tp-weber,e.tpweber,NA
   weber-tr,e.webertr,NA
   weber-weber, e.weber,NA
   tp-tp,e.tp,NA
   tr -tr,e.trv,NA
   
 
 Model two
 model.two - specify.model()
   rsk-tp,e.rsktp,NA
   rsk-tr,e.rsktr,NA
   rsk-weber,e.rskweber,NA
   rsk-rsk, NA,1
   weber-weber, e.weber,NA
   tp-tp,e.tp,NA
   tr -tr,e.trv,NA

 
 the summary of both sem model gives identical fit indices, using same
 data set.
 
 is there some thing wrong with this mode specification?
 
 Thanks
 
 __
 R-help@r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.