バックナンバーはこちら。
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読み込みに難点があるので、可能な限りシンプルなデータに整形しておく。
- グラフ表示してみた。
- ずっと右肩上がり。
- 本来であれば、一回投資したら放置が正解。
バックナンバーはこちら。
コメント