View source: R/mice.impute.quadratic.R
mice.impute.quadratic | R Documentation |
Imputes incomplete variable that appears as both main effect and quadratic effect in the complete-data model.
mice.impute.quadratic(y, ry, x, wy = NULL, quad.outcome = NULL, ...)
y |
Vector to be imputed |
ry |
Logical vector of length |
x |
Numeric design matrix with |
wy |
Logical vector of length |
quad.outcome |
The name of the outcome in the quadratic analysis as a
character string. For example, if the substantive model of interest is
|
... |
Other named arguments. |
This function implements the "polynomial combination" method.
First, the polynomial
combination Z = Y \beta_1 + Y^2 \beta_2
is formed.
Z
is imputed by
predictive mean matching, followed by a decomposition of the imputed
data Z
into components Y
and Y^2
.
See Van Buuren (2012, pp. 139-141) and Vink
et al (2012) for more details. The method ensures that 1) the imputed data
for Y
and Y^2
are mutually consistent, and 2) that provides unbiased
estimates of the regression weights in a complete-data linear regression that
use both Y
and Y^2
.
Vector with imputed data, same type as y
, and of length
sum(wy)
There are two situations to consider. If only the linear term Y
is present in the data, calculate the quadratic term YY
after
imputation. If both the linear term Y
and the the quadratic term
YY
are variables in the data, then first impute Y
by calling
mice.impute.quadratic()
on Y
, and then impute YY
by
passive imputation as meth["YY"] <- "~I(Y^2)"
. See example section
for details. Generally, we would like YY
to be present in the data if
we need to preserve quadratic relations between YY
and any third
variables in the multivariate incomplete data that we might wish to impute.
Mingyang Cai and Gerko Vink
mice.impute.pmm
Van Buuren, S. (2018).
Flexible Imputation of Missing Data. Second Edition.
Chapman & Hall/CRC. Boca Raton, FL.
Vink, G., van Buuren, S. (2013). Multiple Imputation of Squared Terms. Sociological Methods & Research, 42:598-607.
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.norm()
,
mice.impute.pmm()
,
mice.impute.polr()
,
mice.impute.polyreg()
,
mice.impute.rf()
,
mice.impute.ri()
# Create Data
B1 <- .5
B2 <- .5
X <- rnorm(1000)
XX <- X^2
e <- rnorm(1000, 0, 1)
Y <- B1 * X + B2 * XX + e
dat <- data.frame(x = X, xx = XX, y = Y)
# Impose 25 percent MCAR Missingness
dat[0 == rbinom(1000, 1, 1 - .25), 1:2] <- NA
# Prepare data for imputation
ini <- mice(dat, maxit = 0)
meth <- c("quadratic", "~I(x^2)", "")
pred <- ini$pred
pred[, "xx"] <- 0
# Impute data
imp <- mice(dat, meth = meth, pred = pred, quad.outcome = "y")
# Pool results
pool(with(imp, lm(y ~ x + xx)))
# Plot results
stripplot(imp)
plot(dat$x, dat$xx, col = mdc(1), xlab = "x", ylab = "xx")
cmp <- complete(imp)
points(cmp$x[is.na(dat$x)], cmp$xx[is.na(dat$x)], col = mdc(2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.