statsmodels.imputation.bayes_mi.BayesGaussMI

class statsmodels.imputation.bayes_mi.BayesGaussMI(data, mean_prior=None, cov_prior=None, cov_prior_df=1)[source]

使用高斯模型的贝叶斯插补。

该方法是贝叶斯的。目标是根据观测到的数据值,从均值向量、协方差矩阵和缺失数据值的联合分布中进行采样。使用共轭先验来表示总体均值和协方差矩阵。吉布斯采样用于依次更新均值向量、协方差矩阵和缺失数据值。在烧入期之后,吉布斯链中的插补完整数据集可以用于多重插补分析(MI)。

Parameters:
datandarray

要插值的数据数组。数组中等于 NaN 的值将被插值。

mean_priorndarray, optional

高斯先验分布的均值向量的协方差矩阵。如果未提供,则使用单位矩阵。

cov_priorndarray, optional

逆Wishart先验分布的协方差矩阵的中心矩阵。如果未提供,则使用单位矩阵。

cov_prior_dfpositive float

逆Wishart先验分布的自由度 用于协方差矩阵。默认值为1。

示例

一个使用OLS的基本示例。假设数据中有10%是随机缺失的。

>>> import numpy as np
>>> x = np.random.standard_normal((1000, 2))
>>> x.flat[np.random.sample(2000) < 0.1] = np.nan

imputer 与 MI 一起使用。

>>> import statsmodels.api as sm
>>> def model_args_fn(x):
...     # Return endog, exog from x
...    return x[:, 0], x[:, 1:]
>>> imp = sm.BayesGaussMI(x)
>>> mi = sm.MI(imp, sm.OLS, model_args_fn)

方法

update()

循环执行所有吉布斯更新。

update_cov()

协方差矩阵的Gibbs更新。

update_data()

缺失数据值的Gibbs更新。

update_mean()

均值向量的Gibbs更新。


Last update: Oct 16, 2024