Загрузим базу данных с результатами президентских выборов 2012 года.
reg <- read.csv("http://math-info.hse.ru/f/2017-18/ps-ms/elect18.csv", dec = ",", encoding = 'UTF-8')
Посмотрим на нее:
View(reg)
В таблице представлены результаты голосования по регионам. Число зарегистрированных избирателей (total), число недействительных бюллетеней (invalid), число действительных бюллетеней (valid), явка в процентах и проценты голосов за кандидатов (Жириновский, Зюганов, Миронов, Прохоров, Путин).
Визуализируем связь между двумя количественными переменными: явкой и процентом голосов за Зюганова. Построим диаграмму рассеяния:
plot(reg$turnout_perc, reg$Zu)
Видно, что точки образуют “облако”, которое имеет отрицательный наклон – видно, что с увеличением явки процент за Зюганова уменьшается. По этому графику можно предварительно сделать вывод о том, что связь между показателями обратная и умеренная (точки достаточно плотно сосредоточены вокруг прямой, которую можно было провести через “облако”). Однако, сделать вывод о влиянии явки на процент голосов за Зюганова по такому графику мы не можем, он демонстрирует статистическую связь на основе имеющихся данных, а не гарантированную причино-следственную связь.
Проверим наличие связи формально – посчитаем коэффициент корреляции Пирсона и проверим его статистическую значимость. Итак, гипотезы:
\[H_0: \rho = 0 \mbox{ (связи нет) }\]
\[H_0: \rho \ne 0 \mbox{ (связь есть) }\] Проверяем в R:
# по умолчанию коэффициент Пирсона, указывать необязательно
cor.test(reg$turnout_perc, reg$Zu)
##
## Pearson's product-moment correlation
##
## data: reg$turnout_perc and reg$Zu
## t = -7.875, df = 78, p-value = 1.642e-11
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.7723084 -0.5221606
## sample estimates:
## cor
## -0.6655236
Чтомы видим в выдаче? Во-первых, t
– наблюдаемое значение статистики критерия, которая имеет распределение Стьюдента. Во-вторых, число степеней свободы df
(\(df = n -2 = 80 -2\), в выборке 80 регионов). В-третьих, сам выборочный коэффициент корреляции Пирсона cor
и p-value. Остановимся на последнем поподробнее. Коэффициент корреляции равен -0.67. Отсюда можно сделать вывод о том, что связь между явкой и процентом голосов за Зюганова обратная и умеренная, близкая к сильной. А значим ли этот коэффициент? Другими словами, действительно ли связь есть, или просто так случайно получилось на наших данных? Посмотрим на p-value. Оно представлено в несколько странном виде. Это так называемая научная (экспоненциальная) запись числа. Запись e-11
означает, что число, стоящее слева, нужно домножить на 10 в степени \(-11\), то есть на число, близкое к нулю. Поэтому можно считать, что p-value равно 0. Если p-value равно 0, это значит, что нулевая гипотеза отвергается. А она у нас об отсутствии связи. Следовательно, на уровне значимости 5% (или 1%, или 10%) есть основания отвергнуть нулевую гипотезу об отсутсвии связи. Содержательный вывод: связь между явкой и процентов голосов за Зюганова есть.
Проделаем аналогичные операции для пары показателей явка и процент голосов за Путина.
plot(reg$turnout_perc, reg$Pu)
cor.test(reg$turnout_perc, reg$Pu)
##
## Pearson's product-moment correlation
##
## data: reg$turnout_perc and reg$Pu
## t = 13.618, df = 78, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7592444 0.8939282
## sample estimates:
## cor
## 0.8390003
Видно, что ситуация обратная: связь прямая, сильная. С увеличением явки процент за Путина увеличивается. Коэффициент корреляции Пирсона равен 0.84, и он тоже статистически значим. На любом уровне значимости (5%, 1%, 10%) есть основания отвергнуть нулевую гпотезу об отсутствии связи.
Помимо коэффициента Пирсона существует другой коэффициент – коэффициент корреляции Спирмена. Так как это коэффициент ранговой корреляции, он используется в случае, когда данные измерены в порядковой (ординальной) шкале. Но и в случае количественных переменных он может быть полезен, так как этот коэффициент устойчив к наличию выбросов, нетипичных наблюдений.
Рассмотрим два показателя: x
и y
.
x <- c(1, 2, 6, 8, 9, 7, 7.5, 10, 3, 4, 5.5)
y <- c(2, 4, 11, 15, 19, 16, 14, 23, 7, 6, 11)
plot(x, y)
Видно, что, хотя точек не так много, какая-то прямая связь вырисовывается, и она достаточно сильная. Проверим: посчитаем коэффициент Пирсона и Спирмена:
# Пирсон
cor.test(x, y)
##
## Pearson's product-moment correlation
##
## data: x and y
## t = 13.862, df = 9, p-value = 2.234e-07
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9124984 0.9942928
## sample estimates:
## cor
## 0.9773737
# Спирмен
cor.test(x, y, method = 'spearman')
## Warning in cor.test.default(x, y, method = "spearman"): Cannot compute
## exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: x and y
## S = 8.5188, p-value = 2.449e-06
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.9612781
И в том, и в другом случае, коэффициент корреляции очень высокий, почти 1, и даже значимый. А теперь давайте добавим к нашим точкам одно нетипичное наблюдение – точку с координатами (150, 10).
x <- c(1, 2, 6, 8, 9, 7, 7.5, 10, 3, 4, 5.5, 150)
y <- c(2, 4, 11, 15, 19, 16, 14, 23, 7, 6, 11, 10)
plot(x, y)
Кажется, эта точка все испортила! Посмотрим на коэффициенты корреляции:
cor.test(x, y)
##
## Pearson's product-moment correlation
##
## data: x and y
## t = -0.033164, df = 10, p-value = 0.9742
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.5808924 0.5668262
## sample estimates:
## cor
## -0.01048683
cor.test(x, y, method = 'spearman')
## Warning in cor.test.default(x, y, method = "spearman"): Cannot compute
## exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: x and y
## S = 64.613, p-value = 0.003127
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.7740817
Коэффициент Пирсона “сломался”. Теперь, из-за этой странной точки, которая сильно отличается от остальных, коэффициент изменил знак и стал очень маленьким по модулю. Механизм, который стоит за расчетом коэффициента Пирсона, “не понимает”, что искажения происходят только из-за одной точки, он слишком “резко” реагирует на нее, что приводит к такому значительному изменению значения коэффициента. Коэффициент Спирмена при этом знака своего не поменял и, по сравнению с коэффициентом Пирсона, изменился несильно. Он является устойчивым к нетипичным наблюдениям. Видно, что и здесь он устоял: с добавлением странной точки его значение уменьшилось примерно на 0.2, но этот коэффициент по-прежнему говорит о сильной прямой связи между x
и y
.