https://deephive.tistory.com/25
https://www.youtube.com/watch?v=37GqFZVjc1Y&t=11290s
1. 필요 라이브러리 임포트
2. 가설설정
3. 유의수준 확인
4. 정규성 검정
5. 검정실시(통계량, p-value)
6. p-value와 유의수준 비교 후 귀무가설 기각 채택 결정
1. 필요 라이브러리 임포트
import scipy.stats as stats
2. 가설설정
귀무가설과 대립가설 설정한다
주석으로 적어놓는다
귀무가설(H0): 기존의 입장
대립가설(H1): 귀무가설과 반대의 입장
3. 유의 수준 확인
α를 사용한다
주어진 문제에 나온 값으로 사용
alpha = 0.05
4. 정규성 검정
(빅데이터분석기사가 시작된지 얼마 안돼, 데이터가 정규 분포를 따르고 있다고 미리 제시해주는 경우가 많지만, 혹시 몰라 적습니다!)
정규성 검정: 샤피로 윌크 검정
H0(귀무가설): 정규 분포를 따른다 (p > alpha)
H1(대립가설): 정규 분포를 따르지 않는다 (p < alpha)
stat, p = stats.shapiro(data)
p > 0.05면 귀무가설 채택
정규분포 -> ttest
stats.ttet_어쩌고()
p < 0.05면 귀무가설 기각(대립가설 채택)
정규분포X ->wilcoxon
stats.ranksums()
5. 검정실시(통계량, p-value)
문제에서 주어진 검정을 한다
문제에 주어져 있지 않다면 기준에 따라 검정을 한다
카이제곱 -> 독립성 검정, 동질성 검정
t-test -> 단일 표본, 독립 표본, 대응 표본
ANOVA -> 모집단이 3개 이상이고 3개 모두 정규성, 등분산성 따름
크루스칼 왈리스 -> 모집단이 3개 이상이고 3개 중 하나라도 정규성, 등분산성 안따름
https://hyunie-y.tistory.com/9
연속형 변수인 두 독립군 간의 비교는 t-test
범주형 변수인 두 독립군 간의 비교는 chi-squares
5-1 카이제곱 검정
1. 독립성 검정: 하나의 모집단에서 뽑은 표본에서 두 개의 변수가 독립인지 확인
2. 동질성 검정: 다른 두 개의 모집단에서 뽑은 표본의 분포가 비슷한지를 확인
독립성 검정
하나의 모집단에서 뽑은 표본에서 두 개의 변수가 독립인지 확인
미리 교차표를 만들어야 한다.
교차표 만드는 법
pd.crosstab(index= , columns=, values=)
data = pd.crosstab(index=df[''], columns=df[''], values=df[''], aggfunc = sum)
index와 columns만 써도 된다
#data는 교차표
li = stats.chi2_contingency(data)
print(li)
'''결과
카이제곱, p-value, 자유도, 기대빈도
Chi2ContingencyResult(
statistic=260.71702016732104,
pvalue=1.1973570627755645e-58,
dof=1,
expected_freq=array([[120.52525253, 221.47474747],[193.47474747, 355.52525253]]))
카이제곱, p-value, 자유도, 기대빈도 순으로 나온다
카이제곱을 보고 싶다면 li[0]
p-value를 보고 싶다면 li[1]
자유도를 보고 싶다면 li[2]
기대빈도를 보고 싶다면 li[3]
동질성 검정
다른 두 개의 모집단에서 뽑은 표본의 분포가 비슷한지를 확인
교차표 필요 없음
귀무가설: 분포가 비슷하다(p-value > alpha)
대립가설: 분포가 비슷하지 않다(p-value < alpha)
#data1은 관찰값, data2는 기대값
li = stats.chisqure(data1, data2)
https://heannim-world.tistory.com/59
5-2 t test
두 집단 간의 평균을 비교할 때 사용
1. 단일 표본: 한 집단의 평균 검정
2. 독립 표본: 두 집단 평균 검정
3. 대응 표본: 같은 집단의 대응되는 두 변수를 비교 (동일한 대상에 대해 두 가지 관측치를 비교)
ttest의 alternative 파라미터 3가지 중 하나 선택
'two-sided'
'less'
'greater'
alternative = 'two-sided'가 디폴트
'대립가설'을 기준으로 a와 b에 따라
a가 b보다 크다
a > b 면 greater
a가 b보다 작다
a < b 면 less
a와 b는 다르다
a =/= b (같지만 않으면 된다) 면 two-sided
단일 표본: 표본 집단과 관측치 비교
stats.ttest_1samp(a, b)
b는 관측치로, 주어지는 값을 넣으면 된다
독립 표본: 두 개의 집단에서 표본 수집
stats.ttest_ind(a, b)
대응 표본: 같은 집단의 다른 변수 비교
stats.ttest_rel(a,b)
alternative 파라미터가 헷갈린다면 참고
https://www.youtube.com/watch?v=xyqjl4DwVyQ&t=784s
5-3 ANOVA, 크루스칼-왈리스
모집단이 3개 이상
모든 모집단 모두가 정규성(+등분산)을 따르면 -> ANOVA
모든 모집단이 정규성을 따르지 않으면 -> 크루스칼-왈리스
등분산 검정 -> 검정 실시
H0: 등분산 한다
H1: 등분산 하지 않는다
stats.bartlett(데이터1, 데이터2, 데이터3)
ANOVA F 검정: 정규성, 등분산성 모두 충족
stats.f_oneway(데이터1, 데이터2, 데이터3)
크루스칼 왈리스: 정규성x, 등분산성x
stats.kruskal(데이터1, 데이터2, 데이터3)
6. p-value와 유의수준 비교 후 귀무가설 기각 채택 결정
검정으로 얻은 p-value값을 이용하여 귀무가설과 대립가설 채택을 결정
p-value > alpha라면, 귀무가설 채택
p-value < alpha라면, 귀무가설 기각(대립가설 채택)
alpha = 유의수준
p = 얻은 p-value 값
if p > alpha :
print("귀무가설을 채택합니다")
else:
print("귀무가설을 기각합니다(대립가설 채택)")
작업형 예시 문
https://www.kaggle.com/datasets/agileteam/bigdatacertificationkr
저는 시간이 너무 부족해서 3유형을 하루정도밖에 공부하지 못했습니다ㅜㅜㅜ
이 글도 틀린 것이 많을 수도...잘 찾아보면서 하세요
공부하지 않은 회귀 분석에서 나온....ㅎㅎ
그대신 상관 분석이 나와서 한 문제 정도 풀었던 것 같습니다..
'빅데이터 공부' 카테고리의 다른 글
[Pandas] DataFrame (0) | 2024.07.14 |
---|---|
PCA (2) | 2024.01.09 |
비지도학습-클러스터링 (0) | 2024.01.08 |
[빅데이터분석기사 실기] 제2유형 (1) | 2023.12.18 |
데이터 클리닝 (0) | 2023.11.29 |