R: Imputation by Bayesian linear regression

mice.impute.norm {mice} | R Documentation

## Imputation by Bayesian linear regression

### Description

Calculates imputations for univariate missing data by Bayesian linear regression, also known as the normal model.

### Usage

    mice.impute.norm(y, ry, x, wy = NULL, ...)

### Arguments

`y` | Vector to be imputed
`ry` | Logical vector of length `length(y)` indicating the the subset `y[ry]` of elements in `y` to which the imputation model is fitted. The `ry` generally distinguishes the observed (`TRUE`) and missing values (`FALSE`) in `y`.
`x` | Numeric design matrix with `length(y)` rows with predictors for `y`. Matrix `x` may have no missing values.
`wy` | Logical vector of length `length(y)`. A `TRUE` value indicates locations in `y` for which imputations are created.
`...` | Other named arguments.

### Details

Imputation of `y` by the normal model by the method defined by Rubin (1987, p. 167). The procedure is as follows:

1. Calculate the cross-product matrix S=X_{obs}'X_{obs}.

2. Calculate V = (S+{diag}(S)κ)^{-1}, with some small ridge parameter κ.

3. Calculate regression weights \hatβ = VX_{obs}'y_{obs}.

4. Draw a random variable \dot g \sim χ^2_ν with ν=n_1 - q.

5. Calculate \dotσ^2 = (y_{obs} - X_{obs}\hatβ)'(y_{obs} - X_{obs}\hatβ)/\dot g.

6. Draw q independent N(0,1) variates in vector \dot z_1.

7. Calculate V^{1/2} by Cholesky decomposition.

8. Calculate \dotβ = \hatβ + \dotσ\dot z_1 V^{1/2}.

9. Draw n_0 independent N(0,1) variates in vector \dot z_2.

10. Calculate the n_0 values y_{imp} = X_{mis}\dotβ + \dot z_2\dotσ.

Using `mice.impute.norm` for all columns emulates Schafer's NORM method (Schafer, 1997).

### Value

Vector with imputed data, same type as `y`, and of length `sum(wy)`

### Author(s)

Stef van Buuren, Karin Groothuis-Oudshoorn

### References

Rubin, D.B (1987). Multiple Imputation for Nonresponse in Surveys. New York: John Wiley & Sons.

Schafer, J.L. (1997). Analysis of incomplete multivariate data. London: Chapman & Hall.

### See Also

Other univariate imputation functions: `mice.impute.cart()`, `mice.impute.lasso.logreg()`, `mice.impute.lasso.norm()`, `mice.impute.lasso.select.logreg()`, `mice.impute.lasso.select.norm()`, `mice.impute.lda()`, `mice.impute.logreg.boot()`, `mice.impute.logreg()`, `mice.impute.mean()`, `mice.impute.midastouch()`, `mice.impute.mnar.logreg()`, `mice.impute.norm.boot()`, `mice.impute.norm.nob()`, `mice.impute.norm.predict()`, `mice.impute.pmm()`, `mice.impute.polr()`, `mice.impute.polyreg()`, `mice.impute.quadratic()`, `mice.impute.rf()`, `mice.impute.ri()`

[Package mice version 3.14.0 Index]