# 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 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.- 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 to`loggedEvents`

. The default is`FALSE`

.- ...
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()`