单一方差分析无法进行,因为数据帧中的列具有完全独特的值。

2024-05-29 10:04:13 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,当我使用statsmodel运行方差分析时,当我发送的数据帧中有任何列具有完全不同的值时,我无法得出结论性的结果,例如:Region column有West、East、South。在

所以当我们进行方差分析时-单向

mod = smf.ols('y~x', data=dfx).fit()
aov_table = sma.stats.anova_lm(mod, typ=1)

我得到一个错误ValueError: shapes (2,3) and (2,) not aligned: 3 (dim 1) != 2 (dim 0),其中打印了下表。在

^{pr2}$

我计划删除那些只有唯一值的列。但我想知道除了这之外,是否还有其他原因导致上述错误。在

添加dfx(对于失败的列)

     x          y
0    A   5.400412
1    B  -2.919641
2    C  -1.022450
3    D   9.851076
4    E  -0.748245
5    F  -9.003224
6    G   2.018952
7    H   4.205281
8    I  19.259112
9    J  12.923128
10   K  -9.833181
11   L   9.517925
12   M   8.117810
13   N   1.347473
14   O  -1.627433
15   P   0.831698
16   Q  -2.780851
17   R   0.303317
18   S   0.573363
19   T  11.629423
20   U        NaN
21   V        NaN
22   W        NaN
23   x        NaN
24   y        NaN
25   z        NaN
26  a1        NaN
27  a2        NaN
28  a3        NaN

Tags: 数据mod错误columnnanregionwestdim
1条回答
网友
1楼 · 发布于 2024-05-29 10:04:13

您可以通过删除x值的nan行来取得某种进展,如这里的第一行所示。在

>>> df = df.ix[range(20)]
>>> df
    x          y
0   A   5.400412
1   B  -2.919641
2   C  -1.022450
3   D   9.851076
4   E  -0.748245
5   F  -9.003224
6   G   2.018952
7   H   4.205281
8   I  19.259112
9   J  12.923128
10  K  -9.833181
11  L   9.517925
12  M   8.117810
13  N   1.347473
14  O  -1.627433
15  P   0.831698
16  Q  -2.780851
17  R   0.303317
18  S   0.573363
19  T  11.629423
>>> mod = smf.ols('y~x', data=df).fit()
>>> aov_table = sm.stats.anova_lm(mod)
>>> aov_table
            df        sum_sq    mean_sq    F  PR(>F)
x         19.0  1.010356e+03  53.176656  0.0     NaN
Residual   0.0  8.443431e-28        inf  NaN     NaN

相关问题 更多 >

    热门问题