Hierarchical factor structures represent the correlations between variables in terms of a smaller set of correlated factors which themselves can be represented by a higher order factor.

Two alternative solutions to such structures are found by the `omega`

function. The correlated factors solutions represents the effect of the higher level, general factor, through its effect on the correlated factors. The other representation makes use of the Schmid Leiman transformation to find the direct effect of the general factor upon the original variables as well as the effect of orthogonal residual group factors upon the items.

Graphic presentations of these two alternatives are helpful in understanding the structure. omega.graph and omega.diagram draw both such structures. Graphs are drawn directly onto the graphics window or expressed in ``dot" commands for conversion to graphics using implementations of Graphviz (if using omega.graph).

Using Graphviz allows the user to clean up the Rgraphviz output. However, if Graphviz and Rgraphviz are not available, use omega.diagram.

See the other structural diagramming functions, `fa.diagram`

and `structure.diagram`

.

In addition

```
omega.diagram(om.results,sl=TRUE,sort=TRUE,labels=NULL,flabels=NULL,cut=.2,
gcut=.2,simple=TRUE, errors=FALSE, digits=1,e.size=.1,rsize=.15,side=3,
main=NULL,cex=NULL,color.lines=TRUE,marg=c(.5,.5,1.5,.5),adj=2, ...)
omega.graph(om.results, out.file = NULL, sl = TRUE, labels = NULL, size = c(8, 6),
node.font = c("Helvetica", 14), edge.font = c("Helvetica", 10),
rank.direction=c("RL","TB","LR","BT"), digits = 1, title = "Omega", ...)
```

om.results

The output from the omega function

out.file

Optional output file for off line analysis using Graphviz

sl

Orthogonal clusters using the Schmid-Leiman transform (sl=TRUE) or oblique clusters

labels

variable labels

flabels

Labels for the factors (not counting g)

size

size of graphics window

node.font

What font to use for the items

edge.font

What font to use for the edge labels

rank.direction

Defaults to left to right

digits

Precision of labels

cex

control font size

color.lines

Use black for positive, red for negative

marg

The margins for the figure are set to be wider than normal by default

adj

Adjust the location of the factor loadings to vary as factor mod 4 + 1

title

Figure title

main

main figure caption

…

Other options to pass into the graphics packages

e.size

the size to draw the ellipses for the factors. This is scaled by the number of variables.

cut

Minimum path coefficient to draw

gcut

Minimum general factor path to draw

simple

draw just one path per item

sort

sort the solution before making the diagram

side

on which side should errors be drawn?

errors

show the error estimates

rsize

size of the rectangles

A graph object

A matrix suitable to be run throughe the sem function in the sem package.

While omega.graph requires the Rgraphviz package, omega.diagram does not. codeomega requires the GPArotation package.

https://personality-project.org/r/r.omega.html

Revelle, W. (in preparation) An Introduction to Psychometric Theory with applications in R. https://personality-project.org/r/book/

Revelle, W. (1979). Hierarchical cluster analysis and the internal structure of tests. Multivariate Behavioral Research, 14, 57-74. (https://personality-project.org/revelle/publications/iclust.pdf)

Zinbarg, R.E., Revelle, W., Yovel, I., & Li. W. (2005). Cronbach's Alpha, Revelle's Beta, McDonald's Omega: Their relations with each and two alternative conceptualizations of reliability. Psychometrika. 70, 123-133. https://personality-project.org/revelle/publications/zinbarg.revelle.pmet.05.pdf

Zinbarg, R., Yovel, I., Revelle, W. & McDonald, R. (2006). Estimating generalizability to a universe of indicators that all have one attribute in common: A comparison of estimators for omega. Applied Psychological Measurement, 30, 121-144. DOI: 10.1177/0146621605278814 https://journals.sagepub.com/doi/10.1177/0146621605278814

```
# NOT RUN {
#24 mental tests from Holzinger-Swineford-Harman
if(require(GPArotation) ) {om24 <- omega(Harman74.cor$cov,4) } #run omega
#
#example hierarchical structure from Jensen and Weng
if(require(GPArotation) ) {jen.omega <- omega(make.hierarchical())}
# }
```

Run the code above in your browser using DataCamp Workspace