【问题标题】:Statsmodels ANOVA/Python: ValueError: must have at least one row in constraint matrixStatsmodels ANOVA/Python:ValueError:约束矩阵中必须至少有一行
【发布时间】:2021-02-19 01:49:55
【问题描述】:

我有一个非常大的数据框(12,000 行 x 95 列),我想遍历每一列并运行 ANOVA,将结果附加到列表中。

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 不是很有经验,但我认为错误出现在此代码块的第 50 行左右 (https://github.com/pydata/patsy/blob/master/patsy/constraint.py)

【问题讨论】:

    标签: python statsmodels valueerror anova


    【解决方案1】:

    经过大量的反复试验,我发现了问题。

    由于某种原因,超过 64 列的数据框将无法工作。将我的原始数据框分成两部分并分别运行它们可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-02
      • 2022-06-16
      • 2013-07-25
      • 1970-01-01
      • 2014-01-07
      • 2021-01-28
      • 1970-01-01
      • 2012-07-12
      相关资源
      最近更新 更多