R でポリコリック相関を計算する方法
ポリコリック相関は、順序変数間の相関を計算するために使用されます。
順序変数は、取り得る値がカテゴリカルであり、自然な順序を持つ変数であることを思い出してください。
以下に、順序スケールで測定される変数の例をいくつか示します。
- 満足度:非常に不満、不満、どちらでもない、満足、非常に満足
- 所得水準: 低所得、中所得、高所得
- 勤務地のステータス: エントリーアナリスト、アナリスト I、アナリスト II、シニアアナリスト
- 痛みのレベル:少量、中量、高量
ポリコリック相関の値は、-1 から 1 まで変化します。ここで、
- -1 は完全な負の相関を示します
- 0は相関がないことを示します
- 1 は完全な正の相関を示します
PolycorパッケージのPolychor(x, y)関数を使用して、R の 2 つの順序変数間のポリチョー相関を計算できます。
次の例は、この関数を実際に使用する方法を示しています。
例 1: 映画評価のポリコリック相関を計算する
2 つの異なる映画評価機関の映画評価間に高い相関関係があるかどうかを知りたいとします。
私たちは各代理店に、20 の異なる映画を 1 から 3 のスケールで評価するように依頼しています。
- 1 は「不良」を示します
- 2は「悪い」を示します
- 3は「良好」を示します
R で次のコードを使用して、2 つの機関の評価間のポリチョーリック相関を計算できます。
library (polycor) #define movie ratings for each agency agency1 <- c(1, 1, 2, 2, 3, 2, 2, 3, 2, 3, 3, 2, 1, 2, 2, 1, 1, 1, 2, 2) agency2 <- c(1, 1, 2, 1, 3, 3, 3, 2, 2, 3, 3, 3, 2, 2, 2, 1, 2, 1, 3, 3) #calculate polychoric correlation between ratings polychor(agency1, agency2) [1] 0.7828328
ポリコリック相関は0.78であることがわかります。
この値は非常に高く、各機関の評価間に強い正の相関があることを示しています。
例 2: レストランのレビューの多色相関を計算する
近所の 2 つの異なるレストランの顧客評価間に相関関係があるかどうかを知りたいとします。
2 つのレストランで食事をしたことがある 20 人の顧客にランダムにアンケートを行い、全体的な満足度を 1 から 5 のスケールで評価してもらいます。
- 1は「非常に不満」を示す
- 2は「不満」を示す
- 3 は「中立」を示します
- 4は「満足」を示します
- 5は「非常に満足」を意味します
R で次のコードを使用して、2 つのレストランの評価間のポリチョーリック相関を計算できます。
library (polycor) #define ratings for each restaurant restaurant1 <- c(1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 3, 4, 4, 5, 5, 4, 3, 4, 5, 5) restaurant2 <- c(4, 3, 3, 4, 3, 3, 4, 5, 4, 4, 4, 5, 5, 4, 2, 1, 1, 2, 1, 4) #calculate polychoric correlation between ratings polychor(restaurant1, restaurant2) [1] -0.1322774
ポリコリック相関は-0.13であることがわかります。
この値はゼロに近く、レストランの評価間に関連性が (あるとしても) ほとんどないことを示しています。
追加リソース
次のチュートリアルでは、R で他の一般的な相関係数を計算する方法を説明します。
R でスピアマンの順位相関を計算する方法
R で点双系列相関を計算する方法
R で相互相関を計算する方法
R でスライド相関を計算する方法
R で偏相関を計算する方法