首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的ANCOVA与Scipy/Numpy统计

Python中的ANCOVA与Scipy/Numpy统计
EN

Stack Overflow用户
提问于 2010-05-26 20:58:56
回答 1查看 13.5K关注 0票数 10

我想知道一种用Python进行方差分析(协方差分析)的方法。这基本上是回归线的统计比较。我知道Python可以做方差分析,也可以做与Scipy.stats拟合的回归曲线。如果可能的话,我不知道如何把它们组合在一起才能得到一个有效的方差分析。

EN

回答 1

Stack Overflow用户

发布于 2010-06-30 07:18:54

ANCOVA可以通过回归来完成,在设计矩阵中使用虚拟变量来表示依赖于范畴变量的效果。

一个简单的示例是在线程/线程/aa31b08f3df1a69?hl=en使用来自scikits.statsmodels的OLS类。

设计矩阵xg的相关部分包括组号/标签,x1是连续解释变量。

代码语言:javascript
运行
复制
>>> dummy = (xg[:,None] == np.unique(xg)).astype(float)
>>> X = np.c_[x1, dummy[:,1:], np.ones(nsample)]

估计模型

代码语言:javascript
运行
复制
>>> res2 = sm.OLS(y, X).fit()
>>> print res2.params
[ 1.00901524  3.08466166 -2.84716135  9.94655423]
>>> print res2.bse
[ 0.07499873  0.71217506  1.16037215  0.38826843]
>>> prstd, iv_l, iv_u = wls_prediction_std(res2)

“假设所有组都有相同的截距”

代码语言:javascript
运行
复制
>>> R = [[0, 1, 0, 0],
...      [0, 0, 1, 0]]

>>> print res2.f_test(R)
<F test: F=array([[ 91.69986847]]), p=[[  8.90826383e-17]],
df_denom=46, df_num=2>

强烈拒绝,因为拦截的差异很大。

更新(两年半后):

scikits.statsmodels已重命名为statsmodels

关于这个问题:

随着状态模型的最新发布,使用公式来指定分类效果和交互效果更为方便。statsmodels使用帕齐处理公式并创建设计矩阵。

更多信息可在https://stackoverflow.com/a/19495920/333700中的statsmodels文档链接中获得。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2916760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档