重回帰分析を簡単に言うといろいろな原因とその結果を結びつける多変量解析になります。
例えば結果として明日の値動きは陽線で引けるかもしくは陰線で引けるかは、原因としての様々なテクニカル指標との因果関係を分析してみることなどが挙げられます。この原因が売買システムにおけるロジックとして、明日の値動きにどう繁栄されるかなどを検証すれば、有効なシステムロジックが見つかるかもしれません。
ここでは簡単な仕掛けサインとの因果関係を調べる重回帰分析の例を掲載しておきます。
重回帰分析はいくつかの原因をX1、X2、X3・・・としてその結果Yとした場合次のような関係式を作ります。
この式を重回帰式と呼び、X1、X2、X3・・・を説明変数、Y^を目的変数などと呼ばれ、各説明変数の係数b1、b2、b3・・・は偏回帰係数と呼ばれます。b0は定数項になります。
実際の分析の流れは以下のようになります。
@重回帰分析をする意味があるのか各説明変数と目的変数の散布図を描いてみる。
A重回帰式を求める。
B重回帰式の精度を確認する。
C重回帰式と偏回帰係数の検定を行う。
D母回帰式を推定、予測する。
では具体的な例で重回帰分析を実行してみましょう。
分析に使用するデータとしてEUR/JPY×2とCHF/JPY×3の週間サヤデータ、2000年1月から2009年12月分を使用します。
EUR/JPY×2-CHF/JPY×3 サヤグラフ
それでは上の流れのとおり順番に分析を行います。
@重回帰分析をする意味があるのか各説明変数と目的変数の散布図を描いてみる。
まず始めに変数の設定を行います。ここでは次のように目的変数と説明変数の定めます。
週間サヤ変動値 ⇒ 目的変数”Y”
1つ前の週間サヤ変動値 ⇒ 説明変数”X1”、
サヤの標準偏差(15週)に歪度(15週)を掛けた値(※) ⇒ 説明変数”X2”と設定します。
※なぜこのような処置をするのかというと標準偏差は必ず正の値を取りますのでプラスマイナス両方を取るサヤの変動値Yと回帰分析を行う場合、1次式で当てはめることが出来ないためです。またバラツキにひずみの尺度を合わせることによってサヤの変動が大きくかつサヤの分布が正規分布になってない状態を図る尺度として使えるのではないかという思惑もあります。
説明変数X1とX2と目的変数Yについての散布図はそれぞれ以下のようになります。
散布図を見てもわかりますが、X1とYの関係には若干負の相関ありそうです。これは前の週サヤが拡大に動いた場合はその翌週は縮小に、逆に前の週サヤが縮小に動いた場合はその翌週は拡大に動く傾向があることを意味しています。
次にX2とYの関係を見てみますこれには全く相関がなさそうですが、X1とX2の関係には少し正の相関があることが気にかかります。
以上からX1、X2、Yにはなんらかの関係があると思われますで、重回帰分析をしてみる価値があるのではと判断します。
A重回帰式を求める。
実測値Yと予測値Y^の差の平方和を残差平方和と呼びSeで表します。
重回帰式はこの残差平方和Seを最小にする基準によって求められます。
すなわち上の式が最小になるようなb0〜bpまでの回帰係数を求めればよいわけですから、各回帰係数を偏微分して0と置く最小2乗法で求めればよいことがわかります。
上の連立方程式を解いてb0〜bpまでの回帰係数を求めれば重回帰式が定まります。
実際に本例で求めた重回帰式は以下のようになりました。
Y^ = -0.159X1 + 0.027X2 - 0.017
B重回帰式の精度を確認する。
求めた重回帰式
Y^ = -0.159X1 + 0.027X2 - 0.017
はどの程度実際のデータに当てはまっているか、その当てはまりの良さを表すのに決定係数という尺度が使われます。
決定係数を求めるあたって以下の統計量を求めます。
実測値Yの偏差平方和 St
予測値Y^の偏差平方和 Sr
実測値Yと予測値Y^の差の平方和すなわち残差平方和 Se
さらにこの3つ平方和に以下のような関係式が成立しています。
St = Sr + Se
このことから当てはまり表すを尺度は実測値Yの偏差平方和Stの情報量の中に予測値Y^の偏差平方和Srの情報量がどれだけ含まれているかみればよいことがわかります。これを比率で表した尺度が決定係数(R^2)になります。
また決定係数”R^2”は実測値Yと予測値Y^の相関係数の2乗と等しくなります。それゆえにこの”R”は重相関係数と呼ばれています。どちらも当てはまりの良さを表す尺度として使われています。
本例で求めた決定係数及び重相関係数は以下のようになりました。
決定係数 R^2 = 0.025 、重相関係数 R = 0.157
一般的に1つの目安として決定係数は0.5以上、重相関係数は0.7以上あれば当てはまりがよいとされてますが、今回の結果をみれば全然値が小さく予測式が当てはまってないと解釈できます。そもそも売買ロジックにそれほど精度の高い予測式が存在するはずがないのが当たり前です。私もこのような分析を数多くやってきましたが重相関係数が0.2を超えることは稀です。ですが実際のシステム売買において若干でも相関があれば、それが強力なロジックが存在することを説明している場合もあります。個人的には重相関係数0.2付近(逆相関の場合は-0.2)を目安としております。
C重回帰式と偏回帰係数の検定を行う。
求めた重回帰式が予測に役立つかどうか調べるために以下のような検定を行います。
検定には母集団上のモデルとして次のような重回帰モデルを設定します。
”ε”は誤差を表します
このモデルに対して仮説を立て検定を行います。
■重回帰式の検定
仮説 H0 : β1=β2=0
これは回帰係数β1とβ2が0であれば予測することができないという仮説になります。
この検定には次のような分散分析表を使います。本例で計算した分散分析表を掲載します。
この表は全データ数”n”の変動の全体Tが回帰Rの部分と残差Eの部分に分けられる変動因を分析します。
自由度fは各変動因から独立に選べるデータ数で次のように計算されます。
fT = n-1
fR = p (pは説明変数の数)
fE = n-p-1
平方和Sはそれぞれ以下の値をとります
St 実測値Yの偏差平方和
Sr 予測値Y^の偏差平方和
Se 残差平方和
分散Vはそれぞれ平方和Sを自由度fで割った値になります。
分散比F0は回帰の分散VRを残差の分散VEで割った値になります。
2つの分散比はF分布をすることになりますので、検定ではこの分散比F0の値を使用します。仮説が正しくなければVRがVEよりも小さくなることはないので、これの有意水準を検定すればよいことになります。
F値は自由度fR、fE 、と有意水準αで決定しますので
F0>F(fR、fE 、α)であればαの有意水準で仮説か棄却されることになります。
上の表の検定では有意水準αが5%で棄却されれば「*」でマークして、有意水準αが1%で棄却されれば「**」でマークするようにしております。
本例では有意水準1%で仮説が棄却されてますので、求めた重回帰式は予測に役立つと判断できます。
■回帰係数の検定
個々の回帰係数の検定では以下のような仮説を立てます。
仮説 H0 : β1=0 (前週のサヤ変動は翌週のサヤの変動に影響しない)
仮説 H0 : β2=0 (サヤの標準偏差*歪度は翌週のサヤの変動に影響しない)
次の統計量をもとめてt分布による検定を行います。
標準誤差とは推定値の標準偏差のことで以下のような式で求まります。
説明変数の標準誤差
定数項(切片)の標準誤差
回帰係数を標準誤差で割ってt値を求め有意性の検定を行います。
t0>t(n-p-1、α)であればαの有意水準で仮説か棄却されることになります。
回帰係数b1は有意水準1%で仮説が棄却されてますので、重回帰式は含ませることがよいと判断することができます。
回帰係数b2は有意ではありませんので、重回帰式は含ませなくても影響はないと判断することもできます。
定数項の検定については有意ではありませんが、この値はただ回帰式の当てはめをよくするためのものですからあまり重要視する必要はないかと思われます。
D母回帰式を推定、予測する。
説明変数(X1、X2、・・・Xp)が任意の値(X10、X20、・・・Xp0)をとるとき、予測値Y0^の予測区間(信頼率α)は次のようにして求まります。
D0^2はマハラノビスの汎距離と呼ばれるもので任意の値(X10、X20、・・・Xp0)と(X1、X2、・・・Xp)それぞれの平均との統計的な距離を表します。
例えば本例で”X1=2”、”X2=1”とした場合の予測区間(信頼区間95%)は次のようになりました。
-------------------------------------------------------------------------------------------
以上@からDまでが重回帰分析のおおまかな流れになるかと思いますが、Dの予測に関しては相場の分析には無意味なことだと考えていますので、実際の分析は@からCまで押さえておくぐらいで十分です。
本例の場合、散布図と重相関係数、B、Cの検定の結果から説明変数”X1”のみの要素を取り入れて、次のようなルールの売買システムを採用します。
前の週サヤが拡大に動いた場合は縮小のサヤ取りポジションを作り、週末に手仕舞いします
前の週サヤが縮小に動いた場合は拡大のサヤ取りポジションを作り、週末に手仕舞いします
このルールでシュミレーション売買した場合以下のような結果となりました。
PF : プロフィットファクター
PR : ペイオフレシオ
MAXDD : 最大ドローダウン
途中にシステムが機能していない時期や大きいドローダウンもみられますが結果として120pips付近まできてますので、まずまずのパフォーマンスであると判断できます。
ちなみに説明変数”X2”の要素を取り入れて、次のルールを付け加えた場合のシュミレーションはこうなりました。
前の週の”X2”の絶対値が”X2”全データの標準偏差より大きい場合は仕掛けを見送る
ルールを追加しない場合とさほど変わりはない感じですが、1回の売買における損益期待値のパフォーマンスが落ちています。やはり”X2”の要素を取り入れての追加ルールにはあまり効果がないと判断しました。
●この章で紹介した重回帰分析の各種統計量は次のエクセルの関数を使って計算できます。
LINEST()関数を使えば、回帰係数、標準誤差、重相関係数など必要な統計量をいっきに求めることができます。INDEX()関数やOFFSET()関数などを組み合わせれば必要な統計量を好きな風に取り出すこともできます。
(例) =INDEX(LINEST(OFFSET(A1,0,0,COUNT(A1:A100),1)
分散と共分散の値 =COVAR(配列 1,配列 2)
F値 =FINV(有意水準α,自由度fR,自由度fE)
t値 =TINV(有意水準,自由度fE)
逆行列 =MINVERSE(行と列が同じ数の配列)
|