Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Factor analysis: What does Stata do when I use the option pcf on -factor- ?

    Dear Statalisters,

    I started working with factor analyses these days and I was wondering what Stata is actually doing when one uses the option pcf (principal component factors) of the -factor- command.
    At first I thought this is just another way of conducting principal component analysis as in the -pca- command, but the results are quite different (see code below).

    Actually, the exact same question was raised earlier on statalist (see https://www.stata.com/statalist/arch.../msg00321.html ) and Amadou pointed towards the text book by Harman (1976), where principal component factoring is apparently described as a distinct method of factor analysis.

    Unfortunately I do not have access to that book. So can anyone explain to me what the pcf option does or point me to some other literature source?
    I would really appreciate this!

    Cheers,
    Boris

    references:
    Harman, Harry H. (1976). ?Modern Factor Analysis?. Third Edition Revised. The University of Chicago Press. Chicago and London.


    Code:
    use http://www.ats.ucla.edu/stat/stata/output/m255, clear
    keep item13 item14 item15 item16 item27 item39
    
    findit polychoric // This calculates polychoric correlation matrices, by Stas Kolenikov
    
    qui polychoric item*
    mat r=r(R)
    local N = r(sum_w)
    
    factormat r, n(`N') pcf
    rotate
    
    pcamat r, n(`N')
    Last edited by Boris Ivanov; 14 Mar 2017, 14:57.

  • #2
    According to the Stata Manual:

    pf specifies that the principal-factor method be used to analyze the correlation matrix. The
    factor loadings, sometimes called the factor patterns, are computed using the squared multiple
    correlations as estimates of the communality. pf is the default.

    pcf specifies that the principal-component factor method be used to analyze the correlation matrix.
    The communalities are assumed to be 1.
    With regards to PCA and factor analysis, I hope this tutorial will be helpful.

    To end, shall you haven't used it so far, I recommend to take a look at the structural equation models - sem and gsem - for the factor analysis. It is available in Stata 13 and 14.
    Last edited by Marcos Almeida; 14 Mar 2017, 15:11.
    Best regards,

    Marcos

    Comment


    • #3
      Hey people,
      I made a little mistake - however not in the code i loaded up - and it turns out that running the code presented above in fact do yield the same results under pca and pcf - at least for the calculated factor/component loadings. Only under factor varlist, pcf a rule for the number of retained factors is applied - it seems that the criterion for extraction is eigenvalues above 1 or also this screetest. So after all, is there a real difference between pca and factor with pcf in calculating the factor loadings?

      If not so, I apologize for wasting your time, dear listers.

      Cheers,
      Boris

      Comment


      • #4
        Thank you very much, Marcos. This pretty much answers my question. Sorry for being too hasty on this, seems like I skipped that part when skimming the manual. Sorry for that!

        Comment


        • #5
          Hello Boris, it's OK, Thank your for informing you consider the thread as reaching its closure.
          Best regards,

          Marcos

          Comment


          • #6
            Hello Listers,

            alright, now I really need to apologize for my own confusion.
            If you run the code below (slightly modified version of above) you will realize that the loadings computed by factormat and pcamat are in fact NOT the same. Here comes the code again:
            Code:
            use http://www.ats.ucla.edu/stat/stata/output/m255, clear
            
            keep item13 item14 item15 item16 item27 item39
            
            qui polychoric item*
            mat r=r(R)
            scalar N = r(sum_w)
            
            factormat r, n(`=N') pcf //mineigen(1)
            
            pcamat r, n(`=N') mineigen(1)
            (Note that I omitted the rotation command after factormat, because I think it is more appropriate to compare the unrotated solutions).
            Indeed, factormat ..., pcf entails the extraction criterion of minimal eigenvalues of 1 by default under option pcf.
            So, if the option mineigen(1) is specified with pcamat, the same number of factors with identical eigenvalues is calculated as under factormat with option pcf.
            Whatever caused my confusion above, both commands do yield different loadings, though.

            So, my initial questions remains:
            What exactly is Stata doing in factormat under option pcf?
            As the manuel of factormat reveals, the communalities are set to one under option pcf. As I understand, this is formally equivalent to conducting principal components analysis. that is, because when we set the communalities to 1, we assume that the factors fully explain the observed variables and hence there is no error term, such that we are in the world of pca.
            But since factormat with pcf yields different results than pcamat something else must be going on?

            I would highly appreciate helpful comments on the difference between pca and pricipal component factors method.

            Best regards,
            Boris

            Comment


            • #7
              Here, at #2, there's a reply to this question in the case of unrotated factors:

              https://www.statalist.org/forums/for...ysis-using-pcf

              Originally posted by Clyde Schechter
              They do the same things. The difference you see in the loadings is artifactual due to difference in choice of normalization. The eigenvectors you are seeing after -pca- are normalized to unit length, whereas the loadings you get from -factor, pcf- are normalized to the eigenvalue. If, after -pca- you run -estat loadings, cnorm(eigen)-, which normalizes to the eigenvalue, you get the same loadings that come out of -factor, pcf

              Comment

              Working...
              X