python - 使用 statsmodel 从 MANOVA 测试结果中仅提取 p 值
问题描述
我已经使用 statsmodel 运行了 MANOVA 测试,如下所示:
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.7762 5.0000 28.0000 1.6148 0.1887
Pillai's trace 0.2238 5.0000 28.0000 1.6148 0.1887
Hotelling-Lawley trace 0.2884 5.0000 28.0000 1.6148 0.1887
Roy's greatest root 0.2884 5.0000 28.0000 1.6148 0.1887
============================================================
我的问题是,我如何只提取 p 值?在这篇文章之后,我尝试过:
print(manova.mv_test().results['x0']['stat'].values['Hotelling-Lawley trace',4])
但我得到了索引错误,而且我不确定我是否理解它背后的逻辑。
IndexError:只有整数、切片 (
:
)、省略号 (...
)、numpy.newaxis (None
) 和整数或布尔数组是有效的索引
我的最终目标是仅将 p 值保存为新变量,例如从表中“提取”p 值。
也许了解这个表是如何生成的也可能会有所帮助,因为我不确定这是什么(它不是熊猫而且看起来不像矩阵,所以我怎么能从那里切任何东西?)
解决方案
我能够用这条线解决同样的问题,在你的情况下应该是:
x = pd.DataFrame((manova.mv_test().results['x0']['stat']))
现在您可以选择任何结果。
推荐阅读
- android - 在android中打开通知时页面不刷新
- javascript - 如何从 JavaScript 中的外部代码中捕获所有内部错误?
- sql - 如何在特定条件下划分每条记录的金额
- mysql - MySQL 在 case 子句中使用子查询的输出
- exception - ARM 编译器如何处理运行时错误?
- python - Python:类和json之间的映射
- azure - 深度传感器的输出有线条吗?
- derby - 一条sql语句中可以存在多个join吗
- reactjs - 如何在不导入整个 Font Awesome 包的情况下使用图标名称作为字符串导入 Font Awesome 图标?
- azure - 应用程序网关前面的 Azure 前门