数据和描述性结果
若不存在缺失,则无需选择直接点击开始填补则可得到原数据;若仅存在二值缺失或连续缺失,则只需要在左侧选择对应缺失方法即可。 说明
- 状态为missing,则该变量存在缺失,可以填补。
- 状态为invalid,则该变量存在缺失,但不能填补,需要重新传入数据。
- 状态为complete,则该变量完整,无需操作。
Output 2. 填补结果
              
            
多重填补(Multiple Imputation)是一种常用的缺失值处理方法,它通过多次模拟生成缺失值的估计值,并取平均值来减少估计偏差,提高数据分析结果的可靠性。[1]
链式方程多重填补(Multiple Imputation by Chained Equations,以下简称MICE)是一种通过迭代生成多个缺失值的估计值,并利用每次迭代的结果来更新模型,最终得到缺失值的估计方法。相较于传统的多重填补方法,MICE方法能够更准确地估计缺失值,特别是在处理复杂数据和多个缺失变量时效果更佳。[2]
本方法基于链式方程多重填补方法,对存在缺失的数据进行多重填补,并输出多个完整数据集方便用户进行后续分析。
针对本模块,我们规定下述通用的符号表示变量(variable)
MICE方法是一种迭代算法,它的基本思想是将缺失数据问题转化为一个反复迭代求解的过程。该方法首先将含有缺失值的数据集分成两部分:一部分是完整的变量,另一部分是存在缺失值的变量。然后,对缺失值变量进行填补,填补的过程是通过迭代来实现的。
在MICE方法中,对每个缺失值变量都建立一个子模型,通过预测该变量的值来填补缺失值。这些子模型的建立方式可以根据数据类型来选择。在每次迭代中,MICE方法将所有的子模型串联起来,形成一个链式方程。这个方程的顺序通常是按照缺失值变量的顺序排列的。在每个迭代周期中,MICE方法会按照链式方程的顺序,依次估计每个缺失值变量的值,然后将这个估计值作为下一个缺失值变量的输入,继续估计下一个缺失值变量的值,直到所有的缺失值变量都被估计出来。
MICE方法的迭代过程会持续多次,直到估计值的变化足够小或者达到了预设的迭代次数。在每次迭代结束后,MICE方法会生成一个完整的数据集,其中所有的缺失值变量都被估计为一个具体的数值。这个过程会重复多次,每次生成一个完整的数据集,最终会得到多个完整的数据集。这些完整的数据集可以用于后续的统计分析。
对每一个变量 \(Y_j\) , \(j=1,...,p\) ,选择一个填补模型 \(P(Y_j^{mis}|Y_j^{obs},Y_{-j},R)\).
对每一个 \(j\) , 从 \(Y_j^{obs}\) 中随机抽取值作为 \(\hat{Y_j^0}\) .
对每一轮填补 \(t=1,...,M\) ,重复.
对每一个变量 \(j=1,...,p\) ,重复.
定义 \(\hat Y_{-j}^t=(\hat Y_{1}^t,...,\hat Y_{j-1}^t,\hat Y_{j+1}^{t-1},...,\hat Y_{p}^{t-1})\) 是目前除了 \(Y_j\) 的完整数据.
选取 \(\hat \phi_j^t \sim P(\phi_j^t|Y_j^{obs},\hat Y_{-j}^t,R)\) .
选取当前填补值 \(\hat{Y_j^t} ~ P(Y_j^{mis}|Y_j^{obs},\hat Y_{-j}^t, R, \hat \phi_j^t)\) .
停止重复 \(j\) .
停止重复 \(t\) .
由上述介绍可知,利用MICE方法填补数据集需要对每一个需要填补的变量建立一个填补模型。在本方法中,简化为对二值变量和连续变量分别选择一个填补模型,即所有含缺失值的二值变量使用同一个填补模型,所有含缺失值的连续变量选择一个填补模型。
利用数据集中的非缺失部分中拟合逻辑回归模型,从其后验分布中得到回归系数向量,计算每个缺失值的预测分数,并分别与从 \(U(0,1)\) 随机抽取的值比较,再进行填补。
从数据集中的非缺失部分中抽取1个bootstrap样本,拟合Lasso逻辑回归模型,从其后验分布中得到回归系数向量,计算每个缺失值的预测分数,并分别与从 \(U(0,1)\) 随机抽取的值比较,再进行填补。
对于每个缺失值,找到与其最相似的 \(k\) 个(默认 \(k=5\))个完整值,其中相似度是指变量间的欧氏距离,从这 \(k\) 个最相似的完整值中,随机选取一个值来替代缺失值。其中,被选中的完整值越靠近缺失值,被选中的概率就越大。
通过递归分割拟合分类或回归树,对于每个缺失值,根据拟合的树找到它们所属的终端节点,在节点成员中进行随机抽样,并将抽样得到的观测值作为填补值。
从数据集中的非缺失部分中抽取 \(k\) 个bootstrap样本,使用随机森林方法建立 \(k\) 个决策树,并将缺失值分配到每个决策树的叶子节点中,最终从每个叶子节点的样本中随机选择一个非缺失值作为填补值。
利用数据集中的非缺失部分拟合一个贝叶斯线性回归模型,考虑参数不确定性,从其后验分布中抽取多个回归系数向量,并考虑噪声,最终结合预测值得到填补值。
从数据集中的非缺失部分中抽取1个bootstrap样本,用Lasso回归拟合模型,用得到的回归系数,原始(非bootstrap)数据、和估计误差方差定义的预测分布中随机抽取填补值。
利用数据集中的非缺失部分计算线性回归权重,并将预测值作为缺失数据的填补值。
对于每个缺失值,找到与其最相似的 \(k\) 个(默认 \(k=5\))个完整值,其中相似度是指变量间的欧氏距离,从这 \(k\) 个最相似的完整值中,随机选取一个值来替代缺失值。其中,被选中的完整值越靠近缺失值,被选中的概率就越大。
通过递归分割拟合分类或回归树,对于每个缺失值,根据拟合的树找到它们所属的终端节点,在节点成员中进行随机抽样,并将抽样得到的观测值作为填补值。
从数据集中的非缺失部分中抽取 \(k\) 个bootstrap样本,使用随机森林方法建立 \(k\) 个决策树,并将缺失值分配到每个决策树的叶子节点中,最终从每个叶子节点的样本中随机选择一个非缺失值作为填补值。
用以下符号表示变量:
对于上一步中得到的 \(m\) 个完整数据集,我们都按照以下方式进行分析,并得到相应的估计目标:
$$\mathbb E[Y(1)-Y(0)]$$
估计方法为逻辑斯蒂回归(logistic regression)。
$$\mathbb E[Y(1)-Y(0)]$$
使用线性回归(linear regression)进行协变量调整,并输出标准差。
当 \(M\) 个完整数据集都进行了分析后,我们使用鲁宾规则(Rubin’s rule)来组合得到的估计目标。对 \(t=1,...,M\) 个完整数据集,我们记对其分析得到的平均因果作用集合为 \(ate\) ,标准差集合 \(se\) 。我们组合得到如下的分析结果:
取 \(M\) 个完整数据集所得到的平均因果作用的平均值,即: $$\hat{ate}=E[ate]$$
总方差 \(T\) 按如下估计: 组内方差:$U = E[se^{2}]$, 组间方差:$B = V[est}$, 从而得到总方差 $$\hat{T}= U + (1 + (1/M)) * B.$$
从而,标准差 \(se\) 的估计为: $$\hat{se}=\sqrt{T}$$
按照如下方式进行自由度的计算: $$r=\frac{B+B/M}{\bar{U}},$$ $$\nu_{old}=\frac{M-1}{\lambda^2},$$ $$\nu_{com}=n-k,$$ 其中 \(n\) 为每个完整数据集的样本量, \(k\) 为分析模型中的参数个数, $$\nu_{obs}=\frac{\nu_{com}+1}{\nu_{com}+3} \nu_{com}(1-\lambda),$$ 从而得到: $$\nu=\frac{\nu_{old} \nu_{obs}}{\nu_{old}+\nu_{obs}},$$ 并可以利用自由度计算t分布的95%分位数,进而得到95%置信区间。
\(t\) 值:$$\hat{ate}/\hat{T},$$ 从而可以结合上述得到的自由度计算得到 \(p\) 值。
[1] 1. Rubin DB, editor. Multiple Imputation for Nonresponse in Surveys [Internet]. Hoboken, NJ, USA: John Wiley & Sons, Inc.; 1987. (Wiley Series in Probability and Statistics). http://doi.wiley.com/10.1002/9780470316696
[2] Van Buuren S, Brand JPL, Groothuis-Oudshoorn CGM, Rubin DB. Fully conditional specification in multivariate imputation. Journal of Statistical Computation and Simulation. 2006 Dec;76(12):1049–64. http://www.tandfonline.com/doi/abs/10.1080/10629360600810434