В зиловском диалекте андийского языка существует два класса для неодушевленных предметов. В 2017 году был проведен эксперимент, чтобы проверить, наличие вариативности в отнесению к тому или иному классу заимствованой и исконной лексики.
zilo_classes <- read.csv("https://goo.gl/MPquvV")
head(zilo_classes)Переменные в датасете:
В данном датасете я собрал информацию о количестве слогов в переводах 57 сонета У. Шекспира и в самом сонете.
sonet <- read.csv("https://goo.gl/cqPDkq")
head(sonet)Данные взяты из исследования [Endresen, Janda 2015], посвященное исследованию маргинальных глаголов изменения состояния в русском языке. Испытуемые (70 школьников, 51 взрослый) оценивали по шкале Ликерта (1…5) приемлемость глаголов с приставками о- и у-:
marginal_verbs <- read.csv("https://goo.gl/Pq1S8V")
head(marginal_verbs)Переменные в датасете:
Процент полного согласия — это процент случаев, когда все оценщики идентичны в своих суждениях.
#install.packages("irr") установите пакет!
library("irr")
agree(zilo_classes[,-c(1:3)])## Percentage agreement (Tolerance=0)
##
## Subjects = 106
## Raters = 16
## %-agree = 74.5
round(74.5*106/100) # количество случаев полного согласия## [1] 79
agree(sonet[,-1])## Percentage agreement (Tolerance=0)
##
## Subjects = 14
## Raters = 14
## %-agree = 0
Эту меру иногда ошибочно приводят как меру согласия оценщиков, однако она не учитывает возможность случайного совпадения / расхождения суждений.
(1) Посчитайте процент полного согласия в данных о маргинальных глаголах.
(2) Посчитайте количество случаев полного согласия в данных о маргинальных глаголах.
Каппа Коэна мера согласованности между двумя категориальными переменными. Обычно говорят о двух оценщиках, которые распеделяют \(n\) наблюдений по \(s\) категориям.
\(\kappa = \frac{p_o-p_e}{1-p_e},\)
где \(p_o\) — доля полного согласия, а \(p_e\) — вероятность случайного согласия.
Для случая \(s\) = 2, можно нарисовать следующую таблицу сопряженности:
| \(s_1\) | \(s_2\) | |
|---|---|---|
| \(s_1\) | a | b |
| \(s_2\) | c | d |
В таком случае:
Выберем двух спикиров из наших данных:
zilo_classes_2s <- zilo_classes[,c(4, 14)]
agree(zilo_classes_2s)## Percentage agreement (Tolerance=0)
##
## Subjects = 106
## Raters = 2
## %-agree = 92.5
table(zilo_classes_2s)## s_4
## s_1 b r
## b 54 2
## r 6 44
p_o <- (47+46)/(47+46+4+9)
p_o## [1] 0.8773585
p_e <- ((47+9)*(47+4)+(46+9)*(46+4))/(47+9+4+46)^2
p_e## [1] 0.498932
coehns_kappa <- (p_o - p_e)/(1 - p_e)
coehns_kappa## [1] 0.7552398
kappa2(zilo_classes_2s)## Cohen's Kappa for 2 Raters (Weights: unweighted)
##
## Subjects = 106
## Raters = 2
## Kappa = 0.848
##
## z = 8.76
## p-value = 0
Функция kappa2 из пакета irr также приводит p-value, которое высчитывается для нулевой гипотезы, что каппа Коэна равна нулю.
Если вы хотите, чтобы ваши оценщики не оценивались как равноценные, вы можете использовать взвешенную каппу Коэна.
В [Landis, Koch 1977] предложена следующая интерпретация каппы Коэна:
Каппа Коэна — не единственная мера согласия между двумя оценщиками. Существуют работы, в которых каппу Коэна ругают.
(3) Посчитайте каппу Коэна для спикеров в 4 и 120 столбцах данных про глаголы.
(4) Посчитайте каппу Коэна для переводов А. Велигжанина и М. Чайковского.
\[\tau = \frac{C-D}{C+D}\]
data.frame(cor(sonet[, -1], method = "kendall"))Бывает еще ранговая корреляция Спирмана (cor(..., method = "spearman")).
(5) Какой коэфициент корреляции Кендала между спикерами в 4 и 120 столбцах данных про глаголы.
Обощением каппы Коэна для оценщиков больше двух является каппа Фляйса. \(k\) оценщиков распеделяют \(n\) наблюдений по \(s\) категориям.
\(\kappa = \frac{\bar{P}_o-\bar{P}_e}{1-\bar{P}_e},\)
где \(\bar{P}_o\) — средняя доля пар согласных оценщиков из всех пар, а \(\bar{P}_e\) — вероятность случайного согласия.
zilo_classes[,-c(1:3)]В нашем датасете \(k\) = 16, \(n\) = 106, \(s\) = 2.
Посчитаем, насколько оценщики согласны относительно третьего слова (3 b, 13 r). Для этого посчитаем долю пар оценщиков, которые согласны, среди всех возможных пар:
kappam.fleiss(zilo_classes[,-c(1:3)])## Fleiss' Kappa for m Raters
##
## Subjects = 106
## Raters = 16
## Kappa = 0.849
##
## z = 95.7
## p-value = 0
kappam.fleiss(marginal_verbs[,-c(1:3)])## Fleiss' Kappa for m Raters
##
## Subjects = 59
## Raters = 121
## Kappa = 0.394
##
## z = 452
## p-value = 0
(6) Посчитайте каппу Фляйса для сонетских данных.