statsmodels.imputation.mice.MICEData#

class statsmodels.imputation.mice.MICEData(data, perturbation_method='gaussian', k_pmm=20, history_callback=None, rng=None)[source]#

Wrap a data set to allow missing data handling with MICE

Parameters:
dataPandas data frame

The data set, which is copied internally.

perturbation_methodstr, optional

The default perturbation method

k_pmmint, optional

The number of nearest neighbors to use during predictive mean matching. Can also be specified in fit.

history_callbackfunction, optional

A function that is called after each complete imputation cycle. The return value is appended to history. The MICEData object is passed as the sole argument to history_callback.

rng{None, int, array_like[int], numpy.random.Generator, numpy.random.RandomState}, optional

If rng is None, a new Generator is created using fresh entropy from the operating system. If rng is an int or array of ints, a new Generator is created, seeded with rng. If rng is already a Generator or RandomState instance, that instance is used.

Methods

get_fitting_data(vname)

Return the data needed to fit a model for imputation

get_split_data(vname)

Return endog and exog for imputation of a given variable

impute_pmm(vname)

Use predictive mean matching to impute missing values

next_sample()

Return the next imputed dataset in the imputation process

plot_bivariate(col1_name, col2_name[, ...])

Plot observed and imputed values for two variables

plot_fit_obs(col_name[, lowess_args, ...])

Plot fitted versus imputed or observed values as a scatterplot

plot_imputed_hist(col_name[, ax, ...])

Display imputed values for one variable as a histogram

plot_missing_pattern([ax, row_order, ...])

Generate an image showing the missing data pattern

set_imputer(endog_name[, formula, ...])

Specify the imputation process for a single variable

update(vname)

Impute missing values for a single variable

update_all([n_iter])

Perform a specified number of MICE iterations

impute

perturb_params

Notes

Allowed perturbation methods are ‘gaussian’ (the model parameters are set to a draw from the Gaussian approximation to the posterior distribution), and ‘boot’ (the model parameters are set to the estimated values obtained when fitting a bootstrapped version of the data set).

history_callback can be implemented to have side effects such as saving the current imputed data set to disk.

Examples

Draw 20 imputations from a data set called data and save them in separate files with filename pattern dataXX.csv. The variables other than x1 are imputed using linear models fit with OLS, with mean structures containing main effects of all other variables in data. The variable named x1 has a conditional mean structure that includes an additional term for x2^2.

>>> imp = mice.MICEData(data)
>>> imp.set_imputer('x1', formula='x2 + np.square(x2) + x3')
>>> for j in range(20):
...     imp.update_all()
...     imp.data.to_csv('data%02d.csv' % j)

Methods

get_fitting_data(vname)

Return the data needed to fit a model for imputation

get_split_data(vname)

Return endog and exog for imputation of a given variable

impute(vname)

impute_pmm(vname)

Use predictive mean matching to impute missing values

next_sample()

Return the next imputed dataset in the imputation process

perturb_params(vname)

plot_bivariate(col1_name, col2_name[, ...])

Plot observed and imputed values for two variables

plot_fit_obs(col_name[, lowess_args, ...])

Plot fitted versus imputed or observed values as a scatterplot

plot_imputed_hist(col_name[, ax, ...])

Display imputed values for one variable as a histogram

plot_missing_pattern([ax, row_order, ...])

Generate an image showing the missing data pattern

set_imputer(endog_name[, formula, ...])

Specify the imputation process for a single variable

update(vname)

Impute missing values for a single variable

update_all([n_iter])

Perform a specified number of MICE iterations