株価未来予測アプリ
開発期間:2025年5月上旬~2025年10月末使用技術:Python, C#
開発形態:個人開発
株式会社ノジマの予測結果画面
概要
株式投資の判断には、移動平均やPBR、RSI、EMAなど多くの指標が存在し、それぞれが複雑な因果関係のもとで推移しています。
しかし、特に投資初心者にとっては、複数の指標や要因を比較・検討する過程で、最終的に「買うべきか、売るべきか」という判断が難しくなってしまうケースも少なくありません。
そこで本アプリでは、これらの課題を解決するためにAIを用いた株価予測を行い、その結果をグラフとして視覚的に分かりやすく提示することで、投資判断における総合的な参考情報となることを目的として開発しました。
開発時の課題と解決
本アプリケーションの開発は、私の個人開発の中でも特に長期にわたるプロジェクトとなりました。その主な要因は、大きく分けて2点あります。
単純な時系列予測の結果
1つ目は、利用する分析手法の選定に時間を要した点です。
開発当初は時系列分析や株価予測に関する知識がなく、大学の講義においても未履修の分野でした。そこで、参考書『Pythonではじめる時系列分析入門』を購入し、基礎的な理論と実装方法を学習したうえで、まずは単純な時系列予測モデルの実装から着手しました。
上図のグラフでは、実際の株価データを取得し、青色部分を学習データ、オレンジ色部分を予測結果として可視化しています。
グラフを比較した結果、オレンジ色の実測値に最も近い推移を示したのはピンク色のドリフト予測であり、一方で赤色の季節性予測は最も乖離が大きいことが分かりました。
この結果から、季節性を前提とするARIMAモデルなどは株価予測には適さない可能性が高いと判断しました。そこで本アプリケーションでは、季節性の影響を比較的受けにくく、トレンドを重視できるLSTM、ランダムフォレスト、勾配ブースティング法の3手法を採用し、短期から長期までの株価予測を行う方針としました。
2つ目は、データの整形です。
株価データ、株価指標、経済指標など複数のデータを取得する過程で、時間軸のズレや欠損値、異常値が多く発生し、それらが原因でプログラムエラーが頻発しました。
各データごとに時間軸の補正を行い、欠損値や異常値の検出および適切な補完・除外処理を実装する必要があり、データ前処理に多くの時間を要しました。
検証結果
7月末に予測プログラムが完成し、業種別に短期性能評価テストを実施しました。
テスト対象モデルは、LSTMとランダムフォレストの2種類です。
12業種から99銘柄を選定し、それぞれについて翌日の終値予測を行いました。
その結果、平均絶対誤差率(MAPE)は以下の通りとなりました。
LSTM:4.91%
ランダムフォレスト:2.96%
また、平均絶対誤差(円)では、
LSTM:69.70円
ランダムフォレスト:31.76円
という結果となり、ランダムフォレストの方が高い精度を示しました。
業種別の予測精度ランキングは以下の通りです。
| ランキング | LSTM | ランダムフォレスト |
|---|---|---|
| 1 | 鉱業:98.02% | 鉱業:98.98% |
| 2 | 金融・保険業:97.96% | 金融・保険業:98.77% |
| 3 | 水産農林業:97.72% | 建設業:98.76% |
この結果から、両モデルともに鉱業および金融・保険業において高い予測精度を示すことが分かりました。
発表
松稜祭での展示の様子
本アプリケーションは、2025年10月末に開催された湘南工科大学 松稜祭にて展示しました。
今後の展望
今後は、SNSの投稿内容やニュース記事などのテキスト情報を取得・分析し、予測モデルの入力データとして活用することで、急騰や急落といった突発的な株価変動にも対応できる予測精度の向上を目指したいと考えています。