The regression
function is used to specify linear associations
between variables of a latent variable model, and offers formula syntax
resembling the model specification of e.g. lm
.For instance, to add the following linear regression model, to the
lvm
-object, m
:
$$E(Y|X_1,X_2) = \beta_1 X_1 + \beta_2 X_2$$
We can write
regression(m) <- y ~ x1 + x2
Multivariate models can be specified by successive calls with
regression
, but multivariate formulas are also supported, e.g.
regression(m) <- c(y1,y2) ~ x1 + x2
defines
$$E(Y_i|X_1,X_2) = \beta_{1i} X_1 + \beta_{2i} X_2$$
The special function, f
, can be used in the model specification to
specify linear constraints. E.g. to fix $\beta_1=\beta_2$
, we could write
regression(m) <- y ~ f(x1,beta) + f(x2,beta)
The second argument of f
can also be a number (e.g. defining an
offset) or be set to NA
in order to clear any previously defined
linear constraints.
Alternatively, a more straight forward notation can be used:
regression(m) <- y ~ beta*x1 + beta*x2
All the parameter values of the linear constraints can be given as the right
handside expression of the assigment function regression<-
(or
regfix<-
) if the first (and possibly second) argument is defined as
well. E.g:
regression(m,y1~x1+x2) <- list("a1","b1")
defines $E(Y_1|X_1,X_2) = a1 X_1 + b1 X_2$. The rhs argument can be a
mixture of character and numeric values (and NA's to remove constraints).
The function regression
(called without additional arguments) can be
used to inspect the linear constraints of a lvm
-object.
For backward compatibility the "$"-symbol can be used to fix parameters at
a given value. E.g. to add a linear relationship between y
and
x
with slope 2 to the model m
, we can write
regression(m,"y") <- "x$2"
. Similarily we can use the "@"-symbol to
name parameters. E.g. in a multiple regression we can force the parameters
to be equal: regression(m,"y") <- c("x1@b","x2@b")
. Fixed parameters
can be reset by fixing (with $) them to NA
.