R: Find an estimable subspace

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 `nonest.basis`
`tol` | Numeric tolerance for assessing nonestimability. See `is.estble`.

### 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)

[Package estimability version 1.3 Index]