私は時系列データの線形回帰直線を得ることができました。だから私は、Pythonから上に描画次のプロット/ラインを持っている:Python - 進行中の1の計算線形回帰直線からの標準偏差
私はもともとcsvファイルから価格/時系列データをインポートし、次のコードで、この回帰直線を得た:
f4 = open('C:\Users\cost9\OneDrive\Documents\PYTHON\TEST-ASSURANCE FILES\LINEAR REGRESSION MULTI TREND IDENTIFICATION\ES_1H.CSV')
ES_1H = pd.read_csv(f4)
ES_1H.rename(columns={'Date/Time': 'Date'}, inplace=True)
ES_1H['Date'] = ES_1H['Date'].reset_index()
ES_1H.Date.values.astype('M8[D]')
ES_1H_Last_300_Periods = ES_1H[-300:]
x = ES_1H_Last_300_Periods['Date']
y = ES_1H_Last_300_Periods['Close']
x = sm.add_constant(x)
ES_1H_LR = pd.ols(y = ES_1H_Last_300_Periods['Close'], x = ES_1H_Last_300_Periods['Date'])
plt.scatter(y = ES_1H_LR.y_fitted.values, x = ES_1H_Last_300_Periods['Date'])
私が探しているのは、回帰直線から1標準偏差をプロット/識別できることです(上記の図を参照)。上記のコードの大部分は、回帰直線をプロットできるようにデータを適合させるだけです - 日付/時刻データを変更してolsの式で機能し、過去300期間のデータをカットするなどです。しかし、私は線形回帰によって描かれた線から1標準偏差を得る方法がわかりません。黄色の線が離れ回帰線から1つの標準偏差であることを...
:
は、理想的には私が探しているものを次のようになります。誰もがここで線形回帰直線から1標準偏差を取得する方法を知っていますか?参考のため、ここでは線形回帰の統計情報は、次のとおりです。
編集:あなたはこのようにそれを行うことができます
plt.scatter(y = ES_1D_LR.y_fitted.values, x = ES_1D_Last_30_Periods['Date'])
plt.scatter(y = ES_1D_Last_30_Periods.Close, x = ES_1D_Last_30_Periods.Date)
plt.scatter(y = ES_1D_LR.y_fitted.values - np.std(ES_1D_LR.y_fitted.values), x = ES_1D_Last_30_Periods.Date)
plt.scatter(y = ES_1D_LR.y_fitted.values + np.std(ES_1D_LR.y_fitted.values), x = ES_1D_Last_30_Periods.Date)
plt.show()
すばらしい、ありがとう、私のデータのために働くものに似ています。だから私は上記と同様にプロットされた '回帰チャネル'を持っていますが、特定のxポイントで回帰直線の値を取得する方法を知っていますか?たとえば、あなたの例では、x = 60の回帰直線の値を探しています(グラフで約35のように見えます)。 –
@ColeStarbuckのようなものです: 'y [np.where(x == 60)[0] [0]]'? – MaxU
私は現在、z = ES_1D ['日付'] [ - 1:] n = z * 1.8758 + 1865.8121を使用しています。ここでzは私に最後の日付を与えてから、インターセプト+ z *スロープで2310.38これはグラフに従って右に見えます。私はそれが動作していると思う、ちょうどそれが意味をなさないことを確認したいと思います –