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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: CR and AVE for factor analysis with 2 factors |

Date |
Tue, 29 Oct 2013 09:28:29 +0000 |

What's e(df_m) in your case? Nick njcoxstata@gmail.com On 29 October 2013 09:07, Florian Christian Esser <florian.esser@tu-dortmund.de> wrote: > Here we go (I included the uniqueness and the loadings as well). > Communalities are on the bottom: > _____________________________________________________________ > > > . matrix list e(Psi) > > e(Psi)[1,6] > zwmdiff_1 zwpdiff_1 zwpdiff_2 zwcost_1 zwcost_2 zwcost_3 > Uniqueness .14721836 .16061008 .12541414 .01425274 .01366305 .02630422 > > . matrix list e(L) > > e(L)[6,3] > Factor1 Factor2 Factor3 > zwmdiff_1 .81629684 .233233 .36337787 > zwpdiff_1 .82275816 .39938175 -.05434294 > zwpdiff_2 .8671496 .34761446 .04244559 > zwcost_1 -.52875169 .83417333 .10160593 > zwcost_2 -.51348298 .84223386 .11538764 > zwcost_3 -.18959666 -.28021389 .9269461 > > . matrix psi = e(Psi)' > > . matrix communalities = J(rowsof(psi),1,1) > > . matrix communalities = communalities - psi > > . matrix colnames communalities = communalities > > . matrix list communalities > > communalities[6,1] > communalit~s > zwmdiff_1 .85278164 > zwpdiff_1 .83938992 > zwpdiff_2 .87458586 > zwcost_1 .98574726 > zwcost_2 .98633695 > zwcost_3 .97369578 > _____________________________________________________ > >> What is implied by your log is that >> >> replace sum_factors = sum_factors + sqrt(communalities[3,1]) >> >> has the effect of replacing -sum_factors- with missing. So, please >> show us that -communalities- matrix, >> namely the result of your line >> >> matrix list communalities >> >> (I see on closer examination that the -communalities- matrix is not >> the communalaties as first reported, but modified.) >> >> No idea, sorry, about your general factor analysis question. I'm >> firmly a PCA person. >> Nick >> njcoxstata@gmail.com >> >> >> On 29 October 2013 07:14, Florian Christian Esser >> <florian.esser@tu-dortmund.de> wrote: >>> Hi Nick, thanks a lot for your advice. >>> Unfortunately, all my communalities are positive. >>> Does anyone have any ideas, what else could cause the issue? >>> >>> Is the general approach correct, to calculate CR and AVE for both >>> factors >>> at the same time, or would I have to do it individually. I.e. I do the >>> factor analysis, identify, that the indicators load on two factors and >>> then calculate CR and AVE for each factor individually? >>> >>>> Your missing value is presumably the result of taking the square root >>>> of a negative number. Is at least one of your communalities reported >>>> as negative? >>>> >>>> That aside you have segments like >>>> >>>> gen nvar = e(df_m) >>>> gen sum_factors=0 >>>> local i=1 >>>> while `i' <= nvar { >>>> replace sum_factors = sum_factors + sqrt(communalities[`i',1]) >>>> local i=`i'+1 >>>> } >>>> >>>> You can simplify this. First, to hold constants, use locals or >>>> scalars, not variables. Second, use -forval- to loop here: >>>> >>>> local nvar = e(df_m) >>>> local sum_factors = 0 >>>> forval i = 1/`nvar' { >>>> local sum_factors = `sum_factors' + sqrt(communalities[`i',1] >>>> } >>>> >>>> Third, use Mata instead. Here is a self-contained example: >>>> >>>> . matrix foo = (1,2,3,4) >>>> >>>> . mata : st_numscalar("sum_factors", sum(sqrt(st_matrix("foo")))) >>>> >>>> . scalar li >>>> sum_factors = 6.1462644 >>>> >>>> However, none of these tricks can get round what appears to be your >>>> problem. >>>> >>>> >>>> Nick >>>> njcoxstata@gmail.com >>>> >>>> >>>> On 28 October 2013 14:11, Florian Christian Esser >>>> <florian.esser@tu-dortmund.de> wrote: >>>>> Hi everyone, >>>>> >>>>> I am trying to do factor analysis in order to measure two strategy >>>>> constructs. I have 6 indicators that load on these two constructs. Now >>>>> I >>>>> want to calculate composite reliability (CR) and average variance >>>>> extracted(AVE). >>>>> I use the following code (here for CR): >>>>> ___________________________________________________________________ >>>>> factor zwmdiff_1 zwpdiff_1 zwpdiff_2 zwcost_1 zwcost_2 zwcost_3, pcf >>>>> matrix list e(Psi) >>>>> matrix list e(L) >>>>> matrix psi = e(Psi)' >>>>> matrix communalities = J(rowsof(psi),1,1) >>>>> matrix communalities = communalities - psi >>>>> matrix colnames communalities = communalities >>>>> matrix list communalities >>>>> gen nvar = e(df_m) >>>>> gen sum_factors=0 >>>>> local i=1 >>>>> while `i' <= nvar { >>>>> replace sum_factors = sum_factors + sqrt(communalities[`i',1]) >>>>> local i=`i'+1 >>>>> } >>>>> generate sum_psi=0 >>>>> local i=1 >>>>> while `i' <= nvar { >>>>> replace sum_psi = sum_psi + psi[`i',1] >>>>> local i=`i'+1 >>>>> } >>>>> gen cr=(sum_factors*sum_factors)/((sum_factors*sum_factors)+sum_psi) >>>>> drop nvar >>>>> drop sum_factors >>>>> drop sum_psi >>>>> list cr in 1 >>>>> _________________________________________________________________ >>>>> >>>>> The problem is that once the local macro starts running it tells me: >>>>> _____________________________ >>>>> [...] >>>>> (534 real changes made) >>>>> (534 real changes made) >>>>> (534 real changes made, 534 to missing) >>>>> (0 real changes made) >>>>> (0 real changes made) >>>>> (0 real changes made) >>>>> [...] >>>>> ___________________________ >>>>> >>>>> and accordingly there is an empty result for CR. >>>>> If I add "factors(1)" in the command line above, I get a result, but I >>>>> since I have two factors, I think it is not correct to do this. >>>>> >>>>> Does anyone know what to do here? >>>>> >>>>> Thanks a lot in advance. >>>>> >>>>> * >>>>> * 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/ >>>> >>> >>> >>> * >>> * 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/ >> > > > * > * 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/

**Follow-Ups**:**Re: st: CR and AVE for factor analysis with 2 factors***From:*"Florian Christian Esser" <florian.esser@tu-dortmund.de>

**References**:**st: CR and AVE for factor analysis with 2 factors***From:*"Florian Christian Esser" <florian.esser@tu-dortmund.de>

**Re: st: CR and AVE for factor analysis with 2 factors***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: CR and AVE for factor analysis with 2 factors***From:*"Florian Christian Esser" <florian.esser@tu-dortmund.de>

**Re: st: CR and AVE for factor analysis with 2 factors***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: CR and AVE for factor analysis with 2 factors***From:*"Florian Christian Esser" <florian.esser@tu-dortmund.de>

- Prev by Date:
**Re: st: CR and AVE for factor analysis with 2 factors** - Next by Date:
**Re: st: CR and AVE for factor analysis with 2 factors** - Previous by thread:
**Re: st: CR and AVE for factor analysis with 2 factors** - Next by thread:
**Re: st: CR and AVE for factor analysis with 2 factors** - Index(es):