読者です 読者をやめる 読者になる 読者になる

暇人の研究室

金融工学やR言語・統計学について書いてます。

<

【R言語】Rによる単回帰分析 その1

 

今回は統計フリーソフトRを使って回帰分析を行っていきます。回帰分析はデータ分析の超基本であり、ファイナンスなどの分野でもよく使われる分析手法です。

 

www.dmjtmj-stock.com

 

もし株で儲けようと思って、ある株価と経済指標の関係性を調べたい場合、経済指標の変化に対して、株価がどのように変化するのかを把握したいので、株価を(y)とし経済指標を(x)として、以下のような回帰式を推定することになります。

 

推定式:y=αX+β

 

回帰分析とはこの式にもっとも当てはまる係数(ここではαとβ)を求める分析と言えます。今回はRの分析がテーマなので、回帰分析の説明はここまでにして次は実際に実際にRで回帰分析をやっていきます。

 

 

 

・使用するデータ

2015年のバンナムの株価収益率と東証株価指数TOPIX)の変化率

 

データの中身はこんな感じです。

> head(sv)
      nintendo   TOPIX
2015-01-06 -4.2700788  -3.06522033
2015-01-07 0.5069719  0.01267453
2015-01-08 2.2500949  1.65495638
2015-01-09 0.5751865  0.17826370
2015-01-13 0.4903974  -0.64179067
2015-01-14 -4.4173848  -1.72211104

 

※nintendoの方が任天堂の株価収益率でTOPIXの方がTOPIXの変化率(収益率)を表しています。

 

・使用するパッケージ

quantmodパッケージ(xtsパッケージ)

 

www.dmjtmj-stock.com

www.dmjtmj-stock.com

 

 それでは分析をしていきます。まず2つデータの共分散(相関係数)を算出します。なぜかというと相関関係が弱すぎる説明料が低くなってしまいますし、逆に高すぎると多重共線性( 説明変数間の相関が高すぎて、正しく計算ができないこと)といった問題が起こるからです。

 

> cor(sv)   ##2つのデータの相関係数を計算

     nintendo       TOPIX
nintendo 1.0000000     0.4486425
TOPIX    0.4486425     1.0000000

 

Rではcor()で相関係数を計算してくれます。そしてこの2つのデータの相関係数は0.44なので、高すぎもせず低すぎもせずまあまあという感じです。次はこの相関具合を視覚で把握するために散布図をプロットします。

 

> sv<-cbind(r.ninten2015,r.TOPIX2015)

 > d.sv<-as.data.frame(sv)

 > plot(d.sv,ylab="topixのリターン",xlab="任天堂の株価収益率”)

f:id:oruka199665:20170330233233p:plain

 次は回帰分析をします。

 

> lm<-lm(sv[,1]~sv[,2],data=sv)  ##回帰分析の実行
> abline(lm)             ##回帰直線の追加

 

f:id:oruka199665:20170330234630p:plain

 

 

とりあえず回帰分析と2変数の相関のプロットはこんな感じです。次は回帰分析の結果の検証を行っていきます。