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

6
我希望可以使用Python的标准工具(如numpy、pandas、scipy.stats等)计算线性回归模型的beta或标准化系数
我的一个朋友告诉我在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
如果您有多个独立变量,请参阅此帖子 - steven
1个回答

6

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()

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