Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
"Joseph Coveney" <jcoveney@bigplanet.com> |

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

Subject |
Re: st: calculate alpha after polychoric factor analysis |

Date |
Wed, 15 Feb 2012 11:54:31 +0900 |

Seyi Soremekun wrote: Thanks (and for the polychoric command itself). The sample size is not an issue - all respondents answered all the questions, displaying -n- was just a check for me (if that is what you meant in your note?) I'm not sure about the appropriateness of using alpha either, however, I know that ordinal alphas are available in other types of software (Basto and Pereira 2012 J. Statistical Software 46(4)), and wondered if there was something I could use in Stata. I was hoping that I could ask stata to calculate the alpha on the saved matrix rather than a list of variables. -------------------------------------------------------------------------------- The Basto and Pereira article references Bruno D. Zumbo, Anne M. Gadermann and Cornelia Zeisser, Ordinal Versions of Coefficients Alpha and Theta for Likert Rating Scales. _Journal of Modern Applied Statistical Methods_ 6(1): 21--9, 2007), which in turn references earlier work for the formula it displays for ordinal coefficient alpha. If I've got the formula correctly implemented below, then you can try something like what is illustrated. It shouldn't be too difficult to morph it into an ado-file, but you'd probably want to verify its correctness with a couple of worked examples. Joseph Coveney version 11.2 set more off set seed `=date("2012-02-14", "YMD")' tempname C matrix define `C' = I(4) * 0.45 + J(4, 4, 0.55) drawnorm latent1 latent2 latent3 latent4, corr(`C') double n(100) clear forvalues i = 1/4 { generate double u`i' = normal(latent`i') generate byte manifest`i' = 0 quietly forvalues cut = 0.2(0.2)0.8 { replace manifest`i' = manifest`i' + 1 if u`i' > `cut' } } polychoric manifest* matrix define `C' = r(R) factormat `C', n(100) factors(1) tempname L Psi matrix define `L' = e(L) matrix define `Psi' = e(Psi) local p = rowsof(`L') tempname f f2 u2 scalar define `f' = 0 scalar define `f2' = 0 scalar define `u2' = 0 forvalues i = 1/`p' { scalar define `f' = `f' + `L'[`i', 1] scalar define `f2' = `f2' + `L'[`i', 1] * `L'[`i', 1] scalar define `u2' = `u2' + `Psi'[1, `i'] } scalar define `f' = `f' / `p' scalar define `f2' = `f2' / `p' scalar define `u2' = `u2' / `p' tempname pf2 scalar define `pf2' = `p' * `f' * `f' scalar define alpha = `p' / (`p' - 1) * /// (`pf2' - `f2') / (`pf2' + `u2') display in smcl as text "Ordinal alpha = " as result %06.4f alpha alpha latent* alpha manifest*, std exit * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**RE: st: calculate alpha after polychoric factor analysis***From:*Cameron McIntosh <cnm100@hotmail.com>

**References**:**st: calculate alpha after polychoric factor analysis***From:*<Seyi.Soremekun@lshtm.ac.uk>

**Re: st: calculate alpha after polychoric factor analysis***From:*Stas Kolenikov <skolenik@gmail.com>

**Re: st: calculate alpha after polychoric factor analysis***From:*<Seyi.Soremekun@lshtm.ac.uk>

- Prev by Date:
**RE: st: Composite measures** - Next by Date:
**RE: st: calculate alpha after polychoric factor analysis** - Previous by thread:
**Re: st: calculate alpha after polychoric factor analysis** - Next by thread:
**RE: st: calculate alpha after polychoric factor analysis** - Index(es):