R: Extract Coefficients in Original Coding

dummy.coef {base} | R Documentation

## Extract Coefficients in Original Coding

### Description

This extracts coefficients in terms of the original levels of the coefficients rather than the coded variables.

### Usage

    dummy.coef(object, ...)
    dummy.coef.lm(object, use.na = FALSE, ...)
    dummy.coef.aovlist(object, use.na = FALSE, ...)

### Arguments

`object` | a linear model fit.
`use.na` | logical flag for coefficients in a singular model. If `use.na` is true, undetermined coefficients will be missing; if false they will get one possible value.
`...` | arguments passed to or from other methods.

### Details

A fitted linear model has coefficients for the contrasts of the factor terms, usually one less in number than the number of levels. This function re-expresses the coefficients in the original coding; as the coefficients will have been fitted in the reduced basis, any implied constraints (e.g. zero sum for `contr.helmert` or `contr.sum` will be respected. There will be little point in using `dummy.coef` for `contr.treatment` contrasts, as the missing coefficients are by definition zero.

The method used has some limitations, and will give incomplete results for terms such as `poly(x, 2))`. However, it is adequate for its main purpose, `aov` models.

### Value

A list giving for each term the values of the coefficients. For a multistratum `aov` model, such a list for each stratum.

### Warning

This function is intended for human inspection of the output: it should not be used for calculations. Use coded variables for all calculations.

The results differ from S for singular values, where S can be incorrect.

### Author(s)

B.D. Ripley

### See Also

`aov`, `model.tables`

### Examples

    options(contrasts=c("contr.helmert", "contr.poly"))
    ## From Venables and Ripley (1997) p.210.
    N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
    P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
    K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
    yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,
    55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)

    npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P),
                      K=factor(K), yield=yield)
    npk.aov <- aov(yield ~ block + N*P*K, npk)
    dummy.coef(npk.aov)

    npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
    dummy.coef(npk.aovE)

[Package Contents]