3

我正在寻找一个 statsmodels MANOVA 实现的示例。我无法为 MANOVA 制作 Statsmodels 网站的正面或反面。我已经做到了:

endog, exog = np.asarray(pre_post[feats_list]), np.asarray(pre_post[features])
man = sm.MANOVA(endog,exog).fit()

但是使用 .fit() 我得到一个错误:

NotImplementedError: 

如果我将任何类型的输入放入 .fit(),它会告诉我参数太多。

TypeError: fit() takes 1 positional argument but 2 were given

我确实阅读了这篇文章并设法复制了相同的错误

man = sm.MANOVA(endog,exog)
man.mv_test()

但那里似乎也没有任何解决方案。

我知道它在编程问题方面有点基础,但我会感谢任何能够提供任何关于如何让 MANOVA 工作以及如何在模型拟合后从模型中获得结果的见解的人。它似乎不是 Python 中流行的包,我在网上找不到任何示例。非常感谢。

4

2 回答 2

4

下面是一个小例子,展示了如何使用该函数:

import numpy as np
from statsmodels.multivariate.manova import MANOVA

n_samples = 20
n_dim = 5
n_classes = 3

X = np.random.randn(n_samples, n_dim)
y = np.random.randint(n_classes, size=n_samples)

manova = MANOVA(endog=X, exog=y)
print(manova.mv_test())

哪个输出

                 Multivariate linear model
============================================================

------------------------------------------------------------
           x0           Value  Num DF  Den DF F Value Pr > F
------------------------------------------------------------
          Wilks' lambda 0.3681 4.0000 16.0000  6.8678 0.0020
         Pillai's trace 0.6319 4.0000 16.0000  6.8678 0.0020
 Hotelling-Lawley trace 1.7170 4.0000 16.0000  6.8678 0.0020
    Roy's greatest root 1.7170 4.0000 16.0000  6.8678 0.0020
============================================================

有关显示如何使用该from_formula界面的示例,请参阅此博客文章

于 2019-12-28T06:36:45.657 回答
1

我只花了大约一个小时来了解他们的文档。设法以正确的格式获取我的数据,只是为了得到一个NotImplementedError......该模块尚未实现,尽管它假装它是......

在编辑中添加:查看 statsmodels glm。它可以非常相似地使用。这是文档

于 2019-02-07T13:08:09.293 回答