R で偏相関を計算する方法
統計学では、 ピアソン相関係数を使用して 2 つの変数間の線形関係を測定することがよくあります。
ただし、場合によっては、 3 番目の変数を制御しながら2 つの変数間の関係を理解したい場合もあります。
たとえば、クラス内での生徒の現在の成績を管理しながら、生徒の学習時間数と最終試験の成績との関連性を測定したいとします。
この場合、偏相関を使用して、学習時間と最終試験の成績との関係を測定できます。
このチュートリアルでは、R で偏相関を計算する方法を説明します。
例: R の偏相関
10 人の生徒の現在の成績、合計学習時間、最終試験の成績を表示する次のデータ フレームがあるとします。
#create data frame df <- data. frame (currentGrade = c(82, 88, 75, 74, 93, 97, 83, 90, 90, 80), hours = c(4, 3, 6, 5, 4, 5, 8, 7, 4, 6), examScore = c(88, 85, 76, 70, 92, 94, 89, 85, 90, 93)) #view data frame df currentGrade hours examScore 1 82 4 88 2 88 3 85 3 75 6 76 4 74 5 70 5 93 4 92 6 97 5 94 7 83 8 89 8 90 7 85 9 90 4 90 10 80 6 93
データフレーム内の変数のペアごとの組み合わせ間の偏相関を計算するには、 ppcor ライブラリのpcor()関数を使用できます。
library (ppcor)
#calculate partial correlations
pcor(df)
$estimate
currentGrade hours examScore
currentGrade 1.0000000 -0.3112341 0.7355673
hours -0.3112341 1.0000000 0.1906258
examScore 0.7355673 0.1906258 1.0000000
$p.value
currentGrade hours examScore
currentGrade 0.00000000 0.4149353 0.02389896
hours 0.41493532 0.0000000 0.62322848
examScore 0.02389896 0.6232285 0.00000000
$statistic
currentGrade hours examScore
currentGrade 0.0000000 -0.8664833 2.8727185
hours -0.8664833 0.0000000 0.5137696
examScore 2.8727185 0.5137696 0.0000000
$n
[1] 10
$gp
[1] 1
$method
[1] "pearson"
結果を解釈する方法は次のとおりです。
勉強時間と最終試験の成績との部分的な相関関係:
学習時間と最終試験の成績の間の偏相関は0.191で、小さな正の相関を表します。現在の成績が一定であると仮定すると、学習時間数が増加するにつれて、試験の得点も増加する傾向があります。
この偏相関の p 値は0.623ですが、α = 0.05 では統計的に有意ではありません。
現在の成績と最終試験の成績の間の偏相関:
現在の成績と最終試験の成績の間の偏相関は0.736で、強い正の相関を表します。現在の学年が上がるにつれて、勉強時間が一定であると仮定すると、試験の得点も増加する傾向があります。
この偏相関の p 値は0.024で、α = 0.05 で統計的に有意です。
現在の学年と学習時間の間の偏相関:
現在の成績、学習時間、最終試験の成績の間の偏相関は-0.311で、わずかな負の相関を表します。最終試験の成績が一定であると仮定すると、現在の成績が上がるにつれて、最終試験の成績は下がる傾向があります。
この偏相関のp 値は0.415ですが、α = 0.05 では統計的に有意ではありません。
この結果から、偏相関の計算に使用された手法が「ピアソン」であることもわかります。
pcor()関数では、相関関係を計算するための代替メソッドとして「kendall」または「pearson」を指定することもできます。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
R でスピアマンの順位相関を計算する方法
R で相互相関を計算する方法
R でスライド相関を計算する方法
R で点双系列相関を計算する方法