This class is used internally to hold information about the parameters in a factor analysis model.
new("parameter", ...)
.
However, rarely, if ever, would one want to do so directly because
make_restrictions
instantiates them and puts them
into the slots of an object of restrictions-class
."parameter"
class is virtual and has the following slots:
x
:"ANY"
but is a
numeric vector or numeric matrix in all known inherited
classes. Its elements can be free parameters or parameters
that are fixed and not estimated. In the case of the former,
the corresponding element of x
should be NA
.
In the case of the latter, the corresponding element of
x
should be the number that the parameter is fixed to
or Inf
if the parameter is fixed to be a
function of other parameters. free
:"ANY"
but for all
known inherited class is a logical vector or logical matrix whose
length is the same as the length of x
that indicates which
elements of x
are considered free parameters.num_free
:x
.select
:x
.invalid
:Domains
:x
. The lower
matrix should indicate the lower bound for the parameter and
the upper matrix should indicate the upper bound. It is often
unnecessary to specify Domains
because they are completed
by the make_restrictions-methods
."parameter.cormat"
class extends "parameter"
and
is used for correlation matrices among primary factors. Hence,
x
is of class "matrix"
and the only free parameters
are in the lower triangle; however, not all elements of the lower
triangle need to be free parameters. The "parameter.scale"
class extends "parameter"
and is used for (diagonal) matrices
of standard deviations of the outcome variables that pre- and
post-multiply the correlation matrix in the embedded correlation
parameterized currently used for all models in FAiR. Hence,
x
is of class "numeric"
and is the diagonal of such a
scale matrix.Typically, all diagonal elements are free but not always,
as in the case where some observed variable is designated as a factor,
in which case its standard deviation is estimated from the data
rather than by the model. The "parameter.coef"
class extends "parameter"
and is used
for primary pattern matrices. Hence, "x"
is of class (numeric)
"matrix"
and its cells may be free (designated by NA
) or
fixed. It has one additional slot,
equalities
:equality_restriction-class
to indicate equality restrictions
among some cells of x
."parameter.coef.nl"
class extends "parameter.coef"
and has
one additional slot,
nonlinearities
:"pattern"
.
After x
is filled with free parameters and any equality restrictions are
resolved, x
is passed to this function whose body can enforce other exact
restrictions on the cells. For example, one "fixed" cell could be the
product of other cells. Then, this function must return this primary pattern
matrix whose cells are all finite numbers, which will be reinserted into the
x
slot for later use."parameter.coef.SEFA"
class extends "parameter.coef"
and
is used in semi-exploratory factor analysis. It has two additional slots,
rankcheck
:"reiersol"
or "howe"
to indicate
which theorem is to be used in checking the rank of submatrices of the
primary pattern matrix with exact zeros in a column. See the Details section.mapping_rule
:mapping_rule
and is used to make some cells of x
exactly zero. It is possible to define a different function for this slot
but see mapping_rule
because the underlying code is
hard-coded to assume some of the same arguments in some places. This function
is called after the cells of x
have been filled and any equality
restrictions have been resolved and should output a matrix that will be
reinserted into the x
slot.squashed
:create_FAobject-methods
must fill it."parameter.coef.SEFA.nl"
class extends "parameter.coef.SEFA"
and has one additional slot,
nonlinearities
:"parameter.coef.nl"
class. The function enforcing nonlinear
restrictions is called before the mapping rule function.cormat
method extracts the x
slot of an object of
"parameter.cormat"
. A coef
method extracts the
x
slot of an object that inherits from "parameter.coef"
.
There is no special extractor function for objects of "parameter.scale"
.
There are also show
methods. The most important methods are those defined for the make_parameter
S4 generic. This function takes two arguments, "par"
, which is a
numeric vector but not part of the signature, and "object"
, which
is an object that inherits from the "parameter"
class. The
make_parameter
methods are defined for each inherited class and
basically do two things. First, they do something like this
object@x[object@free] <- par[object@select]
to fill the free elements of x
with corresponding values from
"par"
. Then, these methods often check whether the parameters
are collectively admissable under the assumptions of the factor analysis
model. If not, the make_parameter
method must set the
invalid
slot to some number that is greater than $-1.0$ and not
$0.0$. It is preferable if larger values somehow indicate more flagrant
inadmissability, since this number is used as a return value in the
lexical optimization process (see genoud
). Finally,
the make_parameter
should return object
.Reiersøl, O. (1950) On the Identifiability of Parameters in Thurstone's Multiple Factor Analysis. Psychometrika, 15, 121--149.
showClass("parameter")
showClass("parameter.cormat")
showClass("parameter.scale")
showClass("parameter.coef")
showClass("parameter.coef.nl")
showClass("parameter.coef.SEFA")
showClass("parameter.coef.SEFA.nl")
showMethods("make_parameter")
Run the code above in your browser using DataLab