忽略 Python 的 statsmodels 中的 NaN

Posted

技术标签:

【中文标题】忽略 Python 的 statsmodels 中的 NaN【英文标题】:Ignore NaNs in Python's statsmodels 【发布时间】:2018-06-22 16:19:18 【问题描述】:

有没有一种通用的方法可以忽略 statsmodels 中的 NaN?

我正在使用 statsmodels 的 AnovaRM 函数对各种数据集运行重复测量方差分析。不同行的不同列中存在缺失值。运行 AnovaRM 时,显然会为 F 值和 p 值返回 nan

我试过了

aovrm = AnovaRM(df3, 'RT', 'id', within=['iv'], missing = 'drop')

正如Ignoring missing values in multiple OLS regression with statsmodels 中所建议的那样,但这似乎不适用于AnovaRM

到目前为止,我只是简单地排除了缺少数据点的受试者,但这 a) 真的不是重点,b) 对于许多数据集来说根本不可行。

【问题讨论】:

【参考方案1】:

来自 AnovaRM 文档字符串

“此实现目前仅支持完全平衡的设计。”

https://github.com/statsmodels/statsmodels/blob/master/statsmodels/stats/anova.py#L413 (AnvaRM 尚未添加到在线文档中。)

因此模型的一般缺失选项不适用于 AnovaRM。这主要是因为重复测量方差分析的限制性假设。

作为替代方案,文献中的一般建议是使用混合效应模型,该模型可在 MixedLM 中的 statmodels 中使用。 其他选项是使用 GEE 或 OLS 的固定效果。

【讨论】:

以上是关于忽略 Python 的 statsmodels 中的 NaN的主要内容,如果未能解决你的问题,请参考以下文章

在 statsmodels 中使用卡尔曼滤波器时忽略 state_cov

在sublime文本CLI中运行python时,没有名为“statsmodels”的模块

python statsmodels - 回归中的二次项

Python:多元线性回归:statsmodels.formula.api.ols()

在 Python 中使用简单线性回归包的不同结果:statsmodel.api vs sklearn

Windows下Python安装numpy+mkl,Scipy和statsmodels