这可能是一个愚蠢的问题,但我无法弄清楚如何将使用 StatsModels MICE 估算的值实际返回到我的数据中。我有一个数据框(dfLocal),其中包含多年来五个相邻站点(LOC1:LOC5)的每小时温度记录,我想估算任何给定站点的缺失数据。按照我的例子:
imp = mice.MICEData(dfLocal)
fml = 'LOC1 ~ LOC2 + LOC3 + LOC4 + LOC5'
mice = mice.MICE(fml, sm.OLS, imp)
results = mice.fit(10, 10)
print(results.summary())
dfLocal.dropna(axis=0, how='all', inplace=True)
imp.data = imp.data.set_index(dfLocal.index)
# In this case I only want to fill one specific set of missing data
# hence gap_start and gap_end
dfLocal.loc[gapStart:gapEnd, 'LOC1'] = imp.data[fillSite]
我对 MICE 的理解大致是,缺失值会被多次估算,然后结合起来从众多值中找到最佳值。我发现从上述代码中实际获得任何数字的唯一方法是使用,imp.data但我担心这可能只是它们组合之前的个人估算之一?但是,我似乎可以从拟合模型 ( results) 中得到总结?
我远不是统计学家(也不是程序员),所以我一直在阅读 mouse.MICE 的代码和一般 MICE 应用程序的其他资源,但我会尽可能地感谢任何有关这方面的指导。找不到太多关于在线使用 statsmodels 的 MICE 的信息。通常我会在 Gist 上发布一些数据,但全套数据有点大。就是说,如果你认为它会有所帮助,我会上传它。
谢谢!