為替において単回帰分析で何ができるか?(機械学習2回目)

2018年10月30日

ノートに書かれたグラフ

色々な教材で機械学習を学んでみると、最初は必ず単回帰分析から始まります。

この記事では単回帰分析の簡単な説明を交えながら、実際に為替の分析をした場合に何が分かるのかを考えます。

単回帰分析とは

回帰(かいき、英: regression)とは、統計学において、Y が連続値の時にデータに Y = f(X) というモデル(「定量的な関係の構造[1]」)を当てはめる事。別の言い方では、連続尺度の従属変数(目的変数)Y と独立変数(説明変数)X の間にモデルを当てはめること。X が1次元ならば単回帰、X が2次元以上ならば重回帰と言う。Y が離散の場合は分類と言う。

回帰分析(かいきぶんせき、英: regression analysis)とは、回帰により分析する事。

回帰で使われる、最も基本的なモデルは Y = AX + B という形式の線形回帰である。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

ということらしいですが、よく分からないので以下の例で考えてみます。

「もしかしたら、気温が高くなるほどドル円がプラスになる傾向にあるのでは?」と考えたとしましょう。(実際にはあり得ませんが・・・)

この時の「価格差(ドル円がプラス)」を目的変数(予測したいもの)と呼び、「気温」を説明変数(目的変数を説明するもの)と呼びます。

そして、説明変数が1つしかない回帰分析を「単回帰分析」、説明変数が複数あるものを「重回帰分析」と呼びます。

例えば、「価格差」を得るために、「気温+湿度」が必要であれば重回帰分析です。

 

先ほどの仮説が本当かを検証するには、データをプロットして単回帰分析すれば分かります。

単回帰分析の図

この結果から、「気温が上がると価格差も上がる傾向にある。」ことが分かり、先ほどの仮説が概ね合っているということが分かりました。

(説明用に作ったデータなので、実際に気温と価格差が連動することはありません。)

 

これで新しいデータとして気温33℃が来た時に、ドル円はおよそ1.3円プラスになるという予測ができます。

この直線(y = ax + b)が学習したモデルです。

実際は直線を求めるために計算が必要ですが、本題とは異なりますので割愛させていただきます。

興味のある方は、「単回帰」や「線形回帰」で検索していただければと思います。

 

内挿と外挿について

私のように、全く統計を勉強せずに株や為替の分析の世界に入った方向けに記載します。

内挿とは?

内挿(ないそう、英: interpolation、補間とも言う)とは、ある既知の数値データ列を基にして、そのデータ列の各区間の範囲内を埋める数値を求めること、またはそのような関数を与えること。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

外挿とは?

外挿(がいそう、英: Extrapolation、補外とも言う)とは、ある既知の数値データを基にして、そのデータの範囲の外側で予想される数値を求めること。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

具体的な例

最初に掲載したグラフは、18℃~42℃のデータで作ったモデルになります。

この時に、33℃は内挿であり44℃は外挿です。

44℃が来ても予測できる場合もありますが、信頼できるかは不明です。

 

投資をする際は、皆様それぞれのルールを元に売買していると思いますが、現在の状況が自分のルールで内挿なのか外挿なのかも考える必要があります。

 

為替で使った場合に何が分かるのか

2010年1月1日~2017年1月1日のUSDJPYで分析を行いました。

※見た目を分かりやすくしたかったので、異常値は除外しています。

 

RSIで検証

前日の14期間RSIと当日の価格差に関連性があるかを確認した結果です。

全くと言っていいほど関連性が見られませんでした。

RSIと価格

 

ボラティリティで検証

前日のボラティリティと当日の価格差に関連性があるかを確認した結果です。

※ボラティリティには14期間ボリンジャーバンドの幅を使いました。

予想通り関連性は全くありませんでした。

ボラティリティと価格

 

出来高で検証

前日の出来高と当日の価格差に関連性があるかを確認した結果です。

出来高は業者ごとのものなので完全なデータとは言えませんが、全体の縮図と考えることができます。

少し期待したのですが、何の特徴も見出すことができませんでした。

出来高と価格

 

評価

価格差という目的変数はとても難題です。

価格差の予測ができるということは完全な勝ち組ということなので、難しいのは当然です。

 

目線を変える

次は、通貨間で価格差に相関関係があるかを確認してみます。

2010年1月1日~2017年1月1日のEURJPYとGBPJPYの価格差を確認します。

予想通り相関関係があることが分かりました。

EURJPYとGBPJPYの価格

 

結果

単回帰分析を使ってみて、分かったことをまとめます。

  1. 1つのパラメタで予測するのが難しい
  2. 説明変数(選択するパラメタ)の設定が人間依存
  3. 目的変数の設定が人間依存
  4. 相関が無いということは言いやすい

価格差のように難易度の高い目的変数を、単回帰分析で予測するのは難しいことが分かりました。

別の使い道は沢山あると思うので、分析のネタにはなりそうです。

 

以下で、別の機械学習を使っていますので興味がある方はご覧ください。

FXの環境認識に機械学習を使ってみる(機械学習1回目)

為替の予測をロジスティック回帰でやってみる(機械学習3回目)

 

まだ機械学習についての知識が浅いので、誤りがあればご指摘いただけると幸いです。