xxUsing R and the psych package to find ω

Using R and the psych package to find ω

William Revelle Department of Psychology Northwestern University

February 25, 2013

Contents

1 Overview of this and related documents 2 Install R and relevant packages x2.1 Install R for the first time xx2.1.1 Install R xx2.1.2 Install relevant packages 3 Read in the data x3.1 Copy the data from another program using the copy and paste commands of your operating system x3.2 Import from an SPSS or SAS file 4 Some simple descriptive statistics before you start 5 Using the omega function to find ω x5.1 Background on the ω statistics x5.2 Using the omega function x5.3 Estimating ω_{h} using Confirmatory Factor Analysis 1 Overview of this and related documents

Two alternative estimates of reliability that take into account the hierarchical structure of the inventory are McDonald’s ω_{h} and ω_{t} (McDonald,x1999). These may be found in R in one step using one of two functions in the psych package: the omega function for an exploratory analysis (See Figurex1) or omegaSem for a confirmatory analysis using the sem package solution based upon the exploratory solution from omega. This guide explains how to do it for the non or novice R user. These set of instructions are adapted from three different sets of notes that the interested reader might find helpful: A set of slides developed for a two hour short course in R given in May, 2012 to the Association of Psychological Science

http://personality-project.org/r/aps/aps-short.pdf as well as a short guide to R

http://personality-project.org/r/ for psychologists and the vignette for the psych package

http://cran.r-project.org/web/packages/psych/vignettes/overview.pdf.

McDonald has proposed coefficient omega (hierarchical) (ω_{h}) as an estimate of the general factor saturation of a test. Zinbarg etxal.x(2005)

http://personality-project.org/revelle/publications/zinbarg.revelle.pmet.05.pdf

compare McDonald’s ω_{h} to Cronbach’s α and Revelle’s β. They conclude that ω_{h} is the best estimate. (See also Zinbarg etxal.x(2006) and Revelle and Zinbargx(2009)

http://personality-project.org/revelle/publications/revelle.zinbarg.08.pdf

).

One way to find ω_{h} is to do a factor analysis of the original data set, rotate the factors obliquely, factor that correlation matrix, do a Schmid-Leiman (schmid) transformation to find general factor loadings, and then find ω_{h}. This is done using the omega function in the psych package in R. This requires installing and using both R as well as the psych package (Revelle,x2013).

Assuming that your data are in a file called my.data, and that you have the necessary packages installed, to find ω_{h} requires two lines of code:

library(psych)

omega(my.data)

The resulting output will be both graphical (see Figurex1) and textual.

This guide helps the naive R user to issue those two lines.

PIC Figurex1: ω_{h} is a reliability estimate of the general factor of a set of variables. It is based upon the correlation of lower order factors. It may be found in R by using the omega function which is part of the psych package. The figure shows a solution for the Thurstone 9 variable data set.

2 Install R and relevant packages

To find ωh in R obviously requires installing R on your computer. This is very easy to do (see sectionx2.1.1) and needs to be done once.

