How can I draw a linear regression line in this graph?

戏子无情 提交于 2019-12-01 10:46:26

You can use scikit-learn to compute linear regression.

Add the following to the bottom of your file:

# Create dataframe
df = pd.DataFrame(data=nomalized_return)

# Resample by day
# This needs to be done otherwise your x-axis for linear regression will be incorrectly scaled since you have missing days.
df = df.resample('D').asfreq()

# Create a 'x' and 'y' column for convenience
df['y'] = df['Adj Close']     # create a new y-col (optional)
df['x'] = np.arange(len(df))  # create x-col of continuous integers

# Drop the rows that contain missing days
df = df.dropna()

# Fit linear regression model using scikit-learn
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X=df['x'].values[:, np.newaxis], y=df['y'].values[:, np.newaxis])

# Make predictions w.r.t. 'x' and store it in a column called 'y_pred'
df['y_pred'] = lin_reg.predict(df['x'].values[:, np.newaxis])

# Plot 'y' and 'y_pred' vs 'x'
df[['y', 'y_pred', 'x']].plot(x='x')  # Remember 'y' is 'Adj Close'

# Plot 'y' and 'y_pred' vs 'DateTimeIndex`
df[['y', 'y_pred']].plot()

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!