Python 使用统计模型的MANOVA
我正在寻找statsmodels MANOVA实现的示例。我对这件事一无所知。我已经做到了:Python 使用统计模型的MANOVA,python,statsmodels,manova,Python,Statsmodels,Manova,我正在寻找statsmodels MANOVA实现的示例。我对这件事一无所知。我已经做到了: endog, exog = np.asarray(pre_post[feats_list]), np.asarray(pre_post[features]) man = sm.MANOVA(endog,exog).fit() 但是使用.fit()我得到一个错误: NotImplementedError: 如果我在.fit()中输入任何类型的参数,它会告诉我参数太多 TypeError: fit()
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中似乎不是一个流行的包,我在网上找不到任何示例。非常感谢。我刚刚花了大约一个小时理解了他们的文档。设法以正确的格式获取我的数据,只是为了得到一个
未实现的错误
。。。该模块尚未实现,尽管它假装实现了
在编辑中添加:
查看statsmodels glm。它可以非常类似地使用。这是你的电话号码 下面是一个小示例,演示如何使用该函数:
将numpy导入为np
从statsmodels.multivariable.manova导入manova
n_样本=20
n_dim=5
n_类=3
X=np.random.randn(n个样本,n个维度)
y=np.random.randint(n个类,大小=n个样本)
manova=manova(endog=X,exog=y)
打印(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界面的
示例,请参见此。您是否只是在使用fit
方法,而应该使用mv_test
。勾选“不应使用fit
,而应使用mv_test
”,如您所述