如何从statsmodels.api中提取回归系数?
How to extract the regression coefficient from statsmodels.api?
result = sm.OLS(gold_lookback, silver_lookback ).fit()
得到结果后,如何得到系数和常数?
换句话说,如果
y = ax + c
如何获取值 a
和 c
?
您可以使用拟合模型的 params
属性 来获取系数。
例如下面的代码:
import statsmodels.api as sm
import numpy as np
np.random.seed(1)
X = sm.add_constant(np.arange(100))
y = np.dot(X, [1,2]) + np.random.normal(size=100)
result = sm.OLS(y, X).fit()
print(result.params)
将打印一个 numpy 数组 [ 0.89516052 2.00334187]
- 分别估计截距和斜率。
如果您需要更多信息,可以使用包含 3 个带有模型描述的详细表格的对象 result.summary()
。
抄袭这个答案,似乎 result.summary() 是一组表,您可以将其导出为 html 然后使用 Pandas转换为数据框,这将允许您直接索引所需的值。
因此,对于您的情况(将上述 link 的答案放在一行中):
df = pd.read_html(result.summary().tables[1].as_html(),header=0,index_col=0)[0]
然后
a=df['coef'].values[1]
c=df['coef'].values[0]
添加有关@IdiotTom 回答的详细信息。
您可以使用:
head = pd.read_html(res.summary2().as_html())[0]
body = pd.read_html(res.summary2().as_html())[1]
不太好,但信息在那里。
result = sm.OLS(gold_lookback, silver_lookback ).fit()
得到结果后,如何得到系数和常数?
换句话说,如果
y = ax + c
如何获取值 a
和 c
?
您可以使用拟合模型的 params
属性 来获取系数。
例如下面的代码:
import statsmodels.api as sm
import numpy as np
np.random.seed(1)
X = sm.add_constant(np.arange(100))
y = np.dot(X, [1,2]) + np.random.normal(size=100)
result = sm.OLS(y, X).fit()
print(result.params)
将打印一个 numpy 数组 [ 0.89516052 2.00334187]
- 分别估计截距和斜率。
如果您需要更多信息,可以使用包含 3 个带有模型描述的详细表格的对象 result.summary()
。
抄袭这个答案
因此,对于您的情况(将上述 link 的答案放在一行中):
df = pd.read_html(result.summary().tables[1].as_html(),header=0,index_col=0)[0]
然后
a=df['coef'].values[1]
c=df['coef'].values[0]
添加有关@IdiotTom 回答的详细信息。
您可以使用:
head = pd.read_html(res.summary2().as_html())[0]
body = pd.read_html(res.summary2().as_html())[1]
不太好,但信息在那里。