このサイトが「何を」「なぜ」「どうやって」検証しているかをまとめました
chartOracleは、「AIは株価を予測できるのか?」という問いを、日経225銘柄を対象に実際に検証し続けているサイトです。派手な成果を主張するのではなく、うまくいかなかった結果も含めて淡々と記録することを大切にしています。
本サイトは投資助言ではありません。AIモデルの検証結果を研究目的で公開しています。投資判断はご自身の責任でお願いします。
「決定木」という、条件分岐(if-then)の集まりでできた小さな予測モデルを大量に組み合わせて、精度を高めていく手法です。木を1本ずつ順番に追加しながら、それまでの木がうまく予測できていなかった部分を次の木が補っていく仕組み(勾配ブースティング)になっています。特徴量同士の複雑な組み合わせパターンを捉えるのが得意です。
弱点: 検証#7「AIの『自信』は信じられるか」で判明した通り、LightGBMが出す確信度(予測確率)は、実際の的中率と素直には結びついていない傾向があります。むしろ確信度が高い予測ほど外れやすいという、直感に反する結果も観測されています。
各特徴量に「重み」という係数をかけて足し合わせ、その合計を0〜1の確率に変換するシンプルな手法です。LightGBMのような木構造は使わず、特徴量と予測結果の関係を直線的な式で表します。
弱点: 特徴量同士が絡み合うような複雑な非線形パターンは捉えにくく、LightGBMより表現力は劣ります。
強み: 各特徴量の重みがそのまま「その特徴量が予測にどれだけ・どちら向きに影響したか」を表すため、「なぜその予測になったのか」を人間が読める形で説明しやすいという利点があります。
複雑なモデル(LightGBM)とシンプルなモデル(線形回帰)、果たしてどちらが実際にコイントス(常に「上昇」と答え続けた場合の的中率、約51.5%)に勝てるのか——これ自体を検証#10として、日々のトラッカーで継続検証しています。複雑さが必ずしも精度につながるとは限らない、というのがこれまでの9本の検証から見えてきた傾向なので、その延長として2つのモデルを正面から突き合わせています。
日々の結果は日次予測トラッカーでモデルごとに的中率を記録しています。
これが日経225全銘柄で毎日自動実行されています。
毎朝
数営業日後
2つのモデルはどちらも、以下の7つの特徴量だけを使っています(株価の値動きに詳しくない方向けの説明です)。
MA5乖離率
ma_dev_5
直近5営業日(約1週間)の平均株価と比べて、今の株価がどれだけ高い・低いかを表す。短期的な値動きの勢いを見る指標
MA25乖離率
ma_dev_25
直近25営業日(約1ヶ月)の平均株価と比べた乖離。MA5よりもう少し長い期間のトレンドを見る指標
MA60乖離率
ma_dev_60
直近60営業日(約3ヶ月)の平均株価と比べた乖離。より長期のトレンドからの位置を見る指標
RSI(14)
rsi_14
過去14営業日の値上がり幅と値下がり幅を比べて算出する、0〜100の指標。「買われすぎ・売られすぎ」の目安としてよく使われる
出来高乖離率(60日)
volume_dev_60
直近60営業日平均の出来高(売買された株数)と比べて、今日の出来高がどれだけ多い・少ないか。取引の活発さを表す
出来高変化率
volume_change_rate
前営業日と比べて出来高がどれだけ増減したか。急な注目度の変化を捉える指標
60日ボラティリティ
volatility_60
直近60営業日の値動きの荒さ(日々のリターンのばらつき)。数値が大きいほど値動きが激しい
LightGBM・線形回帰とは別に、もう1つ「お遊び予測」という実験的なモデルを動かしています。月齢・東京の気圧・東京の風速・ゾロ目の日(7/7, 8/8など)・干支の日、という5つの候補の中から、前日までのデータで直近最も成績の良かった1つを日替わりで選び、その特徴量だけを使ったシンプルなロジスティック回帰で翌営業日の方向を予測します。
正直な注記: この仕組みは「たまたま直近の成績が良かっただけの特徴量」を追いかけてしまいやすいという統計的な弱点(多重比較・過学習)を抱えています。月齢や気圧が株価と因果関係を持つとは考えにくく、的中率が高く出たとしても、それ自体が偶然である可能性が高いです。むしろ「ノイズを追いかけているだけになりやすい」という性質そのものを観察するための実験機能だと捉えてください。
日々選ばれた特徴量と結果は日次予測トラッカーで確認できます。