LoginSignup
32

More than 5 years have passed since last update.

Azure Machine Learning を使った為替レートを元にした日経平均株価予想

Last updated at Posted at 2015-09-17

Azure Machine Learningの回帰分析を使用した例として日経平均株価を予想してみます。
あくまでも回帰分析の例です。

(基礎情報) 日経平均株価と米ドル/円為替レートの相関関係

これが2002年から2015年9月17日までの日経平均株価と為替レートの2軸グラフです

スクリーンショット 2015-09-17 16.25.12.png

青が為替レート、緑が日経平均株価
相関関係はそれなりにあることが分かります。
参考情報:日経平均株価と為替レートの相関関係

そのため、どちらかの値がわかれば片方の値もある程度は予測可能なはずです。

今回は米ドル/円為替レートが予めわかってる状態で、日経平均株価がわからないシチュエーションがあったと想定して
米ドル/円為替レートを元に日経平均株価を予想するデータ分析をAzure Machine Learningでやってみます。

Azure Machine Learning で回帰分析

Machine Learning Studio での操作は動画にキャプチャしています。
https://www.youtube.com/watch?v=c1NLhIzAgp8

為替レートと日経平均株価の過去データをCSVにする

まず米ドル為替レートと日経平均株価の過去データを集めてきます。
Googleで検索すればすぐ出てくるのでここでは割愛します。
CSVファイル構成はこうします

USD 日経平均
2012/1/12 76.92 8385.59
2012/1/13 76.81 8500.02
2012/1/16 76.84 8378.36

注意点としてネットに落ちているデータCSVはSJISになっている事がおおいのでUTF8に変換しておきましょう。

nkfコマンドの例

nkf -Lu xxxx.csv > xxxx_utf8.csv

Microsoft Azureは素晴らしい事に日付データを認識するのでこの書き方で第一列は日付データと認識してくれます。(AmazonMLには日付型がないため、これはAzureMLのアドバンテージになっている)

Azure Machine Learning にアップロード

Machine Learningにファイルをアップロードします。

スクリーンショット 2015-09-17 16.45.51.png

回帰分析でモデルを作成

最終的なイメージ図はこんなイメージです。
スクリーンショット 2015-09-17 16.49.15.png

1. 過去データを配置

quote_Lu_Fix_concat.csv(アップロードしたファイル)をパレット上に配置します

Saved Datasets -> My Datasets

スクリーンショット 2015-09-17 17.07.33.png

右クリック-> dataset -> Visualize でデータは確認できます。

スクリーンショット 2015-09-17 17.26.52.png

2. 念のためカラム選択パーツを配置

日付のカラム列モデルの演算対象から外す場合もあるので、念のためモデル演算対象のカラムを設定しておきます。

Data Transformation -> Manipulation

スクリーンショット 2015-09-17 17.11.11.png

演算対象のカラムを選択

スクリーンショット 2015-09-17 17.12.23.png

3. 予測モデルを配置

Machine Learning -> Train -> Train Model

スクリーンショット 2015-09-17 17.16.35.png

推測対象のカラム「日経平均」を選択

スクリーンショット 2015-09-17 17.18.55.png

スクリーンショット 2015-09-17 17.20.47.png

4. 回帰分析モジュールを配置

スクリーンショット 2015-09-17 17.17.25.png

5. RUNで予測モデルを作成

スクリーンショット 2015-09-17 17.22.37.png

スクリーンショット 2015-09-17 17.25.32.png
右上が「Finished running」になったら完了。(今回のデータ量 900行の演算なら15秒ぐらい)

6. 作成したモデルで、過去データを使い日経平均株価予想の検証

Scoreモデルを配置

Machine Learing -> Score -> Score Model スクリーンショット 2015-09-17 17.31.35.png

Scoreモデルと過去データファイル連結

スクリーンショット 2015-09-17 17.29.48.png

RUNを実行し結果をVisualizeで確認

スクリーンショット 2015-09-17 17.34.24.png

スクリーンショット 2015-09-17 17.38.43.png

青枠が実際の過去データ
赤枠が作成した予測モデルを使い過去の為替レートから推測した日経平均株価です。
実際の日経平均株価とは100〜300円のズレがありますがそれっぽい数字にはなっています。

Scored Label を右クリックし、comapre to を「日経平均」にすると過去データと予測データの比較散布図が表示できます。

スクリーンショット 2015-09-17 17.48.46.png

スクリーンショット 2015-09-17 17.43.16.png

完全に過去データと予測数値が
一致していたら斜めにまっすぐ線がひかれます。
多少ばらつきはあるものの、まっとうな精度の塊と並びになっています。

7. 作成したモデルで、未来、現在の為替データを元に未来の日経平均株価を予想

実際は過去データと比較してもしょうがないので実際の想定ケースである未来日経平均株価を予想してみましょう。

1. 予測ファイルを用意

例えば現在が9月17日の午前で、最終日経平均株価が不明の状況で9月17日と9月18日の為替レートがある程度予測ついている場合、以下のファイルを配置します。(為替レートは1ドル=120.539円とする)

quote_future.csv
,USD,日経株価
2015/9/17,120.539,0
2015/9/18,120.539,0

注意点としては予測するカラム(今回は日経平均)も列が必要でかつ、データが必要なようなので今回は0を入れています。
予測ファイルをアップロードしておきます。

2. 過去データとScore Modelの接続を解除

スクリーンショット 2015-09-17 17.55.01.png

3. 予測ファイルをスケッチに配置しScore Modelに接続

スクリーンショット 2015-09-17 18.00.39.png

4. RUNをして結果を確認

結果をVisualizeで確認

スクリーンショット 2015-09-17 18.03.36.png

Azureの回帰予想では
9月17日の日経平均株価は19,144.684円
9月18日の日経平均株価は19,144.687円
となりました・・たぶんこんなに高くはないですが。

同じ為替レートなのに数値が違うのは日付もモデル演算対象に入ってるからでしょう。

5. 結果をCSVファイルにダウンロードできるようにする

Score Modelの結果をファイルに保存するために専用のパーツをスケッチに配置します。
Data Format ConversionsからConvert to CSVを選択しScore Modelの下に配置します。

スクリーンショット 2015-09-17 18.08.56.png

再度RUNし、CSVファイルを作成します。
モデルや対象の予測データに変更がない場合は再計算しないようなので演算時間はすぐ終わります。

演算が終わったらConvert to CSVを右クリックし、Results dataset -> Download で結果をダウンロードできます。

スクリーンショット 2015-09-17 18.13.14.png

まとめ

若干、実際の日経平均株価とは差はあるもののAzure MLでの現実的な回帰分析のイメージがつかめたと思います。
実際には 米ドル、ウォン、ユーロを使って日経平均株価を予想・・などもっと元データを用意して予測するなどのアプローチになると思います。
素敵なモデルをAzureMLで構築してFX戦争に勝利しましょう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32