Bookmark and Share

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]

RE: st: calculate alpha after polychoric factor analysis


From   Cameron McIntosh <[email protected]>
To   STATA LIST <[email protected]>
Subject   RE: st: calculate alpha after polychoric factor analysis
Date   Tue, 14 Feb 2012 21:58:08 -0500

You may also want to see a more recent paper:
Gadermann, A.M., Guhn, M., & Zumbo, B.D. (2012). Estimating ordinal reliability for Likert-type and ordinal item response data: A conceptual, empirical, and practical guide. Practical Assessment, Research & Evaluation, 17(3).    http://pareonline.net/pdf/v17n3.pdf

Cam
----------------------------------------
> From: [email protected]
> To: [email protected]
> 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/
 		 	   		  
*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index