如何解决Statsmodels 方差分析/Python:ValueError:约束矩阵中必须至少有一行
我有一个非常大的数据框(12,000 行 x 95 列),我想遍历每一列并运行方差分析,将结果附加到列表中。
results = []
for i in df.columns[1:]:
mod = ols('var ~ C({})'.format(i),data = df).fit()
aov = sm.stats.anova_lm(mod,typ = 2)
results.append(aov)
我分别在几列上运行了相同的代码,并且还使用了此循环中的前 5 列,并且都有效。但是,当我在整个数据集上运行时,出现此错误:
ValueError: must have at least one row in constraint matrix
当它处理前 5 列时,我认为这与我的数据有关,但我不确定是什么以及在哪里。
我对 python 不是很有经验,但我认为错误出现在此代码块 (https://github.com/pydata/patsy/blob/master/patsy/constraint.py) 的第 50 行附近
解决方法
经过大量的反复试验,我发现了问题。
出于某种原因,超过 64 列的数据框将不起作用。将我的原始数据帧拆分为两个并分别运行它们解决了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。