Imputation of ordered data by polytomous regression
Source:R/mice.impute.polr.R
mice.impute.polr.Rd
Imputes missing data in a categorical variable using polytomous regression
Usage
mice.impute.polr(
y,
ry,
x,
wy = NULL,
nnet.maxit = 100,
nnet.trace = FALSE,
nnet.MaxNWts = 1500,
polr.to.loggedEvents = FALSE,
...
)
Arguments
- y
Vector to be imputed
- ry
Logical vector of length
length(y)
indicating the the subsety[ry]
of elements iny
to which the imputation model is fitted. Thery
generally distinguishes the observed (TRUE
) and missing values (FALSE
) iny
.- x
Numeric design matrix with
length(y)
rows with predictors fory
. Matrixx
may have no missing values.- wy
Logical vector of length
length(y)
. ATRUE
value indicates locations iny
for which imputations are created.- nnet.maxit
Tuning parameter for
nnet()
.- nnet.trace
Tuning parameter for
nnet()
.- nnet.MaxNWts
Tuning parameter for
nnet()
.- polr.to.loggedEvents
A logical indicating whether each fallback to the
multinom()
function should be written tologgedEvents
. The default isFALSE
.- ...
Other named arguments.
Details
The function mice.impute.polr()
imputes for ordered categorical response
variables by the proportional odds logistic regression (polr) model. The
function repeatedly applies logistic regression on the successive splits. The
model is also known as the cumulative link model.
By default, ordered factors with more than two levels are imputed by
mice.impute.polr
.
The algorithm of mice.impute.polr
uses the function polr()
from
the MASS
package.
In order to avoid bias due to perfect prediction, the algorithm augment the data according to the method of White, Daniel and Royston (2010).
The call to polr
might fail, usually because the data are very sparse.
In that case, multinom
is tried as a fallback.
If the local flag polr.to.loggedEvents
is set to TRUE,
a record is written
to the loggedEvents
component of the mids
object.
Use mice(data, polr.to.loggedEvents = TRUE)
to set the flag.
Note
In December 2019 Simon White alerted that the
polr
could always fail silently. I can confirm this behaviour for
versions mice 3.0.0 - mice 3.6.6
, so any method requests
for polr
in these versions were in fact handled by multinom
.
See https://github.com/amices/mice/issues/206 for details.
References
Van Buuren, S., Groothuis-Oudshoorn, K. (2011). mice
: Multivariate
Imputation by Chained Equations in R
. Journal of Statistical
Software, 45(3), 1-67. doi:10.18637/jss.v045.i03
Brand, J.P.L. (1999) Development, implementation and evaluation of multiple imputation strategies for the statistical analysis of incomplete data sets. Dissertation. Rotterdam: Erasmus University.
White, I.R., Daniel, R. Royston, P. (2010). Avoiding bias due to perfect prediction in multiple imputation of incomplete categorical variables. Computational Statistics and Data Analysis, 54, 2267-2275.
Venables, W.N. & Ripley, B.D. (2002). Modern applied statistics with S-Plus (4th ed). Springer, Berlin.
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()
,
mice.impute.logreg.boot()
,
mice.impute.mean()
,
mice.impute.midastouch()
,
mice.impute.mnar.logreg()
,
mice.impute.mpmm()
,
mice.impute.norm()
,
mice.impute.norm.boot()
,
mice.impute.norm.nob()
,
mice.impute.norm.predict()
,
mice.impute.pmm()
,
mice.impute.polyreg()
,
mice.impute.quadratic()
,
mice.impute.rf()
,
mice.impute.ri()