我想使用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中计算这个数字是否有更直接的功能?
答案 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()