忽略 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.formula.api.ols()