Как рассчитать полихорическую корреляцию в R


Полихорическая корреляция используется для расчета корреляции между порядковыми переменными.

Напомним, что порядковые переменные — это переменные, возможные значения которых категоричны и имеют естественный порядок.

Некоторые примеры переменных, измеряемых по порядковой шкале, включают:

  • Удовлетворенность : очень неудовлетворен, неудовлетворен, нейтрален, удовлетворен, очень удовлетворен
  • Уровень дохода : Низкий доход, средний доход, высокий доход
  • Статус рабочего места : Начальный аналитик, Аналитик I, Аналитик II, Ведущий аналитик
  • Степень боли : небольшое количество, среднее количество, сильное количество

Значение полихорической корреляции находится в диапазоне от -1 до 1, где:

  • -1 указывает на идеальную отрицательную корреляцию
  • 0 указывает на отсутствие корреляции
  • 1 указывает на идеальную положительную корреляцию

Мы можем использовать функцию polychor(x, y) из пакета polycor для вычисления полихорной корреляции между двумя порядковыми переменными в R.

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Расчет полихорической корреляции для рейтингов фильмов

Предположим, вы хотите узнать, имеют ли два разных рейтинговых агентства высокую корреляцию между своими рейтингами фильмов.

Мы просим каждое агентство оценить 20 различных фильмов по шкале от 1 до 3, где:

  • 1 означает «плохой»
  • 2 означает «средний»
  • 3 означает «хорошо»

Мы можем использовать следующий код в R для вычисления полихорической корреляции между рейтингами двух агентств:

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. Расчет полихорической корреляции для рейтингов ресторанов

Предположим, вы хотите узнать, есть ли какая-либо корреляция между рейтингами ресторанов, полученными от клиентов, между двумя разными соседними ресторанами.

Мы случайным образом опрашиваем 20 клиентов, которые ели в обоих ресторанах, и просим их оценить их общее удовлетворение по шкале от 1 до 5, где:

  • 1 означает «очень неудовлетворен»
  • 2 означает «неудовлетворенный»
  • 3 означает «нейтральный»
  • 4 означает «удовлетворен»
  • 5 означает «очень доволен»

Мы можем использовать следующий код в R для вычисления полихорической корреляции между рейтингами двух ресторанов:

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.