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

Dav*_*vid 5 python statistics numpy scipy linear-regression

我想使用Python中的标准工具(numpy,pandas,scipy.stats等)来计算线性回归模型的beta或标准化系数

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

lm(scale(y) ~ scale(x))
Run Code Online (Sandbox Code Playgroud)

目前,我正在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)
Run Code Online (Sandbox Code Playgroud)

有没有更直接的函数可以在Python中计算该数字?

小智 5

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()
Run Code Online (Sandbox Code Playgroud)