통계검정(2) - 평균 차이 검정, 상관관계 분석

ljho01·2022년 8월 5일
0

인공지능트랙

목록 보기
3/6

평균 차이 검정

평균을 이용해 두 변수 간 상관관계의 유무를 찾는 것인가보다.
평균의 차이가 통계적 의미를 가지는가? 를 찾는... 추후 추가

독립표본 t-test

서로 다른 두 집단 간 평균차이를 검정
stats.ttest_ind(array-series, array-series, equal_var=False)
p-value가 나온다. 값이 높으면 두 집단 간 평균차이가 통계적으로 의미를 가지지 않는다고 생각할 수 있다.(귀무가설)
equal_var은 말 그대로 두 집단의 분산이 같고, 표본수가 같을 때 True로 놓고 사용한다. 기본은 False이다.

대응표본 t-test

한 집단 내 평균차이를 검정
stats.ttest_rel(array-series, array-series)
ex) 시험시간 변경 전후 시험 성적 평균을 검정
ex) 국어점수와 수학점수 평균 간 검정

분산분석

Analysis of variance (ANOVA)
세개 이상의 표본으로 적어도 평균차이검정을 해 최소 하나의 관계가 있는지 찾는다.
표본이 세개인 독립표본 t-test라고 생각하면 편할듯하다.
stats.f_oneway(series, series, series)
f_oneway인 이유는 함수 실행시 뱉는 statistic 값이 f값이라고...한다...
pvalue도 나온다.
oneway인 이유는 세 집단의 차이(변수)가 한가지.. 예를들면 나이대를 세개로 쪼개놓는다던가..(나이 하나가 변수)

여기서 대립가설 : 변수에 따라 세 집단의 평균값이 3C2중 적어도 하나는 유의미한 차이가 있다

상관관계 분석

df.corr()메소드를 통해 변수간 피어슨 상관계수를 구할 수 있다.
피어슨 상관계수는 0에 가까울수록 상관관계가 적다고 본다.

여기서 이산적인 데이터들 간의 피어슨 상관계수는 잘 구 하지 않는다.
예를 들어 범주형 데이터들의 범주가 3개, 5개등 범주가 너무 적으면 상관계수가 구해지더라도 산점도 위에선 관계가 안보이기 때문이다. 범주형 데이터들의 경우 보통 chi-square 검정을 사용한다고 함.
numerical data라도 피어슨 상관계수만 보고 상관관계를 판단하면 위험하다. 산점도를 그려보면 모양이 추세선에서 많이 벗어나는 경우도 있기 때문. (심슨의 역설 참고)

sns.pairplot(df) (산점도 그리기, sns는 seaborn)

그래서 상관계수에 대해서도 pvalue를 구하기도 한다.

stats.pearsonr(series, series) # 피어슨 상관계수와 p-value를 리턴한다.

상관계수가 믿을만한 것인가? 를 알 수 있다.

상관관계 찾기

그러니까 지금껏 배운 검정은

  • 카이제곱검정
  • 평균차이 검정(독립표본 vs 대응표본)
    세 가지다.
    범주형 데이터 -> crosstab을 만들어 카이제곱검정(독립성검정) 사용
    숫자형 데이터 -> 평균차이 검정(다른 집단이면 독립, 같은 집단의 사전 vs 사후 라면 대응)

0개의 댓글