株価の時系列データをフーリエ解析してみた④ 〜トレンド除去〜
皆様、寒くなってきましたねー☃️ こんな時はあったかい家でお鍋でも食べてあったまりましょ🍲
こんにちは、データサイエンティストひろき🐶です。
株価のデータを見ていて、下記のような操作)トレンド成分の除去をしたくなったことありませんか? 周期性をざっくり把握するのに便利な操作です。 Matlabではたった1行でトレンド除去ができるのでとても便利です。 https://jp.mathworks.com/help/matlab/ref/detrend.html
そこで今回のブログはズバリ
- たった1行でトレンド除去する方法
初めに、リンクをクリックいただき、一票いただけると幸いです✨
にほんブログ村にほんブログ村
優しく解説していきますので、ご安心ください🙂
その一行とは、ズバリ、こちらです!
D = detrend(Y);
そう、Yに元データを入れるだけで、トレンド除去したデータDが帰ってきます。 すごく直感的で素敵💖
具体例
それでは具体的に株価データを使って見ていきましょう。 まずは株価データをダウンロードします。今回は日経平均のデータを使います。 Yahoo financeから株価データをダウンロードする方法はこちらの前回の記事を参考にしてください。
Matlabコード
それでは全体のコードを紹介します。 下記の通り非常にシンプルなコードで計算できます。
%株価データをダウンロード
data = hist_stock_data('09112010','09112021','^N225');
%時間データと終値を変数yとtに格納
y=data.Close;
t=data.Date;
%欠損データがある場合は補間してYにデータを格納
[Y,TF] = fillmissing(y,'linear','SamplePoints',t);
%Yからトレンド(1次成分)を除去したデータ
D = detrend(Y);
%グラフの作成
plot(t,Y)
hold on
plot(t,D)
hold on
plot(t,y-D,":k")
legend("Input Data","Detrended Data","Trend","Location","northwest")
ylabel('株価 [Yen]')
出てくるグラフはこちらです。
トレンド成分が除去されて、周期が見やすくなりましたね😉
最後にトレンド除去に関する関連Youtubeをご紹介しておきます。 機械学習の前処理としてもこの関数が利用できることがわかります^^
それでは風邪に気をつけて、あったかくして、お過ごしください🍵🌟
最後まで読んでくださりありがとうございました😊
ひろき🐶