질적 연구의 코더 간 신뢰도
정성 코딩 설계마다 맞는 계수, 알파 0.800과 0.667 기준이 나온 곳, 데이터의 얼마를 이중 코딩해야 하는지를 설명합니다.
코더 간 신뢰도(ICR)는 둘 이상의 코더가 같은 발췌문에 하나의 코드북을 얼마나 일관되게 적용하는지를 나타내는, 우연 보정된 척도입니다. 내용 분석이나 고정 코드북을 사용하는 정성 연구는 보통 데이터의 10~25%를 이중 코딩한 표본에서 Krippendorff의 알파나 Cohen의 카파를 보고하며, α ≥ 0.800이 관례적 기준이고 0.667은 잠정적 결론을 위한 하한입니다. 성찰적 주제 분석은 이 방법이 코딩을 두 번째 코더가 맞출 정답이 없는 해석 행위로 보기 때문에 계수를 생략합니다.
코더 간 신뢰도는 같은 자료를 독립적으로 코딩하는 코더 사이의 일치도로, 우연으로 기대되는 일치도를 뺀 계수로 측정합니다. 코딩 프레임이라고도 하는 코드북은 각 코드의 정의, 포함 및 제외 규칙, 예시와 함께 코드를 나열합니다. 퍼센트 일치도는 우연 보정 없이 코더들이 같은 코드를 부여한 발췌문의 비율입니다. Cohen의 카파는 두 코더를 비교하고, Fleiss의 카파는 모든 발췌문에 대해 고정된 수의 코더를 비교합니다. Krippendorff의 알파는 코더 수에 관계없이, 누락된 코딩과 명목, 순서, 등간 코드를 다룹니다. 주제 분석은 데이터셋 전반에서 주제를 발전시키는 방법들의 집합이며, 이 집합의 구성원들은 ICR에 대해 의견이 갈립니다.
어노테이터 간 일치도 설명은 계수의 산술을 다룹니다. 코드북 개발 가이드는 코드 작성을 다룹니다. 튜토리얼 두 코더로 인터뷰 전사문을 코딩하고 알파 보고하기는 Potato에서 발췌문부터 알파까지 전체 프로젝트를 실행하며, Potato의 정성 연구는 Potato의 정성 기능을 한곳에 나열합니다.
정성 연구가 코더 간 신뢰도를 보고하는 경우
내용 분석가는 ICR을 방법의 요건으로 제시하며, O'Connor and Joffe (2020)는 주제 분석에도 ICR을 적용합니다. 여러 코더가 자료를 나눠 맡는 곳에서는 계수가 제 자리를 얻는데, 계수는 각 코더가 혼자 코딩하기 전에 코드북을 같은 방식으로 적용하는지를 보여 주기 때문입니다. 각 코드를 포함하는 인터뷰가 몇 건인지 세는 연구도 같은 이유로 ICR이 필요합니다. 팀 안에서 코드별로 계수를 계산하는 코더는 어떤 코드를 코더들이 다르게 읽는지 알 수 있으며, O'Connor and Joffe는 그 코드들에 대한 논의가 최종 점수보다 가치가 큰 경우가 많다고 판단합니다. 일부 분야의 심사자는 ICR을 요구하며, COREQ 보고 체크리스트는 코더의 수를 요구합니다.
방법이 계수에 반대하는 경우
성찰적 주제 분석(TA)은 연구자의 주관성을 자원으로, 코딩을 해석 행위로 취급합니다. Braun and Clarke (2023)는 코딩이 정확할 수 있다는 생각을 거부하며, 합의 코딩과 코더 간 일치도 측정을 성찰적 연구에 덧붙이는 "개념적으로 일관성 없는" 요소라고 부릅니다. Braun and Clarke는 성찰적 TA를 다른 두 종류의 주제 분석과 구분합니다. 코딩 신뢰도 TA는 독립된 코더와 일치도 계수를 사용하고, 프레임워크 분석 같은 코드북 접근은 코딩 신뢰도 TA의 구조화된 절차 일부를 빌려 옵니다. 일부 근거 이론 연구자도 ICR을 거부하는데, 근거 이론은 분석이 진행되면서 코드를 재귀적으로 구축하기 때문입니다. 성찰적 TA의 서술은 계수 대신 연구자의 성찰성과 이론적 가정을 기술합니다.
O'Connor and Joffe는 높은 계수를, 개념적 틀을 공유하는 연구자들이 데이터에 대해 합의된 해석에 도달했다는 증거로 읽음으로써 인식론적 반론에 답합니다. 두 저자는 거짓 정밀성에서 더 큰 위험을 보는데, 높은 수치가 부실한 분석을 엄밀해 보이게 만들 수 있기 때문입니다. 연구마다 하나의 입장을 선택하고 방법 절에 그 입장을 밝히세요.
코딩 설계별로 맞는 계수
계수는 코딩 전에 내리는 두 가지 결정에서 나옵니다. 첫 번째 결정은 단위로, 모든 코더가 보는 고정 발췌문인지 각 코더가 표시하는 구간인지입니다. 두 번째 결정은 발췌문 하나에 코드를 하나만 부여하는지 여러 개를 부여하는지입니다.
| 코딩 설계 | 계수 |
|---|---|
| 코더 두 명, 발췌문당 코드 하나 | Cohen의 카파 또는 명목 알파 |
| 코더 세 명 이상이 모든 발췌문을 코딩 | Fleiss의 카파 또는 명목 알파 |
| 코더들이 겹치지만 서로 다른 발췌문을 코딩하거나 코딩이 누락됨 | Krippendorff의 알파 |
| 발췌문당 여러 코드 | 모든 발췌문에서 있음 또는 없음으로 채점한 코드별 알파 또는 카파 |
| 강도처럼 순서 척도의 코드 | 순서형 알파 또는 가중 카파 |
| 각 코더가 구간 경계를 표시 | 단위화된 데이터를 위한 알파, 또는 먼저 구간을 고정 |
발췌문당 여러 코드는 인터뷰 코딩에서 흔합니다. O'Connor and Joffe는 각 코더에 대해 모든 발췌문에서 각 코드를 1 또는 0으로 채점하고 코드별로 계수를 계산합니다. 코드별 값은 어떤 정의를 손봐야 하는지 보여 주는 반면, 하나로 합친 수치는 신뢰할 수 있는 코드가 신뢰할 수 없는 코드를 가리게 합니다. Krippendorff (2004)는 내용 분석에 대해 같은 주장을 하며 변수들 중 가장 작은 값을 전체의 신뢰도로 삼습니다.
구간 경계는 인터뷰 코딩에서 더 어려운 문제입니다. 인용문을 각자 골라 코딩하는 코더들은 나누고 합치는 방식이 다르며, 자동 비교는 문장 부호 하나만 다른 두 인용문을 서로 다른 단위로 취급할 수 있습니다. 2004년의 두 번째 Krippendorff 논문은 알파를 코더가 텍스트의 연속체 안에서 식별하는 단위로 확장합니다. 더 단순한 방법은 구간을 먼저 고정하는 것입니다. 첫 번째 코더가 전사문을 구간으로 나누고 코딩하면, 두 번째 코더는 코드가 제거된 같은 구간을 받습니다. 그러면 ICR은 고정된 발췌문에 대한 코드 적용을 측정하며 경계 일치도는 측정하지 않은 채로 남습니다.
관례적 기준과 각각의 출처
Krippendorff (2004)는 α ≥ 0.800을 요구하고, 잠정적 결론이 여전히 허용되는 경우에는 α ≥ 0.667을 요구할 것을 제안합니다. 같은 논문은 완전 일치를 제외하면 "마법의 숫자는 없다"고 말하고, 허용 수준을 부당한 결론을 내릴 때의 비용에 연결하며, 연구자들에게 신뢰구간을 참고하라고 요청합니다. 카파에 대해 O'Connor and Joffe는 Landis and Koch (1977)의 구간을 0.410.60 보통, 0.610.80 상당함, 0.811 거의 완벽함으로 요약합니다. McHugh (2012)는 Cohen의 원래 해석이 보건 연구에는 너무 관대하다고 보고 카파 0.600.79를 보통, 0.80~0.90을 강함이라고 부릅니다. O'Connor and Joffe는 퍼센트 일치도에 대한 Miles and Huberman의 기준, 즉 코드의 95%에서 80% 일치도도 인용합니다. O'Connor and Joffe는 코딩이 시작되기 전에 기준을 정하고, 의료, 정책, 재무 결정에 정보를 제공하는 발견에는 더 높은 기준을 적용하라고 조언합니다.
이중 코딩 표본의 크기
O'Connor and Joffe는 데이터 단위의 10~25%를 일반적이라고 보며, 무작위로 또는 각 층에서 한 사례를 뽑는 것처럼 명시된 규칙으로 추출합니다. 정식 표본 전에 두 코더는 인터뷰 하나를 비공식적으로 코딩하고 코딩을 비교하여 잘못 읽은 정의를 잡아냅니다. 수정 후 다음 라운드는 다른 부분집합을 사용하며, 신뢰도 라운드에서 코딩한 발췌문은 최종 코드북으로 다시 코딩합니다. 나중에 합류하는 코더에게는 별도의 신뢰도 점검이 필요합니다. 작은 표본에서 나온 계수는 구간이 넓으므로 모든 계수 옆에 발췌문과 코더의 수를 보고하세요.
불일치에서 코드북 수정까지
코더들은 신뢰도 표본을 독립적으로 코딩한 뒤 만나서 각 불일치를 하나씩 검토합니다. 팀은 불분명한 정의를 다시 쓰고, 제외 규칙과 예시를 추가하며, 코더들이 구분하지 못하는 코드를 병합합니다. 그런 다음 코더들은 새로운 발췌문으로 두 번째 독립 라운드에서 수정된 코드북을 시험합니다. O'Connor and Joffe는 같은 코더들과 라운드를 반복하면 그 코더들 사이에 "해석적 수렴"이 생길 수 있지만 새로운 독자에게 코드북이 더 명확해지지는 않는다고 경고합니다. 코더들이 어떤 불일치든 논의하기 전, 독립 코딩에서 나온 계수를 보고하세요. 최종 코딩 데이터는 합의, 세 번째 코더의 투표, 또는 선임 연구자의 결정에서 나오며, 방법 절은 그 규칙을 밝힙니다.
Potato의 신뢰도 라운드
아래 구성은 병원 이용에 관한 인터뷰 발췌문에 대한 신뢰도 라운드를 설정합니다. 표본 밖의 각 발췌문은 코더 한 명에게 가고, 두 코더가 각 참가자 안에서 뽑은 20% 표본을 코딩합니다. 라운드 동안 코드북이 고정되므로 어떤 코더도 라운드 도중에 코드를 추가할 수 없습니다. 각 코드의 정의는 그 코드의 툴팁으로 표시됩니다.
annotation_task_name: Clinic access interviews, reliability round 1
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/excerpts.jsonl
item_properties:
id_key: id
text_key: text
user_config:
allow_all_users: true
users: []
# Two coders on a 20% sample drawn within each participant, one coder elsewhere
num_annotators_per_item:
default: 1
overlap_sample:
fraction: 0.2
count: 2
stratify_by: participant_id
seed: 7
assignment_strategy: random
# Coders apply the agreed codes and cannot add new ones during the round
codebook_mode: fixed
annotation_schemes:
- annotation_type: multiselect
name: codes
description: Which codes apply to this excerpt? Hover over a code for its definition.
humanize_labels: false
labels:
- {name: Access barriers, tooltip: "Distance, transport, opening hours, or waiting time keep the participant from care"}
- {name: Cost concerns, tooltip: "Fees, insurance, or lost wages shape whether the participant seeks care"}
- {name: Provider trust, tooltip: "Confidence or distrust in clinic staff, their competence, or their motives"}
- {name: Administrative burden, tooltip: "Forms, referrals, phone queues, or eligibility rules the participant has to work through"}
- {name: No code applies, tooltip: "The excerpt touches none of the codes above"}
adjudication:
enabled: true
adjudicator_users: [lead]
min_annotations: 2data/excerpts.jsonl의 각 줄에는 id, text, participant_id가 있습니다. "No code applies" 코드는 모든 발췌문에 답을 줍니다. Potato의 신뢰도 내보내기는 코더가 코드를 하나도 선택하지 않은 발췌문을 제외하며, 이 코드가 없으면 하나의 주제와 주제 없음 사이의 불일치가 알파에 반영되지 않을 것입니다. 두 코더 튜토리얼이 무작위 배정을 설명합니다. QDA 모드에서 코드북을 만든 팀은 이 라운드에서도 codebook_mode: fixed와 함께 qda_mode를 켠 채로 둘 수 있습니다. QDA 모드에서는 Potato가 중복과 함께 search.annotator_claim을 거부하는 검사를 건너뜁니다. 표본을 코딩하는 동안에는 annotator_claim을 꺼 두세요.
두 코더가 모두 마치면 신뢰도 표를 내보내고 라운드를 고정하세요.
python -m potato.export --config config.yaml --format reliability --output export/
potato snapshot create config.yaml --tag icr-round-1 --note "Reliability round 1"내보내기는 질문당 한 행으로 reliability.csv와 reliability.md를 씁니다. codes 질문에 대해 이 행은 각 발췌문의 코드 집합에 대한 MASI 거리를 쓴 Krippendorff의 알파, 발췌문에 대한 95% 백분위수 부트스트랩 구간, 동일한 집합에 대한 퍼센트 일치도, 발췌문과 코더의 수를 제공합니다. 스냅숏은 프로젝트 스냅숏에 설명된 대로 라운드의 구성, 데이터, 코딩, 질문별 알파를 태그 아래 저장합니다. 그런 다음 책임자는 /adjudicate를 열어 각 불일치를 해소하고, 정의가 불일치를 일으킨 곳마다 "Flag for guideline update"를 체크합니다. adjudication 내보내기는 그 플래그를 adjudication_log.jsonl에 씁니다. 플래그가 붙은 발췌문은 다음 라운드 전의 코드북 수정 안건을 정합니다.
Potato의 두 일치도 보고서는 정성 코더가 쓰는 스킴 유형을 다음과 같이 다룹니다.
| 스킴 | reliability 내보내기 | /admin/iaa 대시보드 |
|---|---|---|
radio, select(발췌문당 코드 하나) | 명목 알파, 퍼센트 일치도 | 퍼센트 일치도, 코더 쌍에 대해 평균한 Cohen의 카파, Fleiss의 카파, 명목 알파 |
multiselect, hierarchical_multiselect(여러 코드) | MASI 거리를 쓴 알파, 퍼센트 일치도 | 평균 Jaccard, MASI 거리를 쓴 알파 |
likert | 순서형 알파 | 선형 및 이차 가중 카파, Spearman의 rho, 순서형 알파 |
span(강조된 구절) | 발췌문에 걸쳐 합친 문자 수준 알파 | 토큰 수준 카파, 정확 및 부분 스팬 F1, 문자 수준 알파, Mathet의 감마 |
textbox와 메모 | 없음 | 없음 |
대시보드는 한 발췌문에 배정된 모든 코더가 그 발췌문을 마치면 해당 발췌문을 채점하며, 일치도 드리프트는 주 코딩 동안 같은 계수를 구간별로 보여 줍니다. Potato 2.13.1에는 네 가지 공백이 남아 있습니다.
- 코드별 알파 없음. 두 보고서 모두 질문당 하나의 값을 제공하며, 두 코더 튜토리얼에는 CSV 내보내기로 코드별 알파를 계산하는 스크립트가 있습니다.
- 단위화 알파 없음.
span질문의 문자 수준 알파는 모든 문자를 고정된 단위로 취급하며, 스팬 일치도가 그 차이를 설명합니다. - 다른 지표 없음. Potato는 Scott의 pi, Holsti 지수, Gwet의 AC1, Brennan과 Prediger의 카파를 계산하지 않습니다.
- 기준 판단 없음. 내보내기는 라벨 없이 값을 보고하며, 대시보드는 0.6에서 0.8 사이의 값에 "substantial" 배지를 붙입니다. 이 구간은 Krippendorff의 0.667보다 아래에서 시작합니다. 각 값을 연구가 사전에 정한 기준과 비교하세요.
자주 묻는 질문
코더 간 신뢰도에는 Krippendorff의 알파와 Cohen의 카파 중 무엇을 써야 하나요?
코더가 둘을 넘거나, 코더들이 서로 다르지만 겹치는 발췌문을 코딩했거나, 코드에 순서가 있다면 Krippendorff의 알파를 사용하고, 두 코더가 같은 발췌문에 순서 없는 코드를 적용했다면 어느 계수든 사용하세요. 두 코더의 완전한 명목 데이터에서는 두 값이 보통 가깝게 나옵니다. 코더들이 코드를 서로 다른 비율로 쓰면 두 값이 갈라지는데, 카파는 우연 일치도를 각 코더 자신의 코드 빈도로 계산하고 알파는 합친 빈도로 계산하기 때문입니다.
코더 간 신뢰도에서 허용되는 Krippendorff의 알파는 얼마인가요?
0.800 이상의 알파가 관례적 기준이며, 0.667은 Krippendorff (2004)가 잠정적 결론에 받아들이는 가장 낮은 값입니다. Krippendorff는 기준선을 잘못된 결론의 비용에 연결하고, 사람의 생명이 결과에 달려 있을 때는 훨씬 높은 기준을 정합니다. 코드 전체에 대한 평균이 아니라 각 코드에 기준을 적용하고, 점 추정값 옆에 부트스트랩 구간을 보고하세요.
코더 간 일치도에는 어느 정도의 Cohen의 카파면 충분한가요?
0.81에서 0.90 사이의 카파는 Landis and Koch (1977)의 구간에서는 거의 완벽함으로, McHugh (2012)의 더 엄격한 척도에서는 강함으로 간주됩니다. McHugh는 거의 완벽함을 0.90을 넘는 카파에 한정합니다. Landis and Koch는 0.610.80을 상당함이라고 부르는 반면, McHugh는 0.600.79를 보건 연구에서는 보통에 불과하다고 부릅니다. 코딩 전에 기준을 정하고 코드별로 카파를 보고하세요.
Krippendorff의 알파와 함께 퍼센트 일치도도 보고해야 하나요?
예, 알파 옆에 기술적 수치로 보고하되 신뢰도 주장은 알파로 하세요. 퍼센트 일치도는 우연을 무시합니다. 어떤 코드를 드물게 적용하는 두 코더는 그 코드가 어디에 적용되는지에 대해서는 한 번도 일치하지 않더라도 대부분의 발췌문에서 일치합니다. Krippendorff (2004)는 퍼센트 일치도를 신뢰도 척도로 거부하고, McHugh (2012)는 퍼센트 일치도와 카파를 모두 계산하라고 조언합니다. Potato의 reliability 내보내기는 모든 질문에 대해 두 열을 모두 씁니다.
더 읽을거리
- Potato의 정성 연구, ICR을 보고할지 여부와 Potato의 정성 기능
- 정성 데이터 분석 소프트웨어 비교, 각 QDA 프로그램이 보고하는 계수
- 두 코더로 인터뷰 전사문을 코딩하고 알파 보고하기, 코드별 알파가 있는 전체 코딩 프로젝트
- 인터뷰 전사문 코딩하기, 녹음부터 코딩된 발췌문까지의 단계
- LLM 보조 정성 코딩, 모델을 두 번째 코더로 쓰기
- 정성 코딩을 위한 공유 코드북, 코드북 모드와 수정 이력
- 판정과 불일치 해소, 불일치 해소
- 일치도 계산기, 어떤 도구에서든 내보낸 코드 CSV로 알파와 카파 계산
참고문헌
- Braun, V., & Clarke, V. (2023). Toward good practice in thematic analysis: Avoiding common problems and be(com)ing a knowing researcher. International Journal of Transgender Health, 24(1), 1-6. https://doi.org/10.1080/26895269.2022.2129597
- Krippendorff, K. (2004). Reliability in content analysis: Some common misconceptions and recommendations. Human Communication Research, 30(3), 411-433. https://doi.org/10.1111/j.1468-2958.2004.tb00738.x
- Krippendorff, K. (2004). Measuring the reliability of qualitative text analysis data. Quality & Quantity, 38(6), 787-800. https://doi.org/10.1007/s11135-004-8107-7
- Landis, J. R., & Koch, G. G. (1977). The measurement of observer agreement for categorical data. Biometrics, 33(1). https://doi.org/10.2307/2529310
- McHugh, M. L. (2012). Interrater reliability: The kappa statistic. Biochemia Medica, 22(3), 276-282. https://doi.org/10.11613/BM.2012.031
- O'Connor, C., & Joffe, H. (2020). Intercoder reliability in qualitative research: Debates and practical guidelines. International Journal of Qualitative Methods, 19, 1-13. https://doi.org/10.1177/1609406919899220