내일배움캠프_QAQC 1기/통계학 기초

[1/21] 데이터 분석을 위한 통계학 입문_4회차

이지응:) 2025. 1. 21. 19:30

강의 자료 : [통계] 데이터 분석을 위한 통계학 입문 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): 여러 집단 간 범주형 분포는 모두 동일
        •  
독립성 검정과 동질성 검정은 통계적으로 유사한 방식으로 진행되지만,
해석상 "서로 다른 모집단들이 동일한 분포를 보이는지" 를 묻는 점이 다릅니다

 

코드

  • 적합성 검정: chisquare()
    • “단일 범주형 변수의 관측분포가 주어진 이론적 분포와 얼마나 잘 맞는가?”
  • 독립성 검정: chi2_contingency()
    • “하나의 모집단에서 두 범주형 변수가 서로 독립인가?”
  • 동질성 검정: chi2_contingency()
    • “서로 다른 여러 모집단에서 하나의 범주형 변수의 분포가 동일(동질)한가?”
  • 코드 차원에서는 독립성 검정과 동질성 검정이 같지만, 어떤 맥락(자료 수집 방식, 행/열의 의미 등)으로 해석하는지가 다름

 

자유도

  • 자유롭게 값을 선택할 수 있는 독립적인 요소의 개수
  • 왜 K−1인가? : 평균 등의 제약 조건 때문에 마지막 값이 자동으로 결정되기 때문!
  • 실생활 예시: 예산을 정할 때, 총 금액이 고정되어 있다면 일부 지출은 자유롭게 조정할 수 있지만, 마지막 금액은 자동으로 결정됨
  • 생산라인이 A,B,C, 양품과 불량

 

카이제곱 검정 절차

  1. 데이터 수집 & 분할표 작성
  2. 기대도수 계산
  3. χ2 통계량 계산
  4. 자유도, p-값 확인
  5. 결과 해석

 

. 검정 가정 & 주의사항

  • 표본의 독립성: 측정된 샘플들이 서로 독립적이어야 합니다.
  • 기대도수 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 이상 강함