# 카이제곱 (Chi-Square)

카이제곱(χ²) 검정은 데이터를 여러 범주나 구간(빈, bin)으로 나눠 센 관측 빈도 O가 기준 분포에서 예상되는 기대 빈도 E와 얼마나 차이 나는지를 χ² = Σ(O − E)²/E 하나의 수로 요약하고, 그 값이 우연으로 설명될 수 있는지 판단하는 통계 검정입니다. 범주형 데이터의 적합도 검정과 독립성 검정에 널리 쓰입니다.

## 자세히 알아보기

귀무 가설(데이터가 기준 분포를 따른다)이 참이고 표본이 충분히 크면, 통계량 χ²는 근사적으로 자유도 k−1(범주 수 k에서 추정한 모수 수를 더 뺌)의 카이제곱 분포를 따릅니다. 계산한 χ² 값이 이 분포의 꼬리에 해당하면(p-값이 유의수준보다 작으면) 귀무 가설을 기각합니다.

실무 규칙으로는 각 빈의 기대 빈도가 대략 5 이상이 되도록 범주를 잡아야 근사가 정확해집니다. 연속형 데이터를 구간으로 나누지 않고 누적 분포 전체를 비교하려면 콜모고로프-스미르노프 검정을 씁니다. 적합도 검정은 보통 값이 큰 쪽(위쪽 꼬리)을 기각 영역으로 삼습니다.

χ² 값이 너무 작아도 의심해야 합니다. 관측값이 기대값과 '지나치게 잘' 맞는다는 것은 데이터가 인위적으로 조작되었을 가능성을 시사하기 때문입니다.

## 블록체인·암호화폐에서는

- 난수 검정: NIST SP 800-22의 일부 무작위성 검정(블록 내 빈도 검정, 블록 내 최장 런 검정 등)은 최종 통계량을 카이제곱 분포로 평가해 p-값을 냅니다(런 검정 자체는 정규 근사를 씁니다). 지갑의 키 생성기, 검증자 선출용 난수, 온체인 추첨 결과를 점검할 때 기본 도구입니다.
- 고전 암호 해독: 암호문의 글자 빈도를 언어의 글자 빈도와 χ²로 비교하면 카이사르 암호의 이동량이나, 키 길이를 알아낸 뒤 비즈네르 암호의 열별 이동량을 빠르게 찾을 수 있습니다.
- 블록 암호 분석: S-box나 라운드 출력의 분포가 균등한지 확인하는 통계적 구별 공격(distinguisher)에도 χ² 검정이 쓰입니다.
- 다만 통계 검정을 통과했다고 암호학적으로 안전한 것은 아닙니다. 예측 가능한 의사난수도 χ² 검정은 통과할 수 있습니다.

## 쉽게 말하면

카이제곱은 '기대한 개수와 실제로 센 개수의 차이를 모두 합친 점수'입니다. 점수가 너무 크면 주사위가 기울었다고 의심합니다.

## 예시

주사위를 600번 던져 각 눈이 (90, 110, 95, 105, 100, 100)번 나왔다면 기대 빈도는 모두 100이고 χ² = (100+100+25+25+0+0)/100 = 2.5입니다. 자유도 5에서 이 값은 매우 흔한 수준이므로 공정한 주사위라는 가정을 기각할 근거가 없습니다.

---
출처: https://achivx.kr/glossary/chi-square-%EC%B9%B4%EC%9D%B4%EC%A0%9C%EA%B3%B1/ · ACHIVX 용어 사전 · 수정일 2026-10-20
