통계검정(1) - 교차검정

ljho01·2022년 8월 3일
0

인공지능트랙

목록 보기
2/6

categorical data와 numerical data

  • 전자는 범주를 의미하는 데이터. 숫자로 치환하여 사용할 수 있지만 수 자체가 의미를 가지지 않아 계산 등이 안된다. ex) 성별, 직업
  • 후자는 수 자체로 의미를 가지는 데이터. ex) 판매량, 가격

crosstab


위와 같이 두 범주형 데이터(categorical data)로 만들어놓은 표다.
contingency table 이라고도 한다.

pd.crosstab(series_y, series_x, margins=True, normalize=True)
  • margins=True를 넣어주면 총 합을 보여준다.
  • normalize=True를 넣어주면 모든 셀을 sum으로 나눠서 비율을 보여준다.

2차원 버전의 df.['columnname'].value_counts 라고 생각하자.

독립성 검정

  • crosstab으로 먼저 두 범주형 데이터 간 표를 만들고, 두 데이터 사이 연관성이 있는지 파악해야 한다. (독립성 검정)

귀무가설과 대립가설

  • 귀무가설(영가설, Null hypothesis): 두 변수 간 관계가 없다. (독립)
  • 대립가설: 두 변수 간 관계가 있다. (비독립)

chi-square 검정

from scipy import stats
stats.chisquare(series0, series1)

결과로 p-value가 나온다.

아래부터 내가 카이제곱검정에 대해서 더 찾아본 내용이다.
https://hsm-edu.tistory.com/1213 여기 잘 요약되어 있다.
카이제곱검정은 세가지가 있는데

  1. 적합도 검정 (goodness of fit)
    위는 관찰한 분포가 기대되는 분포와 유사한지를 알아보는 검정이다. 표본집단이 모집단을 대표할 수 있는가? 를 알아볼 때 쓰는 것 같음. 이건 stats.chisquare() 함수를 사용한다.
  2. 독립성 검정 (test of independence)
    두 변수가 독립적인지 아닌지를 판단하는 검정이다. 본 수업에서 사용하는 카이제곱검정은 이런 것을 가리키는 듯함. stats.chi2_contingency() 함수를 사용한다.
  3. 동질성 검정(test of homogeneity)
    두 집단의 분포가 비슷한지를 판단할 때 사용. 이건 scipy에서 맞는 함수를 찾지 못했다. 필요하면 더 찾아봐야지

p-value

두 변수가 독립적임을 가정하였을 때(귀무가설)
현재와 같은 데이터, 혹은 더욱 극단적인(상관관계를 보여주는) 데이터가
다른 샘플 데이터에서도 나타날 조건부 확률

내가 이해한 대로 말하면 두 변수가 아무런 상관이 없다면 우리가 이 데이터를 마주칠 확률이 얼마일까? 에 대한 답이 p값이라는 것이다. 만약 p값이 너무 낮으면?
이런 희박한 확률을 뚫고 이 데이터를 마주쳤다는 것이 말이 안되므로 영가설인 '두 데이터는 상관이 없다'를 버려야 합리적이다.

p-value가 0.05 이하, 충분히 낮다면
두 변수 간에 상관관계가 있다고 판단하고 귀무가설을 기각한다.
p-value가 0.05 이상, 충분히 높다면
두 변수는 서로 독립적이라고 판단하여 귀무가설을 기각하지 않는다.

*여기서 유의수준 0.05를 alpha라고 한다. 당연히 보수적으로 낮추거나 널널하게 높이는 식으로 조절 가능하다.

0개의 댓글