작업형 3유형의 출제될 문제 중 하나인 카이제곱에 대해 다루겠다.
실제 실습에서 어떻게 쓰이는 지 위주로 적겠다.
카이제곱 종류
▪ 한 개 범주형 변수와 각 그룹 별 비율과 특정 상수비가 같은 지 검정하는 적합도 검정(The Goodness of Fit Chi-Square)
▪ 각 집단이 범주형 변수에 대해 서로 유사한 성향을 갖는지 분석하는 동질성 검정
▪ 두 개 범주형 변수가 서로 독립인지 검정하는 독립성 검정
카이-제곱 적합도(The Goodness of Fit Chi-Square) ( 가설 ) 검정
▪ 모집단의 어떤 확률 분포를 가설로 설정한 후, 표본 자료의 분포를 분석해 모집단 가설에 대한 타당성 검증
▪ 𝒏개 범주에 대한 비율을 𝑷𝟏,𝑷𝟐, … ,𝑷𝒏 으로 정의할 때
귀무가설 : 𝑷𝟏 = 𝑷𝟐 = … = 𝑷𝒏 각 비율 간 차이가 없다 또는 𝑷𝟏 = 𝒂,𝑷𝟐 = 𝒃, … , 𝑷𝒏 = 𝒇 (일정 비율이 기대된다)
대립가설 : 적어도 하나의 비율이 다르다 또는 적어도 하나는 기대 비율과 다르다
▪ p-value가 유의수준보다 작은 경우, 적어도 하나의 비율이 다르거나 적어도 하나는 기대 비율과 다르다고 할 수 있다. 즉, 귀무가설이 기각되면 적어도 하나의 범주의 비율이 가정한 기대 비율과 다르다고 할 수 있다
▪ p-value가 유의수준보다 큰 경우, 관찰도수와 기대도수의 차이가 작고, 적합도가 높다고 할 수 있다
적합도( 가설 ) 검정 모듈 함수 & 주요 parameter
from scipy.stats import chisquare
chisquare(관찰값, 기댓값=None, ddof=0, axis=0) → chisq, p-value
#chisq == statistic 이라고 생각하면 됨.
카이 제곱 동질성/독립성 검정
▪ 두 범주형 자료 간의 차이 및 연관성을 분석하는 검증 방법
▪ 관찰빈도(실제값)가 기대빈도(기댓값)와 유의한 차이가 있는지 검증
▪ 귀무가설이 기각되면 범주별 기대빈도와 관측빈도의 차이가 크다/독립이 아니다라고 할 수 있음
▪ 기대빈도 5미만의 셀이 전체의 20% 보다 작아야 함 → 데이터 양이 적은 경우 Fisher’s Exact Test 사용 (2 * 2)
동질성 검정 : 한 개의 범주형 변수에 대해 다른 범주형 변수는 비교 대상이 되는 그룹으로 해석
예) 남자 그룹, 여자그룹의 표본을 각각 100명씩 추출(비교 그룹)하여, 각 표본의 핸드폰 모델(범주형 변수) 선호도를 조사함
독립성 검정 : 표본추출은 전체 집단 하나만 추출, 두 개의 범주형 변수에 대해 서로 연관성이 있는지 검정하는 것
예) 일반인 200명을 임의 추출하고, 성별과 핸드폰 모델 선호도를 조사함
동질성/독립성 검정 모듈 함수 & 주요 parameter
pandas
pd.crosstab(index, columns, …) → DataFrame
from scipy.stats import chi2_contingency
chi2_contingency(observed, correction=True, lambda=None) → chisq, p-value, df, expected
df = 자유도, expected = 측정값
피셔의 정확 검정 (Fisher’s Exact Test)
▪ 가능한 모든 경우의 수를 확인하는 검정 방법
▪ 초기하 분포를 기반으로 하며 가설은 카이제곱 검정과 동일함
▪ 귀무가설 : 두 변수는 연관성이 없다 (독립이다)
▪ 대립가설 : 두 변수는 연관성이 있다 (독립이 아니다)
▪ 분할표에서 표본의 수가 작거나 범주가 많아서 빈도수가 극도로 작은 경우 사용
▪ 기대빈도가 5보다 작은 셀이 20%를 넘으면 카이제곱 검정보다 피셔의 정확 검정을 사용
모듈 함수 & 주요 parameter
from scipy.stats import fisher_exact
oddsratio, p-value = fisher_exact(data)
비모수 검정의 종류 - 검정, 용도, 함수 (scipy.stats) & 주요 parameter
중앙값을 사용함
- Wilcoxon Signed Rank Test 1개 표본 2개 대응 표본
wilcoxon(x, y=None, zero_method='wilcox', correction=False, alternative='two-sided’)
- Wilcoxon Rank-Sum Test 2개 독립 표본
ranksums(x, y, alternative='two-sided’)
- Mann-Whitney U Test 2개 독립 표본
mannwhitneyu(x, y, use_continuity=True, alternative='two-sided’)
- Kruskal-Wallis H Test K개 독립 표본
kruskal(*samples) 검정 용도 함수 (scipy.stats) & 주요 parameter
빈도에 대한 기댓값/교차표를 사용함
- Chi-Square 적합도 1개 범주, 비율
chisquare(관찰값, 기댓값=None, ddof=0, axis=0) → chisq, p-value
- Chi-Square 동질성, 독립성 2개 독립 표본
pd.crosstab(index, columns, …) → DataFrame
chi2_contingency(observed, correction=True, lambda_=None) → chisq, p-value
- Fisher Exact Test 2개 독립 표본
fisher_exact(observed) → oddsratio, p-value
'IT.데이터' 카테고리의 다른 글
빅데이터 분석기사 실기 - 작업형 2유형 준비 / 2회 기출 변형 해설 (0) | 2023.06.22 |
---|---|
빅데이터 분석기사 실기 - 작업형 2유형 준비 / 평가 함수, 사용 라이브러리 import (0) | 2023.06.20 |
빅데이터 분석기사 실기 - 작업형 3유형 준비 / t-test, ANOVA (0) | 2023.06.19 |
빅데이터 분석기사 실기 - 작업형 3유형 준비 / 예상문제 풀이 (0) | 2023.06.19 |
GUID 파티션 테이블 GPT(GUID Partition Table) Partition Structure Analysis (0) | 2023.05.03 |
댓글