pbj0812의 코딩 일기

[통계학] python을 이용한 귀무가설의 판정 본문

Science/통계학

[통계학] python을 이용한 귀무가설의 판정

pbj0812 2020. 9. 9. 02:15

0. 목표

 - python을 이용한 귀무가설의 판정

1. 가설 설정(문제 원본 링크)

 - 여자와 남자의 성비는 1:1이라는 것은 편견이다.빨간색 차가 파란색 차보다 더 과속티켓을 많이 받는다고 한다. 전국적 평균 결과는 2:1의 비율로 빨간색 차가 높게 나타난다. 우리는 지역 경찰이 과속 티켓을 발부할 때 편견이 작용하는 것은 아닌지 알고 싶다. 만약 무작위로 빨간색 또는 파란색 자동차에 주어진 150장의 과속티켓을 추출했을 대, 지역 경찰이 편견을 가지고 티켓을 발부 했다면, 빨간색 차 100대, 파란색 차 50대가 나올 것이라고 예상할 수 있다.

2. 실습

 1) 데이터 생성

dataset = ["r", "r", "r", "r", "r", "r", "r", "r", "r", "b", "b", "b", "b", "b", "b"]

 2) 함수 제작

  - 데이터를 읽은 다음 사용자에게 빨간 차의 대수를 입력하게 함.

  - 카이제곱을 구한 뒤 3.841을 기준으로 기각여부 결정

# dataset : dataset
def run(dataset):
    len_dataset = len(dataset)
    print("총 " + str(len_dataset) + "대 입니다.")
    print("예상되는 빨간색 차의 수를 입력하세요.")
    red_e = int(input())
    blue_e = len_dataset - red_e
    red_o = dataset.count("r")
    blue_o = dataset.count("b")
    # chi - squared
    chi_squared_red = ((red_o - red_e)**2) / red_e
    chi_squared_blue = ((blue_o - blue_e)**2) / blue_e
    chi_squared = chi_squared_red + chi_squared_blue
    print(chi_squared)
    if chi_squared < 3.841:
        print("우리 마을의 경찰들이 빨간색 차와 파란색 차에 전국평균과 유의미하게 다른 비율로 티켓을 발급했다고 말할 수 있는 최소 95%의 확실성을 갖지 못한다.")
    else:
        print("우리 마을의 경찰들이 빨간색 차와 파란색 차에 전국평균과 유의미하게 다른 비율로 티켓을 발급했다고 말할 수 있는 최소 95%의 확실성을 가진다.")

3. 실행

  - 10 입력

run(dataset)

 - 결과

4. 참고

 - P값을 계산하는 방법

 - 사용자 입력과 출력

 - 카이제곱분포표 보는 법

 - 통계적 오류와 유의수준 및 유의확률

Comments