ホーム勉強・学習・資格MBAR言語によるピアソン積率相...

R言語によるピアソン積率相関係数分析と相関散布図

ピアソン積率相関係数分析とは

ピアソン積率相関分析はどれだけ二つの変数の相関関係があるのかを0 ≦ |r| ≦ 1で表す分析で、絶対数の1に近いほど高い相関関係を表します。

例えば、国語の成績がいい人は数学の成績がいいことと相関の関係を持っているかどうか等の分析に使います。下記、京都光華大学の説明を引用させて頂きます。

 2変数間に、どの程度、直線的な関係があるかを数値で表す分析です。
変数の値が大きいほど、変数の値も大きい場合を正の相関関係といいます。
変数の値が大きいほど、変数の値が小さい場合を負の相関関係といいます。
変数の値と、変数の値の間に直線関係が成立しない場合を無相関といいます。

r意味表現方法
0相関なしまったく相関はみられなかった。
0<| r |≦0.2ほとんど相関なしほとんど相関がみられなかった。
0.2<| r |≦0.4低い相関あり低い正(負)の相関が認められた。
0.4<| r |≦0.7相関あり正(負)の相関が認められた。
0.7<| r |<1.0高い相関あり高い正(負)の相関が認められた。
1.0 または-1.0完全な相関完全な正(負)の相関が認められた。

引用元:京都光華大学:相関分析1

データを読み込む

まずはデータを読み込んで、

# まずはデータを読み込む
dat 

データを読み込んだ後に、早速デフォルトの機能を使ってピアソン積率相関係数分析をしてみる。

# ピアソン積率相関係数分析
attach(dat) # dat$F1のようにしなくても良い。
cor.test(F1, F2)


	Pearson's product-moment correlation                #ピアソン積率相関係数分析

data:  F1 and F2
t = 12.752, df = 836, p-value < 2.2e-16                     #t値、自由度、p値
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:                             #95%信頼区間
 0.345242 0.458718
sample estimates:
      cor 
0.4035305                                                   #相関関数

これで、T値, 自由度, P値の他ピアソン積率相関係数分析の値がでる。ここでのco-efficientが0.4035305なので、相関関係としては低い正の相関関係があると認められます。またP値が0.05以下であるので、結果が顕著であると言える。

全体を相関図として出してみる

こちらは前回の記事である「R言語による重回帰分析 Multiple Linear Regression Analysis」と同じ内容であるば、ピアソン積率相関係数分析の値が一覧として出せるので、同様に書いておく。

install.packages("corrplot")
library(corrplot)

#SubsetでF1からF3のみを抽出
a 

すると、下記のようなデータを抽出できました。

散布図

次に散布図を書いてみます。保有しているデータはデータとして重なり合うようになっているので、濃淡をつけて、また回帰分析のco-efficientも表示して見ます。

#散布図の指定
plot(F1, F2, col="#00aa0030", pch=19,xlim=c(1,5), ylim=c(1,5)) #色と濃淡で表す。また、x軸とy軸は1-5しかないので、その値でのみ指定する。

#回帰分析も赤線で表して見ます
abline(lm(F1 ~ F2), col = "red")

すると下記のように表示され、その傾向がわかりやすくなる。

散布図を一覧として表示するには下記のようにします。

#データを指定、またx軸とy軸は特に指定しなくても良いが、例としてあげる
plot(dat,col="#00aa0030", pch=19,xlim=c(1,5), ylim=c(1,5))

これは例えば、1行目2列目の縦軸はF1、横軸はF2となります。また同行7列目は縦軸がF1で横軸がF7と言う見方となります。下半分は縦軸と横軸が反転しただけなので、そこまで大きな発見はないかもしれません。

psycのパッケージを使って、ヒストグラムや分散図を出してみる

今度は別のパッケージを使って、分析をして見ます。

library(psych)   
pairs.panels(dat[,1:2]) #F1とF2のみ

こうして見てみると、たった一つのコマンドで、ヒストグラムや相関係数、回帰分析等が一度に出ます。ただ、これだとまだP値が出ていないので、どれぐらい顕著な結果なのかまでは直感的にはわかりません。

少し便利なパッケージ

この記事を書いている時に、「Rで複数変数のサマリをさくっと可視化する」の記事を見つけ、更に直感的にわかるパッケージがあることを知りました。

install.packages("PerformanceAnalytics") #パッケージのインストール
library("PerformanceAnalytics") #パッケージの有効化
chart.Correlation(dat[,1:2])  #F1とF2のみ分析
chart.Correlation(dat) #全部を分析

これを結果として抽出すると下記のようになります。

T値のシンボル(*の数によってどれほどその結果が顕著かわかる。最大三つ、最小0)が付与され、情報量が増えている。全体でこれを表すと。

文字の大きさと、星(*)で、どこに高い相関性があるのかなど一目で見ることができます。私はこれを使って、分析の優先順位を決めるのに役立ちます。

以上「R言語によるピアソン積率相関係数分析と相関散布図」についてでした。

亀山 翔大
亀山 翔大
東京都出身。MBA。Project, Program, Portfolio Managementを専門。PMOとして働きつつ、イギリス大学院でサイバーセキュリティを学ぶ。前職である国連にて国連世界ICT戦略遂行、国連グローバルPMO推進。UN KUDOS! Award 2019優勝。プロジェクト(プログラム)マネジメント(PRINCE2/MSP)、サイバーセキュリティ(NIST CSF)等の資格を有する。 プロフィール詳細はこちら

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

- Advertisment -