Determine a transformation
B of the rows of a matrix
B %*% L is estimable.
A practical example is in jointly testing a set of contrasts
in a linear model, and we need to restrict to the subspace spanned by
the rows of
L that are estimable.
estble.subspace (L, nbasis, tol = 1e-8)
A matrix of dimensions k by p
A k by b matrix whose columns form a
basis for non-estimable linear functions – such as is returned
Numeric tolerance for assessing nonestimability. See
B such that all the rows of
M = B %*% L
are estimable, i.e. orthogonal to the columns of
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
An r by p matrix
M = B %*% L
whose rows are all orthogonal to the columns of
nbasis. The matrix
B is attached as
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.
Russell V. Lenth <[email protected]>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
### 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.