我有以下时间序列由get_DP()输出:
DP
date
1900-01-31 0.0357
1900-02-28 0.0362
1900-03-31 0.0371
1900-04-30 0.0379
... ...
2015-09-30 0.0219
[1389 rows x 1 columns]
注意:从1900年到2015年,每个月都有一个DP值,我只是将它们排除在外以避免混乱
我想在此DataFrame上使用简单回归来计算alpha&这个金融变量的beta(截距和系数研究)。我有以下代码:
reg = linear_model.LinearRegression()
df = get_DP()
df=df.reset_index()
reg.fit(df['date'].values.reshape((1389,1)), df['DP'].values)
print("beta: {}".format(reg.coef_))
print("alpha: {}".format(reg.intercept_))
plt.scatter(df['date'].values.reshape((1389,1)), df['DP'].values, color='black')
plt.plot(df['date'].values.reshape((1389,1)), df['DP'].values, color='blue', linewidth=3)
但是,我相信我的x轴数据(日期)的重塑会使整个回归变得混乱,因为情节看起来像这样:
我犯了错误吗?我不完全确定用于回归w / DataFrame的最佳工具是什么,因为pandas用0.20删除了他们的OLS函数。
答案 0 :(得分:2)
试试这个
reg = linear_model.LinearRegression()
df = get_DP()
df=df.reset_index()
reg.fit(df.date.values.reshape(-1, 1), df.DP.values.reshape(-1, 1))
print("beta: {}".format(reg.coef_))
print("alpha: {}".format(reg.intercept_))
plt.scatter(df.date.dt.date, df.DP.values, color='black')
plt.plot(df.date.dt.date, df.DP.values, color='blue', linewidth=3)