통계

상관 계수 5%, 1% 수준 유의성 검사 파이썬으로 해보기

이석사 중 2022. 12. 20. 23:11
728x90

어제도 제 블로그를 찾아주신 일곱 분 감사드립니다!

 

오늘은 유의성 검사 부분 코드 분석을 가보겠습니다


저번에 p-value의 정확한 정의와 사용법을 알아봤습니다

 

그럼 이제 유의성 검사를 코드로 구현해보겠습니다

#5% 유의성 검사
class valence5:
    def __init__(self, x, y):
        self.r10, self.p10_val = stats.pearsonr(x, y)

        if self.p10_val < 0.05:
            print('P-value가 유의 수준 5%보다 작기 때문에 상관계수가 유의합니다')
        else:
            print('P-value가 유의 수준 5%보다 크기 때문에 상관계수가 유의하지 않습니다')

#1% 유의성 검사
class valence1:
    def __init__(self, x, y):
        self.r20, self.p20_val = stats.pearsonr(x, y)

        if self.p20_val < 0.01:
            print('P-value가 유의 수준 1%보다 작기 때문에 상관계수가 유의합니다')
        else:
            print('P-value가 유의 수준 1%보다 크기 때문에 상관계수가 유의하지 않습니다')

코드는 정말 간단합니다

 

제가 다 만들고 조금 아쉬운 점이라고 한다면 

 

지금은 scipy 라이브러리 내에 stats.pearsonr이라는 피어슨 상관계수를 구하는 모듈을 사용했지만

 

직접 공식을 입력해서 구하는 법도 알아보는게 맞는 것 같다고 생각했습니다

 

추후에 변경되면 포스팅 하도록 하겠습니다


stats.pearsonr(x, y)는 자료 x와 y에 대한 피어슨 상관계수와 p-value를 구해주는 모듈입니다

 

이걸로 구해진 p-value와 설정해 줄 유의수준을 조건문을 활용해서 비교만 해주면 끝입니다

 

if 이후에 추가 조건은 elif가 맞지만 저는 부등호를 사용하기 때문에 2가지 상태밖에 존재하지 않죠?

 

0.05보다 크거나 작거나 두가지 밖에 없기 때문에 else를 사용해도 괜찮습니다

 

저는 두가지 유의수준을 사용했습니다

 

이 유의 수준은 여러분이 지정하시는 값이기 때문에 

 

여러분이 검증하고 싶은 구간을 설정하면 됩니다

 

더 정확한 검증을 원하면 유의수준을 더 작게 만들어버리면 되겠죠??

 

유의수준이 작아지면 영역도 작아지고 t값도 커지는데 이 조건까지 만족한다면

 

상관계수가 엄청 높겠죠??

 

기본은 5%와 1%를 많이 사용하지만 0.5%나 0.1%를 사용해도 좋습니다

 

저만큼만 작성하면 유의성 검사 모듈이 만들어집니다!

 

어렵지 않죠??

 

이제 시험기간이 끝나서 방학이라 파이썬 공부만이 아니라 다른 코딩언어들도 포스팅 열심히 해보겠습니다

 

코딩을 처음 접할때는 내가 무언가를 새로 만들어내기보다는

 

코드를 안보고 남이 만든 걸 구현해보는게 빨리 습득하는거 같아요

 

여러분도 꼭 해보시길 바랍니다!

 

오늘도 긴글 읽어주셔서 감사합니다!

 

 

728x90