用什么来进行多重相关性分析?

8
我正在尝试使用Python计算响应数组和一组预测数组之间的多元线性回归和多元相关性。我看到了一个非常简单的计算多元线性回归的例子,这很容易。但是如何使用statsmodels计算多元相关性呢?或者使用其他替代方法。我猜我可以使用rpy和R,但如果可能的话,我更愿意留在Python中。
编辑【澄清】: 考虑到像这里描述的情况:http://sphweb.bumc.bu.edu/otlt/MPH-Modules/BS/BS704-EP713_MultivariableMethods/ 除了回归系数和其他回归参数之外,我还想计算预测因子的多个相关系数。

我应该使用广义线性模型(GLM)吗? - Pa_
也许您可以稍微详细地解释一下您究竟想要做什么。 - ev-br
所以,想象一下像这里描述的情况:http://sph.bu.edu/otlt/lamorte/EP713/Web_Pages/EP713_Regression/EP713_Regression3.html除了回归系数和其他回归参数之外,我还想计算预测变量的多个相关系数。 - Pa_
@Paul,如果您将信息作为评论而不是编辑问题,那会更好。 - bmu
也许更新一下链接?虽然我知道我要找什么,但这样做会更好。 - benten
1个回答

17

你可以使用statsmodels和pandas来完成这个任务。以下代码可以帮助你入门:

import pandas
import statsmodels.api as sm
from statsmodels.formula.api import ols

data = pandas.DataFrame([["A", 4, 0, 1, 27], 
                         ["B", 7, 1, 1, 29], 
                         ["C", 6, 1, 0, 23], 
                         ["D", 2, 0, 0, 20], 
                         ["etc.", 3, 0, 1, 21]], 
                         columns=["ID", "score", "male", "age20", "BMI"])
print data.corr()

model = ols("BMI ~ score + male + age20", data=data).fit()
print model.params
print model.summary()

请查看文档:

http://statsmodels.sourceforge.net/devel/

http://pandas.pydata.org/

编辑: 我不熟悉术语“多重相关系数”,但我认为这只是多元回归模型的R-squared的平方根,对吧?

print model.rsquared**.5
print model.rsquared_adj**.5

这是您想要的吗?


+1,公式API在0.4版本中可用吗?还是你在使用开发版本? - bmu
它是在0.5版中添加的。可以在pypi上获取0.5预发布版本,其中包含公式框架。最终版本应该会在年底之前发布,希望如此。 - jseabold
我使用这种方法得到了一个荒谬的高相关系数,尽管没有强烈的成对相关性。有人有什么建议吗?可能出了什么问题? - Chase Denecke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接