バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/
はじめに
前回は、チャートの取得範囲と分析、予測に使用する列を確定した。
チャート取得範囲は2020年10月~2021年9月。
これは米国の事業年度に合わせている。
参照列はClose(終値)とした。
実際に分析、予測するには少しデータ成形してある方が良いので、事前にやってしまう。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
データ整形方針
使用するデータも確定したことだし、
そろそろ一発FFTに掛けてみよう!
ちょい待ち!
何・・・まだなんかあるの?
事前にデータ整形を掛けておいた方が良いかなって思って。
データ整形?
うん。
と言っても、機械学習で言われてるほどのことはやらないけど。
具体的には何するの?
日足終値全体の平均値を取って、それをそれぞれの日足終値から引く。
ってだけ。
なんでそんなことを・・・。
まぁやらなくても何とかなるんだけど、
信号のオフセット除去くらいはやっておいた方が周波数0[Hz]は除去できる。
除去しなくても影響は無いとは思うが、
可能な限り不要な情報は事前に抹殺しておきたい。
言われてみると、振動解析でも似たようなことしたことあるなー。
あれは、周波数0[Hz]成分の除去だったのか???
まぁ似たようなことをやってる可能性は高いな。
それをMATLABかPythonでやる感じ?
それでも良いけど、csvだからExcelでやっつけてしまおう。
データ整形
やることはシンプル。
- 平均値を算出
- 各終値から平均値を引いた値を格納する列を用意。
- その列の値だけをテキストエディタにコピペしてcsvとして保存。
なんか普通にMATLABでもできそうだなー。
全部が数値なら簡単なんだけど、列の文字列とかが入ってるとちょっと扱い難くはなるな。
え?そうなの?
じゃー、やっぱり事前にやっておこう。
PythonはPandasとかで一撃で処理できたりするが、
MATLABはversionによってはcsvの対処が難しいことがあるんでね。
今回はMATLABとPythonの両方でやってみようとしている感じのタイトルだから、
MATLAB都合の問題があるなら、そうそうに排除してしまった方が良さげだね。
とりあえずExcelの画面を出しておく。
まぁ確かに対した作業ではなかったな。
ちなみに、グラフ表示するとこんな感じだな。
ホントずっと右肩上がりだ・・・。
(そうそうに大半の資産をぶっこんでおきたい・・・。)
まとめ
まとめだよ。
- データ整形方針。
- 単純に平均値を出して、各要素から平均値を引く。
- バイアス除去になり、周波数0[Hz]が無くなる。
- MATLABのVersionによってはcvs読み込みに難点があるので、可能な限りシンプルなデータに整形しておく。
- グラフ表示してみた。
- ずっと右肩上がり。
- 本来であれば、一回投資したら放置が正解。
バックナンバーはこちら。
コメント