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