【NumPy】回帰分析で日経平均株価の予測

スポンサーリンク
ビッグバナー(上2)

この記事では、Python言語とNumPyを用いて、回帰分析による曲線近似(非線形フィッティング)で日経平均株価の予測を行ってみた結果とソースコード付きで解説します。

曲線近似で株価予測

PythonモジュールNumPyを用いた、回帰分析による曲線近似(非線形フィッティング)は下記事で紹介しています。
【NumPy】回帰分析で曲線近似(非線形フィッティング)

今回は、これを応用して簡単な株価予測をしてみました。
内容は、日経平均株価(終値)の前日から上昇するか、それとも下降するかの予想です。

処理手順

プログラムの処理手順は以下の通りです。

①日経平均株価の1年分のデータ(CSVファイル)を読み込む。
②回帰分析で曲線近似(非線形フィッティング)を行う。
③曲線のデータの勾配を1日ずつ求める。(終値の前日比)
④勾配の値を3値化する。(前日差がプラスなら1, マイナスなら-1, 不変なら0)
⑤ ①~④の処理を2つの年に対して行い、3値化データを2つ作成する。
⑥ 3値化したデータ2つを比較して、一致している要素数(当たりの個数)を計算します。
⑦ 当たりの確率を求めてパーセント表示します。

ソースコード

サンプルプログラムのソースコードは下記の通りです。(2次元曲線の場合)

■使用したデータ(日経平均株価のデータ)
2013年分:nikkei13.csv
2014年分:nikkei14.csv
2015年分:nikkei15.csv
2016年分:nikkei16.csv

※株価データの入手は下記サイトを参考に行いました。
【日経平均株価】過去データ(CSV)をダウンロード

実行結果

サンプルプログラム実行結果は下記の通りです。
今回は、2013年~2016年のデータを用いて、6パターンの比較を行いました。

比較対象 当たり率[%]
2013年と2014年 69.262
2014年と2015年 22.951
2015年と2016年 27.459
2014年と2016年 80.738
2013年と2015年 53.689
2013年と2016年 50.0

平均:50.683166666666665[%]

近似曲線がシンプルすぎるので、うまく行く場合と、そうでない場合の差が激しいです。
〇〇年と△△年の株価の動きがどれだけ似ているかの指標くらいには使える?
この方法でやるなら、10年分くらいの近似曲線を求めて平均したりすれば少しはマシになるかもしれません。

まだフーリエ変換を用いた予測の方が使えるかもしれません。
【関連記事】
Pythonで株価予測・分析(システムトレード)
NumPy入門 サンプル集
Python入門 サンプル集

スポンサーリンク
レクタングル(下2)
レクタングル(下2)

シェア&フォローお願いします!