2015-10-05 2 views
4

Я хотел бы рассчитать - путем начальной загрузки результатов Alpha исхода Криппендорффа - доверительный интервал 95% для альфа-коэффициента Криппендорффа из Raters Надежность с использованием пакета R irr.Бутстраппинг Альфа Alpha Krippendorff

Давайте использовать «данные C из Krippendorff» в пакете IRR и R сценарий для вычисления Альфа Krippendorff однажды:

# the "C" data from Krippendorff 
#rater per row; rated subject per column; NAs allowed 
library(irr) 
nmm<-matrix(c(1,1,NA,1,2,2,3,2,3,3,3,3,3,3,3,3,2,2,2,2,1,2,3,4,4,4,4,4, 
1,1,2,1,2,2,2,2,NA,5,5,5,NA,NA,1,1,NA,NA,3,NA),nrow=4) 
kripp.alpha(nmm,"ordinal") 

ответ

2

Вы можете использовать функцию boot из boot пакета для начальной загрузки значений. Здесь я буду грузиться набором предметов, но сохранить оценщики исправлены:

library(boot) 
library(irr) 
ka <- function(data, indices) kripp.alpha(nmm[,indices], "ordinal")$value 
b <- boot(seq(ncol(nmm)), ka, 1000) 

Теперь вы можете использовать функцию boot.ci для вычисления 95% доверительного интервала для бутстрапируемого значения; Я буду использовать процентиль доверительный интервал, но другие имеющиеся (проверить ?boot.ci):

boot.ci(b, type="perc") 
# BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS 
# Based on 1000 bootstrap replicates 
# 
# CALL : 
# boot.ci(boot.out = b, type = "perc") 
# 
# Intervals : 
# Level  Percentile  
# 95% (0.4297, 1.0000) 
# Calculations and Intervals on Original Scale 
2

К сожалению, бутстраповская решение дается josliber не делать то, что вы думаете, что он делает. Проблема в том, что boot() ожидает данные в nXm-матрице, тогда как kripp.alpha() ожидает данные в матрице mXn. Приведенное решение будет работать, как показано на рисунке, но повторная выборка выполняется не субъектами, а оценщиками, поэтому с 4 оценщиками в наборе данных примера у нас имеется небольшое количество возможных выборок, при условии, что набор с повторной выборкой придет из одного ратера (следовательно, интервал conf включает 1,0).

Одним из решений является сохранение ваших данных в форме nXm, которую использует загрузка, и добавление транспонирования матрицы, прежде чем передать ее kripp.alpha().

alpha.boot <- function(data,x) { 
    d <- t(data[x,]) 
    kripp.alpha(d,method="nominal")$value 
} 
+0

я должен быть очень рад получить более подробную R-код. –

+0

Я действительно думал, что JosLiber загрузил индексы (= alpha из метода krippendorff), чтобы оценить 95% CI –

1

Вероятно, слишком поздно, чтобы быть полезным для Павла, но и для будущего эталонным отметить, что ни один из предложенных методов не согласуется с алгоритмом самозагрузки, описанным Клаус Криппендорфф (http://web.asc.upenn.edu/usr/krippendorff/boot.c-Alpha.pdf).

Повторяющиеся образцы не выполняют ни рисунки, ни единицы, а «гипотетические данные надежности из матрицы наблюдаемых совпадений между парами значений, присвоенных единицам в независимых повторениях» (Krippendorff 2016). Таким образом, обычные реализации бутстрапов не будут давать ответ, намеченный Криппендорфом.

Лучшие Daniel

+0

Даниэль подтвердил, что я уже испытал с предложением kjohnson. Поэтому мне пришлось отказаться от метода Криппендорфа в нашей статье. Тем не менее, новые предложения по начальной загрузке альпинистов Криппендорфа - это хорошие результаты с точки зрения анализа результатов шкалы Ликерта. –

+0

Действителен для расчета 95% ДИ Криппендорффа альфы со стандартным бутстрапом (http://bmcmedresmethodol.biomedcentral.com/articles/10.1186/s12874-016-0200-9). Код R вы можете найти здесь (https://static-content.springer.com/esm/art%3A10.1186%2Fs12874-016-0200-9/MediaObjects/12874_2016_200_MOESM3_ESM.docx). Существует также обертка для обтекания на Krippendorfs alpha (https://github.com/MikeGruz/kripp.boot/blob/master/R/kripp.boot.R). – Kev

Смежные вопросы