The power of R is in the supplemental packages. At a minimum, you will need to install three package (psych (Revelle,x2013), GPArotation (Bernaards and Jennrich,x2005) and MASS (Venables and Ripley,x2002). With these three packages, you will be be able to find ω_{h} using Exploratory Factor Analysis. If you want to find it using Confirmatory Factor Analysis, you will also need to add the sem (Fox etxal.,x2013) and matrixcalc (Novomestky,x2012) packages. For a more complete installation of a number of psychometric packages, you can install and activate a package (ctv) that installs a large set of psychometrically relevant packages. As is true for R, you will need to install packages just once.

2.1 Install R for the first time

Download from R Cran (http://cran.r-project.org/) (see sectionx2.1.1)

Choose appropriate operating system and download compiled R

Install R (current version is 2.15.2)

Start R

Add useful packages (just need to do this once) (see sectionx2.1.2)

         install.packages(c("psych","GPArotation","MASS")) #the minimum

requirement

or if you want to do CFA

         install.packages(c("psych","GPArotation","MASS","sem","matrixcalc"))

or if you want to install the psychometric task views install.packages("ctv") #this downloads the task view package library(ctv) #this activates the ctv package

install.views("Psychometrics") #among others

Take a 5 minute break Activate the package(s) you want to use (e.g., psych)

library(psych) #necessary for finding omega psych will automatically activate the other packages it needs, as long as they are installed. Note that psych is updated roughly quarterly, the current version is 1.3.1

Use R

2.1.1 Install R First go to the Comprehensive R Archive Network (CRAN) at http://cran.r-project.org: (Figurex2)

PIC Figurex2: The basic CRAN window allows you choose your operating system. Comprehensive R Archive Network (CRAN) is found at http://cran.r-project.org:

Choose your operating system and then download and install the appropriate version For a PC: (Figurex3)

PIC Figurex3: On a PC you want to choose the base system Download and install the appropriate version – PC PIC Figurex4: Download the Windows version For a Mac: download and install the appropriate version – Mac (Figurex5)

PIC Figurex5: For the Mac, you want to choose the latest version which includes the GUI as well as the 32 and 64 bit versions.

Starting R on a PC PIC Figurex6: The startup screen on a PC Start up R and get ready to play (Mac version)

xxRxversionx2.15.0xPatchedx(2012-03-30xr58887)x--x"EasterxBeagle"xxCopyrightx(C)x2012xThexRxFoundationxforxStatisticalxComputing
xxISBNx3-900051-07-0xxPlatform:xx86_64-apple-darwin9.8.0/x86_64x(64-bit)xxxxRxisxfreexsoftwarexandxcomesxwithxABSOLUTELYxNOxWARRANTY.
xxYouxarexwelcomextoxredistributexitxunderxcertainxconditions.xxTypex'license()'xorx'licence()'xforxdistributionxdetails.
xxxxxxNaturalxlanguagexsupportxbutxrunningxinxanxEnglishxlocalexxxxRxisxaxcollaborativexprojectxwithxmanyxcontributors.
xxTypex'contributors()'xforxmorexinformationxandxx'citation()'xonxhowxtoxcitexRxorxRxpackagesxinxpublications.xx
xxTypex'demo()'xforxsomexdemos,x'help()'xforxon-linexhelp,xorxx'help.start()'xforxanxHTMLxbrowserxinterfacextoxhelp.
xxTypex'q()'xtoxquitxR.xxxx[R.appxGUIx1.43x(5920)xx86_64-apple-darwin9.8.0]xxxx[Workspacexrestoredxfromx/Users/revelle/.RData]
xx[Historyxrestoredxfromx/Users/revelle/.Rapp.history]xx>xxxx#x>xxisxthexpromptxforxallxcommandsxxxx#isxforxcommentsxx

2.1.2 Install relevant packages

Once R is installed on your machine, you still need to install a few relevant “packages”. Packages are what make R so powerful, for they are special sets of functions that are designed for one particular application. In the case of the psych package, that application is for doing the kind of basic data analysis and psychometric analysis that personality psychologists find particularly useful.

You may either install the minimum set of packages necessary to do the analysis using an EFA approach (recommended) or a few more packages to do both the EFA and a CFA approach. It is also possible to add many psychometrically relevant packages all at once by using the “task views” approach.

Install the minimum set

     install.packages(c("psych","GPArotation","MASS"))

Install the sem package as well

     install.packages(c("psych","GPArotation","MASS","sem","matrixcalc"))

Install all the psychometric packages from the “psychometrics” task view.

install.packages("ctv") #this downloads the task view package

library(ctv) #this activates the ctv package

     install.views("Psychometrics") #among others

Take a 5 minute break

You are almost ready. But first you need to make the psych package active. You only need to do this once per session.

library(psych) #necessary for finding omega

You are almost there. But first you need to read in your data from your data file.

3 Read in the data

There are of course many ways to enter data into R. Reading from a local file using read.table is perhaps the most preferred. You first need to find the file and then read it. This can be done

with the file.choose and read.table functions:

xxfile.namex<-xfile.choose()xxmy.datax<-xread.table(file.name)

file.choose opens a search window on your system just like any open file command does. It doesn’t actually read the file, it just finds the file. The read command is also necessary.

3.1 Copy the data from another program using the copy and paste commands of your operating system

However, many users will enter their data in a text editor or spreadsheet program and then want to copy and paste into R. This may be done by using read.table and specifying the input file as “clipboard" (PCs) or “pipe(pbpaste)" (Macs). Alternatively, the read.clipboard set of functions are perhaps more user friendly:

read.clipboard is the base function for reading data from the clipboard.

read.clipboard.csv for reading text that is comma delimited.

read.clipboard.tab for reading text that is tab delimited (e.g., copied directly from an Excel file).

read.clipboard.lower for reading input of a lower triangular matrix with or without a diagonal. The resulting object is a square matrix.

read.clipboard.upper for reading input of an upper triangular matrix.

read.clipboard.fwf for reading in fixed width fields (some very old data sets)

For example, given a data set copied to the clipboard from a spreadsheet, just enter the command

xx>xmy.datax<-xread.clipboard()

This will work if every data field has a value and even missing data are given some values (e.g., NA or -999). If the data were entered in a spreadsheet and the missing values were just empty cells, then the data should be read in as a tab delimited or by using the read.clipboard.tab function.

xx>xmy.datax<-xread.clipboard(sep="\t")xxx#definexthextabxoption,xor
xx>xmy.tab.datax<-xread.clipboard.tab()xxx#justxusexthexalternativexfunction

For the case of data in fixed width fields (some old data sets tend to have this format), copy to the clipboard and then specify the width of each field (in the example below, the first variable is 5 columns, the second is 2 columns, the next 5 are 1 column the last 4 are 3 columns).

xx>xmy.datax<-xread.clipboard.fwf(widths=c(5,2,rep(1,5),rep(3,4))

3.2 Import from an SPSS or SAS file

To read data from an SPSS, SAS, or Systat file, you must use the foreign package. This might need to be installed (see 2.1.2 for instructions for installing packages).

read.spss reads a file stored by the SPSS save or export commands.

read.spss(file,xuse.value.labelsx=xTRUE,xto.data.framex=xFALSE,
xxxxxxxxxxxmax.value.labelsx=xInf,xtrim.factor.namesx=xFALSE,
xxxxxxxxxxxtrim_valuesx=xTRUE,xreencodex=xNA,xuse.missingsx=xto.data.frame)
xxxxxxxxxxx

file Character string: the name of the file or URL to read.

use.value.labels Convert variables with value labels into R factors with those levels?

to.data.frame return a data frame? Defaults to FALSE, probably should be TRUE in most cases.

max.value.labels Only variables with value labels and at most this many unique values will be converted to factors if use.value.labels = T RUE.

trim.factor.names Logical: trim trailing spaces from factor levels?

trim_valueslogical: should values and value labels have trailing spaces ignored when matching for use.value.labels = T RUE?

use.missings logical: should information on user-defined missing values be used to set the corresponding values to NA?

An example of reading from an SPSS file and then describing the data set to make it looks ok.

xx>xlibrary(foreign)xx>xdatafilenamex<-x"http://personality-project.org/r/datasets/finkel.sav"

xx>xxelix<-xread.spss(datafilename,to.data.frame=TRUE,

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuse.value.labels=FALSE)xxxx>xdescribe(eli,skew=FALSE)

xxxxxxxxxxxxxvarxxnxxmeanxxxxsdxmedianxtrimmedxxxmadxminxmaxxrangexxxse

xxUSER*xxxxxx1x69x35.00x20.06xxxxx35xxx35.00x25.20xxx1xx69xxxx68x2.42
xxHAPPYxxxxxx2x69xx5.71xx1.04xxxxxx6xxxx5.82xx0.00xxx2xxx7xxxxx5x0.13
xxSOULMATExxx3x69xx5.09xx1.80xxxxxx5xxxx5.32xx1.48xxx1xxx7xxxxx6x0.22
xxENJOYDEXxxx4x68xx6.47xx1.01xxxxxx7xxxx6.70xx0.00xxx2xxx7xxxxx5x0.12

xxUPSETxxxxxx5x69xx0.41xx0.49xxxxxx0xxxx0.39xx0.00xxx0xxx1xxxxx1x0.06xx

4 Some simple descriptive statistics before you start

Although you probably want to jump right in and find ω, you should first make sure that your data are reasonable. Use the describe function to get some basic descriptive statistics. This next example takes advantage of a built in data set.

xxmy.datax<-xsat.actxx#builtxinxexamplexx--xreplacexwithxyourxdataxxdescribe(my.data)

xxxxxxxxxxxxvarxxxnxxxmeanxxxxxsdxmedianxtrimmedxxxxmadxminxmaxxrangexxskewxkurtosisxxxse
xxgenderxxxxxx1x700xxx1.65xxx0.48xxxxxx2xxxx1.68xxx0.00xxx1xxx2xxxxx1x-0.61xxxx-1.62x0.02
xxeducationxxx2x700xxx3.16xxx1.43xxxxxx3xxxx3.31xxx1.48xxx0xxx5xxxxx5x-0.68xxxx-0.07x0.05
xxagexxxxxxxxx3x700xx25.59xxx9.50xxxxx22xxx23.86xxx5.93xx13xx65xxxx52xx1.64xxxxx2.42x0.36
xxACTxxxxxxxxx4x700xx28.55xxx4.82xxxxx29xxx28.84xxx4.45xxx3xx36xxxx33x-0.66xxxxx0.53x0.18
xxSATVxxxxxxxx5x700x612.23x112.90xxxx620xx619.45x118.61x200x800xxx600x-0.64xxxxx0.33x4.27
xxSATQxxxxxxxx6x687x610.22x115.64xxxx620xx617.25x118.61x200x800xxx600x-0.59xxxx-0.02x4.41

There are, of course, all kinds of things you could do with your data at this point, but read about them in the vignette for the psych package

http://cran.r-project.org/web/packages/psych/vignettes/overview.pdf.

5 Using the omega function to find ω

Two alternative estimates of reliability that take into account the hierarchical structure of the inventory are McDonald’s ω_{h} and ω_{t}. These may be found using the omega function for an exploratory analysis (See Figurex1) or omegaSem for a confirmatory analysis using the sem based upon the exploratory solution from omega.

5.1 Background on the ω statistics

McDonaldx(1999) has proposed coefficient omega (hierarchical) (ω_{h}) as an estimate of the general factor saturation of a test. Zinbarg etxal.x(2005)

http://personality-project.org/revelle/publications/zinbarg.revelle.pmet.05.pdf

compare McDonald’s ω_{h} to Cronbach’s α and Revelle’s β. They conclude that ω_{h} is the best estimate. (See also Zinbarg etxal.x(2006) and Revelle and Zinbargx(2009)

http://personality-project.org/revelle/publications/revelle.zinbarg.08.pdf

).

One way to find ω_{h} is to do a factor analysis of the original data set, rotate the factors obliquely, factor that correlation matrix, do a Schmid-Leiman (schmid) transformation to find general factor loadings, and then find ω_{h}.

ω_{h} differs slightly as a function of how the factors are estimated. Three options are available, the default will do a minimum residual factor analysis, fm=“pa" does a principal axes factor analysis (factor.pa), and fm=“mle" provides a maximum likelihood solution.

For ability items, it is typically the case that all items will have positive loadings on the general factor. However, for non-cognitive items it is frequently the case that some items are to be scored positively, and some negatively. Although probably better to specify which directions the items are to be scored by specifying a key vector, if flip =TRUE (the default), items will be reversed so that they have positive loadings on the general factor. The keys are reported so that scores can be found using the score.items function. Arbitrarily reversing items this way can overestimate the general factor. (See the example with a simulated circumplex).

β, an alternative to ω, is defined as the worst split half reliability. It can be estimated by using iclust (Item Cluster analysis: a hierarchical clustering algorithm). For a very complimentary review of why the iclust algorithm is useful in scale construction, see Cooksey and Soutarx(2006).

The omega function uses exploratory factor analysis to estimate the ω_{h} coefficient. It is important to remember that “A recommendation that should be heeded, regardless of the method chosen to estimate ω_{h}, is to always examine the pattern of the estimated general factor loadings prior to estimating ω_{h}. Such an examination constitutes an informal test of the assumption that there is a latent variable common to all of the scale’s indicators that can be conducted even in the context of EFA. If the loadings were salient for only a relatively small subset of the indicators, this would suggest that there is no true general factor underlying the covariance matrix. Just such an informal assumption test would have afforded a great deal of protection against the possibility of misinterpreting the misleading ω_{h} estimates occasionally produced in the simulations reported here." (Zinbarg etxal.,x2006, p 137).

Although ω_{h} is uniquely defined only for cases where 3 or more subfactors are extracted, it is sometimes desired to have a two factor solution. By default this is done by forcing the schmid extraction to treat the two subfactors as having equal loadings.

There are three possible options for this condition: setting the general factor loadings between the two lower order factors to be “equal" which will be the \sqrt{r_{ab}} where r_{ab} is the oblique correlation between the factors) or to “first" or “second" in which case the general factor is equated with either the first or second group factor. A message is issued suggesting that the model is not really well defined. This solution discussed in Zinbarg et al., 2007. To do this in omega, add the option=“first" or option=“second" to the call.

Although obviously not meaningful for a 1 factor solution, it is of course possible to find the sum of the loadings on the first (and only) factor, square them, and compare them to the overall matrix variance. This is done, with appropriate complaints.

In addition to ω_{h}, another of McDonald’s coefficients is ω_{t}. This is an estimate of the total reliability of a test.

McDonald’s ω_{t}, which is similar to Guttman’s λ_{6}, (see guttman) uses the estimates of uniqueness u^{2} from factor analysis to find e_{j}^{2}. This is based on a decomposition of the variance of a test score, V_{x} into four parts: that due to a general factor, g⃗, that due to a set of group factors, f⃗, (factors common to some but not all of the items), specific factors, s⃗ unique to each item, and e⃗, random error. (Because specific variance can not be distinguished from random error unless the test is given at least twice, some combine these both into error).

Letting x⃗= c⃗g+ A⃗f + D⃗s+e⃗ then the communality of item_{j}, based upon general as well as group factors, h_{j}^{2} = c_{j}^{2}+ ∑ f_{ij}^{2} and the unique variance for the item u_{j}^{2} = σ_{j}^{2}(1 − h_{j}^{2}) may be used to estimate the test reliability. That is, if h_{j}^{2} is the communality of item_{j}, based upon general as well as group factors, then for standardized items, e_{j}^{2} = 1 − h_{j}^{2} and

. ω_{t} = \frac{1c⃗c′1+1A⃗A′ 1′}{V_{x}} = 1 − \frac{∑ (1 − h_{j}^{2})}{V_{x}} = 1 − \frac{∑ u^{2}}{V_{x}}

Because h_{j}^{2} ≥ r_{smc}^{2}, ω_{t} ≥ λ_{6}.

It is important to distinguish here between the two ω coefficients of McDonald, 1978 and Equation 6.20a of McDonald, 1999, ω_{t} and ω_{h}. While the former is based upon the sum of squared loadings on all the factors, the latter is based upon the sum of the squared loadings on the general factor.

. ω_{h} = \frac{1c⃗c′1}{V_{x}}

Another estimate reported is the omega for an infinite length test with a structure similar to the observed test. This is found by

. ω_{inf} = \frac{1c⃗c′1}{1c⃗c′1+1A⃗A′ 1′}

It can be shown In the case of simulated variables, that the amount of variance attributable to a general factor (ω_{h}) is quite large, and the reliability of the set of items is somewhat greater than that estimated by α or λ_{6}.

5.2 Using the omega function

Just call it. For the next example, we find ω for a data set from Thurstone. To find it for your data, replace Thurstone with my.data.

xx>xomega(Thurstone)

xxxxOmegaxxCall:xomega(mx=xThurstone)xxAlpha:xxxxxxxxxxxxxxxxx0.89xxG.6:xxxxxxxxxxxxxxxxxxx0.91xxOmegaxHierarchical:xxxx0.74
xxOmegaxHxasymptotic:xxxx0.79xxOmegaxTotalxxxxxxxxxxxx0.93xxxxSchmidxLeimanxFactorxloadingsxgreaterxthanxx0.2
xxxxxxxxxxxxxxxxxxxxxgxxxF1*xxxF2*xxxF3*xxxh2xxxu2xxxp2xxSentencesxxxxxxx0.71xx0.57xxxxxxxxxxxxx0.82x0.18x0.61
xxVocabularyxxxxxx0.73xx0.55xxxxxxxxxxxxx0.84x0.16x0.63xxSent.Completionx0.68xx0.52xxxxxxxxxxxxx0.73x0.27x0.63
xxFirst.Lettersxxx0.65xxxxxxxx0.56xxxxxxx0.73x0.27x0.57xx4.Letter.Wordsxx0.62xxxxxxxx0.49xxxxxxx0.63x0.37x0.61
xxSuffixesxxxxxxxx0.56xxxxxxxx0.41xxxxxxx0.50x0.50x0.63xxLetter.Seriesxxx0.59xxxxxxxxxxxxxx0.61x0.72x0.28x0.48
xxPedigreesxxxxxxx0.58xx0.23xxxxxxxx0.34x0.50x0.50x0.66xxLetter.Groupxxxx0.54xxxxxxxxxxxxxx0.46x0.53x0.47x0.56xx
xxWithxeigenvaluesxof:xxxxxgxxF1*xxF2*xxF3*xx3.58x0.96x0.74x0.71xxxxgeneral/maxxx3.71xxxmax/minx=xxx1.35
xxmeanxpercentxgeneralx=xx0.6xxxxwithxsdx=xx0.05xandxcvxofxx0.09xxxxThexdegreesxofxfreedomxarex12xxandxthexfitxisxx0.01
xxxxThexrootxmeanxsquarexofxthexresidualsxisxx0xxThexdfxcorrectedxrootxmeanxsquarexofxthexresidualsxisxx0.01
xxxxComparexthisxwithxthexadequacyxofxjustxaxgeneralxfactorxandxnoxgroupxfactors
xxThexdegreesxofxfreedomxforxjustxthexgeneralxfactorxarex27xxandxthexfitxisxx1.48xx
xxThexrootxmeanxsquarexofxthexresidualsxisxx0.1xxThexdfxcorrectedxrootxmeanxsquarexofxthexresidualsxisxx0.16
xxxxMeasuresxofxfactorxscorexadequacyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxgxxF1*xxF2*xxF3*
xxCorrelationxofxscoresxwithxfactorsxxxxxxxxxxxx0.86x0.73x0.72x0.75xxMultiplexRxsquarexofxscoresxwithxfactorsxxxxxx0.74x0.54x0.52x0.56

xxMinimumxcorrelationxofxfactorxscorexestimatesx0.49x0.08x0.03x0.11

5.3 Estimating ω_{h} using Confirmatory Factor Analysis

The omegaSem function will do an exploratory analysis and then take the highest loading items on each factor and do a confirmatory factor analysis using the sem package. These results can produce slightly different estimates of ω_{h}, primarily because cross loadings are modeled as part of the general factor.

xx>xomegaSem(r9,n.obs=500)

xxCall:xomegaSem(mx=xr9,xn.obsx=x500)xxOmegaxxCall:xomega(mx=xm,xnfactorsx=xnfactors,xfmx=xfm,xkeyx=xkey,xflipx=xflip,
xxxxxxdigitsx=xdigits,xtitlex=xtitle,xslx=xsl,xlabelsx=xlabels,xxxxxxplotx=xplot,xn.obsx=xn.obs,xrotatex=xrotate,xPhix=xPhi,xoptionx=xoption)
xxAlpha:xxxxxxxxxxxxxxxxx0.75xxG.6:xxxxxxxxxxxxxxxxxxx0.74xxOmegaxHierarchical:xxxx0.66xxOmegaxHxasymptotic:xxxx0.84
xxOmegaxTotalxxxxxxxxxxxx0.78xxxxSchmidxLeimanxFactorxloadingsxgreaterxthanxx0.2xxxxxxxxgxxxF1*xxxF2*xxxF3*xxxh2xxxu2xxxp2
xxV1x0.70xxxxxxxxxxxxxxxxxxx0.53x0.47x0.93xxV2x0.70xxxxxxxxxxxxxxxxxxx0.52x0.48x0.94xxV3x0.54xxxxxxxxxxxxxxxxxxx0.32x0.68x0.91
xxV4x0.53xx0.46xxxxxxxxxxxxx0.50x0.50x0.57xxV5x0.44xx0.44xxxxxxxxxxxxx0.39x0.61x0.50xxV6x0.40xx0.32xxxxxxxxxxxxx0.26x0.74x0.59
xxV7x0.31xxxxxxxxxxxxxx0.31x0.21x0.79x0.48xxV8x0.34xxxxxxxxxxxxxx0.44x0.30x0.70x0.37xxV9x0.24xxxxxxxxxxxxxx0.36x0.19x0.81x0.32
xxxxWithxeigenvaluesxof:xxxxxgxxF1*xxF2*xxF3*xx2.18x0.52x0.08x0.44xxxxgeneral/maxxx4.21xxxmax/minx=xxx6.17
xxmeanxpercentxgeneralx=xx0.62xxxxwithxsdx=xx0.24xandxcvxofxx0.39xxxxThexdegreesxofxfreedomxarex12xxandxthexfitxisxx0.03
xxThexnumberxofxobservationsxwasxx500xxwithxChixSquarex=xx14.23xxwithxprobx<xx0.29xxThexrootxmeanxsquarexofxthexresidualsxisxx0.01
xxThexdfxcorrectedxrootxmeanxsquarexofxthexresidualsxisxx0.03xxRMSEAxindexx=xx0.02xxandxthex90x%xconfidencexintervalsxarexxNAx0.052
xxBICx=xx-60.35xxxxComparexthisxwithxthexadequacyxofxjustxaxgeneralxfactorxandxnoxgroupxfactors

xxThexdegreesxofxfreedomxforxjustxthexgeneralxfactorxarex27xxandxthexfitxisxx0.21

xxThexnumberxofxobservationsxwasxx500xxwithxChixSquarex=xx103.64xxwithxprobx<xx6.4e-11xxThexrootxmeanxsquarexofxthexresidualsxisxx0.05
xxThexdfxcorrectedxrootxmeanxsquarexofxthexresidualsxisxx0.08xxxxRMSEAxindexx=xx0.076xxandxthex90x%xconfidencexintervalsxarexx0.06x0.091
xxBICx=xx-64.15xxxxMeasuresxofxfactorxscorexadequacyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxgxxxF1*xxxF2*xxxF3*
xxCorrelationxofxscoresxwithxfactorsxxxxxxxxxxxx0.86xx0.63xx0.25xx0.59xxMultiplexRxsquarexofxscoresxwithxfactorsxxxxxx0.74xx0.39xx0.06xx0.35
xxMinimumxcorrelationxofxfactorxscorexestimatesx0.48x-0.21x-0.88x-0.30xx
xxxOmegaxHierarchicalxfromxaxconfirmatoryxmodelxusingxsemx=xx0.68xxxOmegaxTotalxxfromxaxconfirmatoryxmodelxusingxsemx=xx0.78
xxWithxloadingsxofxxxxxxxxgxxF1*xxF2*xxF3*xxxh2xxxu2xxV1x0.73xxxxxxxxxxxxxxxx0.54x0.46xxV2x0.68xxxxxx0.29xxxxxx0.54x0.46
xxV3x0.51xxxxxx0.22xxxxxx0.31x0.69xxV4x0.54x0.47xxxxxxxxxxx0.51x0.49xxV5x0.45x0.42xxxxxxxxxxx0.38x0.62
xxV6x0.39x0.31xxxxxxxxxxx0.25x0.75xxV7x0.34xxxxxxxxxxx0.34x0.23x0.77xxV8x0.36xxxxxxxxxxx0.39x0.28x0.72
xxV9x0.26xxxxxxxxxxx0.33x0.18x0.82xxxxWithxeigenvaluesxof:xxxxxgxxF1*xxF2*xxF3*xx2.21x0.49x0.14x0.38

References

xxxBernaards, C. and Jennrich, R. (2005). Gradient projection algorithms and software for arbitrary rotation criteria in factor analysis. Educational and Psychological Measurement, 65(5):676.

xxxCooksey, R. and Soutar, G. (2006). Coefficient beta and hierarchical item clustering - an analytical procedure for establishing and displaying the dimensionality and homogeneity of summated scales. Organizational Research Methods, 9:78–98.

xxxFox, J., Nie, Z., and Byrnes, J. (2013). sem: Structural Equation Models. R package version 3.1-0.

xxxMcDonald, R.xP. (1999). Test theory: A unified treatment. L. Erlbaum Associates, Mahwah, N.J.

xxxNovomestky, F. (2012). matrixcalc: Collection of functions for matrix calculations. R package version 1.0-3.

xxxRevelle, W. (2013). psych: Procedures for Personality and Psychological Research. Northwestern University, Evanston, http://cran.r-project.org/web/packages/psych/. R package version 1.3.2.

xxxRevelle, W. and Zinbarg, R.xE. (2009). Coefficients alpha, beta, omega and the glb: comments on Sijtsma. Psychometrika, 74(1):145–154. xxxVenables, W.xN. and Ripley, B.xD. (2002). Modern Applied Statistics with S. Springer,

New York, fourth edition. ISBN 0-387-95457-0.

xxxZinbarg, R.xE., Revelle, W., Yovel, I., and Li, W. (2005). Cronbach’s α, Revelle’s β, and McDonald’s ω_{H}): Their relations with each other and two alternative conceptualizations of reliability. Psychometrika, 70(1):123–133.

xxxZinbarg, R.xE., Yovel, I., Revelle, W., and McDonald, R.xP. (2006). Estimating generalizability to a latent variable common to all of a scale’s indicators: A comparison of estimators for ω_{h}. Applied Psychological Measurement, 30(2):121–144.