Calculates imputations for univariate missing data by Bayesian linear regression, also known as the normal model.
mice.impute.norm(y, ry, x, wy = NULL, ...)Vector with imputed data, same type as y, and of length
sum(wy)
Vector to be imputed
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.
Numeric design matrix with length(y) rows with predictors for
y. Matrix x may have no missing values.
Logical vector of length length(y). A TRUE value
indicates locations in y for which imputations are created.
Other named arguments.
Stef van Buuren, Karin Groothuis-Oudshoorn
Imputation of y by the normal model by the method defined by
Rubin (1987, p. 167). The procedure is as follows:
Calculate the cross-product matrix \(S=X_{obs}'X_{obs}\).
Calculate \(V = (S+{diag}(S)\kappa)^{-1}\), with some small ridge parameter \(\kappa\).
Calculate regression weights \(\hat\beta = VX_{obs}'y_{obs}.\)
Draw a random variable \(\dot g \sim \chi^2_\nu\) with \(\nu=n_1 - q\).
Calculate \(\dot\sigma^2 = (y_{obs} - X_{obs}\hat\beta)'(y_{obs} - X_{obs}\hat\beta)/\dot g.\)
Draw \(q\) independent \(N(0,1)\) variates in vector \(\dot z_1\).
Calculate \(V^{1/2}\) by Cholesky decomposition.
Calculate \(\dot\beta = \hat\beta + \dot\sigma\dot z_1 V^{1/2}\).
Draw \(n_0\) independent \(N(0,1)\) variates in vector \(\dot z_2\).
Calculate the \(n_0\) values \(y_{imp} = X_{mis}\dot\beta + \dot z_2\dot\sigma\).
Using mice.impute.norm for all columns emulates Schafer's NORM method (Schafer, 1997).
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.
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.mpmm(),
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()