Description Objects from the Class Slots Methods Author(s) See Also Examples

It is not necessary to understand this help page if one merely wants to estimate a factor analysis model. This help page is intended for those who want to modify or extend FAiR or otherwise want some idea of how FAiR works “behind the scenes”.

This class defines an equality restriction for use in a semi-exploratory or confirmatory factor analysis model.

Objects can be created by calls of the form `new("equality_restriction", ...)`

.
However, rarely if ever, would a user need to construct an object this way.
The `make_restrictions`

methods do so internally.

`free`

:an integer indicating which cell of a primary pattern matrix is considered “free”

`fixed`

:an integer vector indicating which cells of a primary pattern matrix are constrained to be equal to the “free” cell

`dims`

:an integer vector of length two indicating the dimensions of the primary pattern matrix under consideration

`rownames`

:a character vector of rownames for the primary pattern matrix under consideration

`level`

:either

`1L`

or`2L`

indicating the level of the factor analysis model under consideration

- show
`signature(object = "equality_restriction")`

: Prints the equality restriction to the screen

Ben Goodrich

`restrictions.1storder-class`

, `make_restrictions`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ```
showClass("equality_restriction")
man <- make_manifest(covmat = ability.cov)
## Here is how to set up an equality restriction in a SEFA model the hard way
beta <- matrix(NA_real_, nrow = nrow(cormat(man)), ncol = 2)
rownames(beta) <- rownames(cormat(man))
beta[6,2] <- Inf # "fix" beta[6,2] to Inf provisionally
## Note 11L corresponds to beta[5,2] and 12L corresponds to beta[6,2]
ER <- new("equality_restriction", free = 11L, fixed = 12L, dims = dim(beta),
rownames = rownames(cormat(man)), level = 1L)
free <- is.na(beta) # i.e. all but beta[6,2]
beta <- new("parameter.coef.SEFA", x = beta, free = free, num_free = sum(free),
equalities = list(ER))
Phi <- diag(2)
free <- lower.tri(Phi)
Phi <- new("parameter.cormat", x = Phi, free = free, num_free = sum(free))
## Now set up a restriction to prohibit the equal coefficients from being zero
blockers <- matrix(FALSE, nrow = nrow(cormat(man)), ncol = 2)
blockers[5:6,2] <- TRUE # these two cells are hence not allowed to both be zero
res <- make_restrictions(manifest = man, beta = beta, Phi = Phi,
discrepancy = "MLE", criteria = list("block_1st"),
methodArgs = list(blockers = blockers))
## Not run:
## Here is the easy way to do the same thing, in the following pop-up menus
## select the options to impose equality restrictions and inequality
## restrictions (block those coefficients from being zero in a SEFA model)
res <- make_restrictions(manifest = man, factors = 2, model = "SEFA")
## End(Not run)
show(res)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.