我有一个包含13列的数据集,我想使用statsmodels.stats.multicomp.MultiComparison模块对其中一列执行多重比较ANOVA。但是我收到了我不理解的类型错误消息。
我在这里编写的相同代码可在其他机器上使用,我尝试更新所有python和conda模块,并尝试再次执行该代码,但结果相同。
import statsmodels.api as sm
multi_comp = sm.stats.multicomp.MultiComparison(data=df['col1'],groups=data['category'])
result_string = multi_comp.tukeyhsd(alpha=0.05)
print(result_string)
我还尝试了其他方法,例如pairwise_tukeyhsd(),该方法也仍然存在相同的错误。除了这个multicomp模块之外,我其余的代码也可以正常工作。
TypeError Traceback (most recent call last) in module<module>
1 multi_comp = sm.stats.multicomp.MultiComparison(data=data['col1'], groups=data['category'])
----> 2 result_string = multi_comp.tukeyhsd()
3 result_string
~\Anaconda3\lib\site-packages\statsmodels\sandbox\stats\multicomp.py in tukeyhsd(self, alpha)
1011 np.round(res[4][:, 0], 4),
1012 np.round(res[4][:, 1], 4),
-> 1013 res[1]),
1014 dtype=[('group1', object),
1015 ('group2', object),
~\Anaconda3\lib\site-packages\statsmodels\compat\python.py in lzip(*args, **kwargs)
60
61 def lzip(*args, **kwargs):
---> 62 return list(zip(*args, **kwargs))
63
64 def lmap(*args, **kwargs):
TypeError: zip argument #4 must support iteration
这可能是由于数据中category
的可能值很少。如果只有2个可能的类别,MultiComp将不起作用。