使用Python计算线性回归标准化系数(beta)

时间:2015-11-25 10:20:29

标签: python numpy scipy statistics linear-regression

我想使用Python中的标准工具(numpy,pandas,scipy.stats等)计算线性回归模型的beta or standardized coefficient

我的一位朋友告诉我,这是在R中用以下命令完成的:

lm(scale(y) ~ scale(x))

目前,我正在用Python计算它:

from scipy.stats import linregress
from scipy.stats.mstats import zscore

(beta_coeff, intercept, rvalue, pvalue, stderr) = linregress(zscore(x), zscore(y))
print('The Beta Coeff is: %f' % beta_coeff)

在Python中计算这个数字是否有更直接的功能?

1 个答案:

答案 0 :(得分:3)

Python是一种通用语言,但R专门用于统计。几乎总是会花费更多的代码来实现python中相同的(统计)目标,纯粹是因为R一旦启动就准备好适应回归模型(使用lm)。

对你的问题的简短回答是不 - 你的python代码已经很简单了

那就是说,我认为与你的R代码相近的是

import statsmodels.api as sm
from scipy.stats.mstats import zscore

print sm.OLS(zscore(y), zscore(x)).fit().summary()