Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单向方差分析失败,数据帧在列中具有完全唯一的值_Python_Unique_Statsmodels_Anova - Fatal编程技术网

Python 单向方差分析失败,数据帧在列中具有完全唯一的值

Python 单向方差分析失败,数据帧在列中具有完全唯一的值,python,unique,statsmodels,anova,Python,Unique,Statsmodels,Anova,因此,当我使用statsmodel运行方差分析时,当我发送的数据帧中有任何列具有完全不同的值时,我无法得出结论性结果,例如:区域列具有西、东、南 所以当我们进行方差分析时-单向 mod = smf.ols('y~x', data=dfx).fit() aov_table = sma.stats.anova_lm(mod, typ=1) 我得到一个错误ValueError:shapes(2,3)和(2,)未对齐:3(dim1)!=2(尺寸0)其中打印了下表 table = df

因此,当我使用statsmodel运行方差分析时,当我发送的数据帧中有任何列具有完全不同的值时,我无法得出结论性结果,例如:区域列具有西、东、南

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

mod = smf.ols('y~x', data=dfx).fit()
aov_table = sma.stats.anova_lm(mod, typ=1)
我得到一个错误
ValueError:shapes(2,3)和(2,)未对齐:3(dim1)!=2(尺寸0)
其中打印了下表

   table =     df  sum_sq  mean_sq    F  PR(>F)
    0  0.0     0.0      0.0  0.0     0.0
    1  0.0     0.0      0.0  0.0     0.0, n_rows = 2, test = 'F'
    pr_test = 'PR(>F)', robust = None
我计划删除那些只有唯一值的列。但我想知道,除了这一点,是否还有其他原因导致上述错误

添加dfx(对于失败的列)


您可以通过删除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

dfx是否足够小,可以显示在您的问题中?如果是,请这样做。请按要求添加。
anova_lm
反对这样一个事实,即您正在尝试形成一个线性模型,其中(x,y)的行秩小于x的行秩。您能分享一些关于这方面的阅读材料吗,我不知道这一要求。当我在几十年前学习它时,它来自。好的,所以不是唯一的值导致了问题。但是NaN在其相应的“y”值中的存在。
>>> 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