설문 보정의 기초와 레이킹 알고리즘
설문 조사에서 수집된 표본 데이터는 무응답이나 표집 편향으로 인해 실제 모집단의 인구통계학적 분포와 일치하지 않는 경우가 많습니다. 설문 가중치 계산기는 이러한 표본 데이터를 알려진 모집단 마진(Marginal distribution)에 맞게 조정하는 도구입니다. 이 도구는 반복 비례 적합(Iterative Proportional Fitting, IPF)으로도 알려진 레이킹(Raking) 알고리즘을 사용하여 각 응답자의 가중치를 자동으로 미세 조정합니다.
레이킹 알고리즘은 사용자가 입력한 원시 응답자 행 데이터와 목표 인구 백분율을 바탕으로 작동합니다. 알고리즘이 실행되면 표본의 마진 분포가 목표치와 일치할 때까지 개별 응답자의 가중치를 반복적으로 조정하며, 수렴 여부와 가중치 조정 폭, 그리고 이 과정이 설문 조사의 통계적 정밀도 및 유효 표본 크기에 미치는 영향을 즉각적인 진단 피드백으로 제공합니다.
레이킹과 사후 층화의 차이
설문 보정에서 사후 층화(Post-stratification)는 모든 보정 변수의 교차 셀(예: 특정 연령대이면서 특정 지역에 거주하는 집단)에 대한 모집단 크기를 알아야 합니다. 반면 레이킹은 각 변수의 주변 분포(Marginal distribution) 정보만 있어도 다중 마진을 동시에 맞출 수 있습니다.
만약 단 하나의 범주형 변수만 입력되는 경우(Single Margin Behavior), 계산기는 단 한 번의 주기로 보정을 완료합니다. 이때는 각 범주에 대해 단순한 '대상 비율 ÷ 현재 비율' 조정을 적용하는 사후 층화와 동일하게 작동합니다. 그러나 여러 개의 마진을 사용하는 경우, 알고리즘은 한 번에 하나의 마진을 조정한 후 이전 마진이 다시 흐트러지는 것을 방지하기 위해 수렴할 때까지 순환 조정을 반복합니다. 이 방식은 목록에 없는 교차 조합까지 강제로 일치시키지는 않습니다.
입력 데이터 형식 및 제약 조건
도구를 올바르게 사용하려면 응답자 데이터와 인구 마진 테이블을 정해진 형식에 맞게 준비해야 합니다.
- 응답자 데이터: 헤더 행을 포함하여 한 행에 한 명의 응답자 데이터가 들어가야 합니다. 탭, 세미콜론, CSV 쉼표를 구분 기호로 지원합니다. 소수점 기호가 점(
.)이 아닌 지역에서는 소수점이 셀 내부에서 분리되지 않도록 탭이나 세미콜론을 구분 기호로 사용해야 합니다. 이 테이블은 최대 2,000,000자 이하, 20,000행 이하여야 하며, 빈 헤더가 없는 고유한 이름의 열이 최소 2개 이상 필요합니다. - 인구 마진 (%): 변수, 범주, 대상 백분율의 정확히 3개 열로 구성되어야 합니다. 최대 500행, 보정 변수 6개, 변수당 범주 100개 이하로 제한됩니다. 각 변수의 대상 백분율은 0%에서 100% 사이여야 하며, 변수별 합계는 정확히 100%가 되어야 합니다. 또한 표본에 존재하는 모든 범주가 대상 테이블에 누락 없이 포함되어야 합니다.
- 기본 가중치 열 (선택 사항): 무응답 조정이나 추출 확률의 역수로 계산된 시작 가중치 열을 지정할 수 있습니다. 이 값은 0보다 큰 유한한 수여야 하며, 비워두면 모든 응답자의 시작 가중치가 1로 기본 설정됩니다.
- 결과 열 (선택 사항): 가중치 적용 전후의 평균을 비교하기 위한 유한한 숫자 열입니다.
- 알고리즘 설정: 상대 허용오차는 1e-12부터 1e-2 사이, 최대 반복 횟수는 1부터 500 사이의 정수로 설정할 수 있습니다.
Kish 가중치 효과와 정밀도 손실
가중치 보정은 표본의 편향을 줄여주지만, 응답자 간 가중치의 편차가 커지면 통계적 분산이 증가하여 추정치의 정밀도가 떨어지는 부작용(Bias-Variance Tradeoff)이 발생합니다. 도구는 이를 진단하기 위해 Kish 가중치 효과와 유효 표본 크기를 계산하여 보여줍니다.
이 Kish 진단 지표는 불균등 가중치로 인한 정밀도 손실만을 반영하며, 군집화, 층화 또는 복합 표본 설계에 따른 전체 조사 분산 추정치는 포함하지 않습니다.
‹variable› / ‹category›: 배율 = 대상 합계 ÷ 현재 합계 = ‹target› ÷ ‹current› = ‹factor›최종 가중치의 평균이 1이 되도록 정규화하여 가중치 합계가 응답자 수와 같아지도록 합니다: Σw = n = ‹count›.Kish 가중치 효과 = n·Σw² ÷ (Σw)² = ‹count›·‹sumSquares› ÷ ‹sum›² = ‹effect›.유효 표본 크기 = (Σw)² ÷ Σw² = ‹sum›² ÷ ‹sumSquares› = ‹effective›.
이 가중치들은 제공하신 마진과 일치하며, 제공하지 않은 변수와는 일치하지 않습니다. Kish 진단은 불균등 가중치만을 반영하며, 군집화, 층화 또는 전체 조사 분산 추정치는 포함하지 않습니다.
알고리즘 수렴 실패 및 경고 진단
레이킹 계산 중 다음과 같은 예외적인 상황이나 오류가 발생할 수 있습니다.
- Zero-Cell 조건: 모집단 대상 백분율은 양수인데 표본 데이터에 해당 범주의 응답자가 없거나 시작 가중치 합이 0인 경우, 유한한 해를 구할 수 없어
“‹variable› / ‹category›”의 대상은 양수이나 사용할 수 있는 표본 가중치가 없어 유한한 해가 존재하지 않습니다.오류가 발생합니다. - 수렴 실패: 최대 반복 횟수에 도달할 때까지 설정한 상대 허용오차를 만족하지 못하면 계산이 중단되고
수렴하기 전에 반복 한도(‹iterations›)에 도달했습니다. 마지막 가중치는 보정된 결과가 아닌 진단용으로 표시됩니다.상태가 표시됩니다. - 극단적인 가중치: 마진은 일치했으나 최종 가중치의 최댓값과 최솟값의 비율이 너무 크면
마진은 일치했으나 가장 큰 가중치가 가장 작은 가중치의 ‹ratio›배입니다. 사용하기 전에 유효 표본 크기를 확인하세요.경고가 표시됩니다. - 이미 일치함: 시작 가중치가 이미 목표 마진과 완벽히 일치하는 경우
시작 가중치가 이미 요청된 모든 마진과 일치합니다.메시지가 나타납니다.
개인정보 보호 및 데이터 처리
본 계산기는 사용자의 데이터 프라이버시를 철저히 보호합니다. 입력한 모든 응답자 데이터와 계산된 가중치 결과는 외부 서버로 업로드되지 않으며, 전적으로 사용자의 웹 브라우저 내에서만 로컬로 처리됩니다.
자주 묻는 질문 (FAQ)
Q. 기본 가중치로 무엇을 사용해야 하나요?
A. 인구 보정 전에 해당하는 가중치를 사용하세요. 일반적으로 연구에서 요구하는 무응답 조정을 거친 후, 각 응답자의 최종 추출 확률의 역수를 사용합니다. 확률 가중치가 없는 경우 필드를 비워 두어 모든 응답자의 시작 가중치를 1로 설정하세요. 이렇게 하면 보정 가중치가 생성되지만, 편의 표본이 확률 표본으로 변환되지는 않습니다.
Q. 레이킹이란 무엇이며, 언제 하나의 마진이 단순 사후 층화가 되나요?
A. 레이킹(Raking)은 한 번에 하나의 알려진 인구 마진을 조정한 다음, 이후의 조정 후에도 이전 마진이 여전히 일치할 때까지 이를 반복하여 순환합니다. 범주형 변수를 하나만 제공하는 경우 한 주기로 충분하며, 각 범주는 익숙한 '대상 비율 ÷ 현재 비율' 조정을 받게 됩니다. 다중 마진을 사용하더라도 목록에 없는 교차 조합까지 강제로 일치시키지는 않습니다.
Q. 대상의 해가 없거나 수렴에 실패하는 이유는 무엇인가요?
A. 표본 응답자가 없는 범주에서는 양수의 대상을 생성할 수 없습니다. 여러 변수를 사용하는 경우, 관측된 조합으로 인해 겉보기에는 문제가 없어 보이는 마진들이 서로 호환되지 않을 수도 있습니다. 반복 한도가 너무 짧거나 시작 가중치가 극단적이면 요청된 허용오차에 도달하기 전에 계산이 중단될 수 있습니다. 대상 감사 및 최악의 대상 로그를 통해 불일치가 남아 있는 부분을 확인하세요. 이 마지막 가중치들을 보정된 결과로 취급해서는 안 됩니다.
Q. Kish 가중치 효과가 전체 조사 설계 효과인가요?
A. 아닙니다. 이는 불균등 가중치와 관련된 정밀도 손실만을 측정합니다. 가중치가 균등하면 1이 되며, 가중치의 변동성이 커질수록 유효 표본 크기가 감소합니다. 군집화, 층화, 유한 모집단 수정 및 결과와 보정 변수 간의 관계 등은 모두 실제 분산을 변화시킬 수 있습니다. 표준오차와 신뢰구간을 구하려면 전체 표본 설계를 반영할 수 있는 소프트웨어를 사용하세요.