
残念なお知らせです 未来永劫 株価を予測することが可能!? 回帰実行編
ようやく回帰による日経平均株価の予測を行う環境が整いました
回帰とは、連続する入力値に対して、次の値を予測することを意味します。
今回私が作成したAIモデルにおける回帰は、次の通りです。
ある時点の日経平均株価(始値、高値、安値、終値)をAIモデルに入力すると、以後はAIモデル単体で日経平均株価(始値、高値、安値、終値)の予測をし続けることが可能となります。
期待通りのものが完成すれば凄いことになるのですが、今回はその予測精度を確認しました。
具体的には、AIモデルの予測した日経平均株価と実際の日経平均株価を比較した結果を紹介します。
ちなみに、私が作成した回帰による日経平均株価を予測するAIモデルに関しては、下記の記事を参照ください。
また、回帰による株価の予測をし続けるための推論を実行するPythonプログラムに関しては、下記の記事を参照ください。
回帰による日経平均株価と実際の株価との比較結果
回帰による日経平均株価と実際の株価とを比較した期間は、2024年2月1日から2024年5月31日までとなります。
学習済みAIモデルには、2024年1月31日の日経平均株価(始値、高値、安値、終値)のみを与えました。
2024年2月1日から2024年5月31日までの日経平均株価は、純粋にAIモデルが予測した結果です。
以下のグラフは、始値の正解値と予測値を比較したものです。
正解値は実際の日経平均株価であり、予測値は回帰によりAIモデルが推論した値です。

上記のグラフにおいて、縦軸が株価([円]), 横軸が年月日です。
始値の予測値が右肩下がりとなっているのが確認できます。
この時点で、学習済みAIモデルが全く使い物にならないレベルであることが確定しました。
_| ̄|○
念のため、高値、安値および終値についても確認します。
以下のグラフは、高値の正解値と予測値を比較したものです。

以下のグラフは、安値の正解値と予測値を比較したものです。

以下のグラフは、終値の正解値と予測値を比較したものです。

結果に対する考察
学習済みAIモデルの推論値が右肩下がりに推移してしまう原因について考えました。
最初に疑ったのは、回帰による株価の予測をし続けるための推論を実行するPythonプログラムの不具合です。
この点に関しては、完全に白と言えないのですが、もう一つ気になる点があります。
それは、今回作成したAIモデルの構造的な問題です。
回帰による株価の予測をし続けるためのAIモデルは、説明変数として当日の日経平均株価(始値、高値、安値、終値)を使用しています。
つまり、学習済みAIモデルが推論を行うために用いる情報は当日の日経平均株価のみです。
このため、当日の株価で推論した予測値を算出し、さらにその予測値で推論を行い次の予測値を算出し、と回帰を続けていくことになります。
そうすると、予測値が右肩下がり、あるいは、右肩上がりのどちらかになってしまう気がします。
自分でやっておいて何ですが、流石に無理があると思います。
回帰を行うには、せめて、数日の日経平均株価の情報をAIモデルに与え、翌営業日の日経平均株価を予測する構造でないとダメだと思われます。
私の感覚ですが、推論を実行するPythonプログラムよりもAIモデルの構造の方が問題だと感じました。
このため、先ずはAIモデルの構造について確認したいと思います。
とりあえず、数日の日経平均株価の情報を与えるとして、例えば、1週間分(5日分)とか2週間分(10日), あるいは1カ月分(20日)以上が適切なのかは分かりません。
次回は、この辺りを検証してみるつもりです。