강의 자료 : [통계] 데이터 분석을 위한 통계학 입문 4
실습 자료 : 카이제곱 검정 실습.ipynb - Colab
데이터 타입별 모델
- 범주형 - 범주형 : 카이제곱 검정
- 범주형 - 수치형 : 아노바, t 검정
- 수치형 - 범주형 : 로지스틱(이진 분류)
- 수치형 - 수치형 : 선형회귀
예제) 어느 제과점에서 효모 A, B, C를 사용해 빵을 구웠을 때의 “팽창률”이 서로 차이가 나는지 확인하고 싶다.
=> 아노바 (변수가 3개, 범주형-수치형)
예제) 스타트업에서 직원들의 생산성 점수(예: 단위시간당 처리 업무량)를 예측하기 위해, “주당 근무시간, 재택근무 여부(더미 변수로 변환), 직무만족도, 팀 내 커뮤니케이션 점수” 등을 예측 변수로 사용하는 모델을 개발하려 한다.
=>선형회귀 (수치형-수치형)
예제) 인터넷 쇼핑몰에서 구매완료일지 장바구니에 보유하고 있을지
=>로지스틱
데이터에서 교차표로 변환
- 엑셀은 하나의 셀이 data, 빅데이터는 하나의 레이블이 data
- 일반 레이블 형태 -> 교차표 : Pivot
- 엑셀 -> 레이블 형태 or 교차표 -> 레이블 형태 : non pivot
- 변환 예시
import pandas as pd
# 1. 데이터 생성
data = {
"제품 ID": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"생산 라인": ["A", "A", "B", "C", "B", "C", "A", "B", "A", "C"],
"제품 상태": ["양품", "불량", "양품", "양품", "불량", "양품", "양품", "불량", "양품", "불량"],
}
df = pd.DataFrame(data)
# 2. 교차표 생성
cross_tab = pd.crosstab(df["생산 라인"], df["제품 상태"], margins=True, margins_name="합계")
# 3. 출력
print(cross_tab)
- crosstab() 함수
- Pandas에서 교차표(Pivot Table)를 생성하는 함수
- 두 개 이상의 범주형 변수 간의 관계 분석하는 데 사용
- 기본 문법
pd.crosstab(index, columns, values=None, aggfunc=None, margins=False, margins_name="All", normalize=False)
- index : 행 인덱스로 사용할 컬럼
- colums : 열 컬럼으로 사용할 컬럼
- values : 계산할 값(기본값 : 빈도 수)
- aggfunc : 적용할 함수
- margins : 총합(합계) 행/열 추가 여부(True/False)
- margins_name : 합계 행/열의 이름(기본값 : "All")
- normalize : 비율(%)로 변환
카이제곱 검정 (Chi-square test)
- 범주형 자료 간의 관계나 분포 적합도를 검정하는 데 사용되는 통계 기법
- 카이제곱 검정의 유형
- 적합도 검정 (Goodness-of-fit test)
- 하나의 범주형 변수에 대해 ‘이론적으로 기대되는 분포(기댓값)’가 있고, 이것이 실제 관찰된 분포(관측값)와 유의미하게 다른지를 검정합니다.
- 귀무가설 (H0): 관측된 분포 = 기대 분포 (차이 없음)
- 예) “5종류 사탕이 균등하게(각각 20%) 섞여 있다”는 가정과, 실제 뽑힌 사탕 빈도를 비교하는 문제
- 교차분석 (Cross tabulation analysis) : 독립성 동질성 검정
- 두 개 이상의 범주형 변수가 서로 관련(독립이 아님)되어 있는지 분석합니다.
- 예) “남학생과 여학생”이 “메뉴(짜장면, 짬뽕, 마라탕)”를 선택하는 빈도가 유의하게 다른지 알아보는 문제.
- 이를 독립성 검정(Chi-square test of independence)이라고 부르기도 합니다.
- 독립성 (Independence) 검정
- 두 개의 범주형 변수가 서로 독립인지, 아니면 연관성이 있는지 확인합니다.
- 예시: 성별과 특정 질병 발병 여부가 연관되는지 검정
- 귀무가설 ($H_0$): 두 범주형 변수는 서로 독립
- 동질성 (Homogeneity) 검정
- 여러 모집단 (집단) 이 동일한 분포를 보이는지 검정합니다.
- 예시: 지역별로 특정 제품에 대한 선호도 분포가 동일한지 검정
- 귀무가설 (H0): 여러 집단 간 범주형 분포는 모두 동일
- 적합도 검정 (Goodness-of-fit test)
독립성 검정과 동질성 검정은 통계적으로 유사한 방식으로 진행되지만,
해석상 "서로 다른 모집단들이 동일한 분포를 보이는지" 를 묻는 점이 다릅니다
코드
- 적합성 검정: chisquare()
- “단일 범주형 변수의 관측분포가 주어진 이론적 분포와 얼마나 잘 맞는가?”
- 독립성 검정: chi2_contingency()
- “하나의 모집단에서 두 범주형 변수가 서로 독립인가?”
- 동질성 검정: chi2_contingency()
- “서로 다른 여러 모집단에서 하나의 범주형 변수의 분포가 동일(동질)한가?”
- 코드 차원에서는 독립성 검정과 동질성 검정이 같지만, 어떤 맥락(자료 수집 방식, 행/열의 의미 등)으로 해석하는지가 다름
자유도
- 자유롭게 값을 선택할 수 있는 독립적인 요소의 개수
- 왜 K−1인가? : 평균 등의 제약 조건 때문에 마지막 값이 자동으로 결정되기 때문!
- 실생활 예시: 예산을 정할 때, 총 금액이 고정되어 있다면 일부 지출은 자유롭게 조정할 수 있지만, 마지막 금액은 자동으로 결정됨
- 생산라인이 A,B,C, 양품과 불량
카이제곱 검정 절차
- 데이터 수집 & 분할표 작성
- 기대도수 계산
- χ2 통계량 계산
- 자유도, p-값 확인
- 결과 해석
. 검정 가정 & 주의사항
- 표본의 독립성: 측정된 샘플들이 서로 독립적이어야 합니다.
- 기대도수 5 이상: 각 셀의 기대도수가 5 미만인 셀이 여러 개 있으면, χ2 분포 근사가 불안정해집니다. 이 경우 셀을 합치거나 Fisher의 정확 검정 등을 고려할 수 있습니다.
- 표본 크기: 극단적으로 적은 표본은 분할표 구성 자체가 무의미해질 수 있습니다.
- 연속성 보정: 2×2 표에서 정확도를 높일 수 있음 (Yates의 연속성 보정을 적용하기도 합니다.)
카이제곱 분석의 장단점
- 장점
- 분석이 간단하고 직관적입니다.
- 범주형 자료 전용 분석 방법입니다.
- 이해하기 쉬운 결과를 제공합니다.
- 단점
- 기대도수 5 이상 조건을 만족해야 합니다.
- 원인-결과 분석이 제한적입니다. (연관성만 파악)
- 집단의 세부적인 차이 파악이 어려울 수 있습니다.
Cramer's V
- 카이제곱 검정에서 두 범주형 변수 간의 연관성을 측정하는 값
- 즉, 두 변수가 얼마나 강하게 관련되어 있는지 수치로 보여주는 지표
- 카이제곱 검정은 두 변수 간에 연관성이 있는지 여부만 알려주지만 Cramer's V 를 사용하면 연관성의 강도까지 파악 가능

Cramer's V 값 해석
Cramer's V 값은 0 에서 1 사이의 값을 가지며, 값이 클수록 연관성이 강합니다.
| Cramer's V 값 | 연관성의 강도 |
| 0.0 - 0.1 | 매우 약함 |
| 0.1 - 0.3 | 약함 |
| 0.3 - 0.5 | 중간 정도 |
| 0.5 이상 | 강함 |
'내일배움캠프_QAQC 1기 > 통계학 기초' 카테고리의 다른 글
| [1/22] 데이터 분석을 위한 통계학 입문_5회차 (0) | 2025.01.22 |
|---|---|
| [1/20] 데이터 분석을 위한 통계학 입문_3회차 (0) | 2025.01.21 |
| [1/17] 데이터 분석을 위한 통계학 입문_2회차 (0) | 2025.01.20 |
| 통계학 기초 복습 ① (0) | 2025.01.20 |
| 통게학 기초 6주차 (0) | 2025.01.20 |