estble.subspace {estimability} | R Documentation |
Find an estimable subspace
Description
Determine a transformation B
of the rows of a matrix L
such that B %*% L
is estimable.
A practical example is in jointly testing a set of contrasts L
in a linear model, and we need to restrict to the subspace spanned by
the rows of L
that are estimable.
Usage
estble.subspace (L, nbasis, tol = 1e-8)
Arguments
L |
A matrix of dimensions k by p |
nbasis |
A k by b matrix whose columns form a
basis for non-estimable linear functions – such as is returned
by |
tol |
Numeric tolerance for assessing nonestimability. See
|
Details
We require B
such that all the rows of M = B %*% L
are estimable, i.e. orthogonal to the columns of nbasis
.
Thus, we need B %*% L %*% nbasis
to be zero, or equivalently,
t(B)
must be in the null space of t(L %*% nbasis)
.
This can be found using nonest.basis
.
Value
An r by p matrix M = B %*% L
whose rows are all orthogonal to the columns of
nbasis
. The matrix B
is attached as attr(M, "B")
.
Note that if any rows of L
were non-estimable, then r
will be less than k. In fact, if there are no estimable functions
in the row space of L
, then r = 0.
Author(s)
Russell V. Lenth <russell-lenth@uiowa.edu>
Examples
### Find a set of estimable interaction contrasts for a 3 x 4 design
### with two empty cells.
des <- expand.grid(A = factor(1:3), B = factor(1:4))
des <- des[-c(5, 12), ] # cells (2,2) and (3,4) are empty
X <- model.matrix(~ A * B, data = des)
N <- nonest.basis(X)
L <- cbind(matrix(0, nrow = 6, ncol = 6), diag(6))
# i.e., give nonzero weight only to interaction effects
estble.subspace(L, N)
# Tougher demo: create a variation where all rows of L are non-estimable
LL <- matrix(rnorm(36), ncol = 6) %*% L
estble.subspace(LL, N)