【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変数の相関のプロットはこんな感じです。次は回帰分析の結果の検証を行っていきます。

プログラミングを挫折せず最短で習得する方法


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上にあたってはもはや出来て当たり前のスキルとなりつつあります。こういう話はテレビや雑誌でも最近増えてきたので、知らない人はいないでしょう。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。



それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」「エンジニアとして若いうちから高収入を得たい」という気持ちから一念発起して侍エンジニアのwebサービスコースに申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解できました。


侍エンジニアでは様々なコースが用意されており、HTML・cssなどでWebサイトやWebアプリを作ってみたい人からPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズにこたえています。


IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習まで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけてみましょう。ちなみに今「侍エンジニア」の無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。







自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする