Python으로 신뢰구간 이해하기

소스 노드 : 1883080

이 기사는 데이터 과학 Blogathon.

차례

  1. 개요
  2. Z-통계량을 사용한 신뢰 구간
  3. 신뢰 구간 해석
  4. z-통계량을 사용한 CI에 대한 가정
  5. t-통계량을 사용한 신뢰 구간
  6. t-통계량을 사용한 CI에 대한 가정
  7. 쌍을 이루는 데이터로 t-구간 만들기
  8. z-값 대 t-값: 언제 무엇을 사용합니까?
  9. 파이썬을 사용한 신뢰구간
  10. 엔드노트

개요

통계 문제를 풀 때마다 우리는 인구 매개변수의 추정에 대해 우려하지만 인구 매개변수를 계산하는 것이 거의 불가능에 가까운 경우가 많습니다. 대신 우리가 하는 일은 모집단에서 무작위 표본을 추출하고 모집단 매개변수를 근사할 것으로 예상되는 표본 통계를 계산하는 것입니다. 그러나 표본이 모집단의 진정한 대표자인지 또는 이러한 표본 통계가 모집단 매개변수에서 얼마나 벗어났는지 어떻게 알 수 있습니까? 여기서 신뢰 구간이 나타납니다. 그렇다면 이 간격은 무엇입니까? 신뢰 구간은 표본 통계의 위와 아래에 있는 값 범위이거나 표본 통계 주변의 값 범위에 실제 모집단 매개변수가 포함될 확률로 정의할 수도 있습니다.

Z-통계량을 사용한 신뢰 구간

주제에 대해 자세히 알아보기 전에 몇 가지 통계 용어에 대해 알아보겠습니다.

인구: 유사한 모든 개인의 집합입니다. 예를 들어 도시의 인구, 대학의 학생 등.

견본: 인구에서 추출한 유사한 개인의 작은 집합입니다. 마찬가지로 무작위 표본은 모집단에서 무작위로 추출한 표본입니다.

매개 변수: 모집단에서 도출한 평균(mu), 표준편차(sigma), 비율(p).

통계량: 평균(x bar), 표준편차(S), 표본에 대한 비율(p^).

Z 점수: 표준편차로 정규화된 평균으로부터 정규분포 상의 임의의 원시 데이터 포인트의 거리입니다. 주어진: 엑스뮤/시그마

이제 신뢰 구간의 개념에 대해 자세히 알아볼 준비가 되었습니다. 어떤 이유에서인지, 나는 원시 수학적 정의보다 관련있는 예를 통해 개념을 이해하는 것이 훨씬 낫다고 생각합니다. 시작하겠습니다.

당신이 인구 100,000명의 도시에 살고 있고 선거가 코앞으로 다가왔다고 가정해봅시다. 여론 조사원은 파란색 정당이나 노란색 정당 중 누가 선거에서 승리할지 예측해야 합니다. 따라서 전체 인구에서 정보를 수집하는 것이 거의 불가능하므로 무작위로 100명을 선택합니다. 설문 조사가 끝날 때 62%의 사람들이 노란색에 투표할 것이라는 사실을 발견했습니다. 이제 문제는 전체 인구의 62% 또는 62%가 노란색에 투표할 승리 확률로 노란색이 승리할 것이라고 결론을 내려야 합니까? 답은 NO입니다. 추정치가 실제 매개변수에서 얼마나 멀리 떨어져 있는지 확실하지 않습니다. 다른 샘플을 취하면 결과가 58% 또는 65%로 나타날 수 있습니다. 따라서 대신 우리가 할 일은 실제 인구 비율을 가장 잘 포착할 수 있는 표본 통계량 주변의 값 범위를 찾는 것입니다. 여기서 비율은 퍼센트를 의미한다.

Python을 사용한 신뢰구간

                                                                   이미지는 작성자에게 있습니다

이제 이러한 샘플 3개를 취하고 각 샘플의 샘플 비율을 플로팅하면 샘플링 비율의 정규 분포를 얻을 수 있으며 분포의 평균은 모집단 비율의 가장 근사한 값이 됩니다. 그리고 우리의 추정치는 분포 곡선의 어느 곳에나 있을 수 있습니다. 95-시그마 규칙에 따라 확률 변수의 약 2%가 분포 평균에서 XNUMX 표준 편차 내에 있다는 것을 알고 있습니다. 따라서 우리는 다음과 같은 확률로 결론을 내릴 수 있습니다. p^ 의 2 표준 편차 내에 있습니다. p 95%입니다. 또는 p가 p^보다 2 std 편차 내에 있을 확률도 95%라고 말할 수 있습니다. 이 두 문장은 사실상 동등합니다. p^ 아래 및 위의 이 두 점은 신뢰 구간입니다.

Python을 사용한 신뢰구간

                                                           이미지는 작성자에게 있습니다

시그마를 어떻게든 찾을 수 있다면 필요한 간격을 계산할 수 있습니다. 그러나 여기서 시그마는 모집단 매개변수이며 계산이 거의 불가능하다는 것을 알고 있으므로 대신 샘플 통계, 즉 표준 오차를 사용합니다. 이것은 다음과 같이 주어진다.

여기서 p^= 표본 비율, n= 표본 수

SE =√(0.62 . 0.38/100) = 0.05

따라서 2xSE = 0.1

데이터의 신뢰 구간은 (0.62-0.1,0.62+0.1) 또는 (0.52,0.72)입니다. 2xSE를 취했기 때문에 이것은 95% 신뢰 구간으로 해석됩니다.

이제 질문은 92% 신뢰 구간을 생성하려는 경우 어떻게 됩니까? 이전 예에서 2에 SE를 곱하여 95% 신뢰 구간을 구성했습니다. 이 2는 95% 신뢰 구간에 대한 z-점수입니다(정확한 값은 1.96). 이 값은 z-테이블에서 찾을 수 있습니다. 92% 신뢰 구간에 대한 z의 임계값은 1.75입니다. 인용하다 z-점수 및 z-테이블에 대한 더 나은 이해를 위한 기사.

간격은 (p^ + z*.SE , p^-z*.SE)로 지정됩니다.

표본 비율 대신 표본 평균이 주어지면 표준 오차는 다음과 같습니다. 시그마/제곱(n). 여기 시그마 표본 표준 편차를 대신 사용하는 경우가 많기 때문에 모집단 표준 편차입니다. 그러나 평균이 주어진 결과에 대한 이러한 종류의 추정은 약간 편향되는 경향이 있는 것으로 종종 관찰됩니다. 따라서 이와 같은 경우에는 z-통계 대신 t-통계를 사용하는 것이 좋습니다.

z-통계가 있는 신뢰 구간의 일반 공식은 다음과 같습니다.

여기서 통계는 표본 평균 또는 표본 비율을 나타냅니다. 시그마s 모집단 표준편차입니다.

신뢰 구간 해석

신뢰 구간을 올바르게 해석하는 것은 정말 중요합니다. 95% 신뢰 구간을 (0.52,0.62)로 계산한 이전 여론 조사 예를 고려하십시오. 그게 무슨 뜻이야? 음, 95% 신뢰 구간은 모집단에서 n개의 표본을 추출하면 파생 구간의 95%가 실제 모집단 비율을 포함한다는 것을 의미합니다. 95% 신뢰 구간이 구간에 실제 모집단 비율이 포함될 확률이 95%라는 의미는 아닙니다. 예를 들어, 90% 신뢰 구간의 경우 모집단에서 10개의 샘플을 추출하면 해당 구간의 9배 중 10회에 실제 모집단 매개변수가 포함됩니다. 더 나은 이해를 위해 아래 그림을 보세요.

신뢰 구간 해석

                                                            이미지는 작성자에게 있습니다

Z-통계량을 사용한 신뢰 구간에 대한 가정

z-통계를 사용하여 유효한 신뢰 구간을 구성하기 위해 찾아야 하는 특정 가정이 있습니다.

  1. 랜덤 샘플: 샘플은 랜덤이어야 합니다. 계층화 샘플링, 단순 무작위 샘플링, 무작위 샘플을 얻기 위한 클러스터 샘플링과 같은 다양한 샘플링 방법이 있습니다.
  2. 정상 조건: 데이터는 이 조건 np^>=10 및 n.(1-p^)>=10을 충족해야 합니다. 이는 본질적으로 표본 평균의 샘플링 분포가 어느 한쪽으로 치우치지 않고 정상이어야 함을 의미합니다.
  3. 독립: 샘플은 독립적이어야 합니다. 표본의 수는 전체 모집단의 10% 이하여야 하거나 표본 추출을 대체하여 수행해야 합니다.

T-통계량을 사용한 신뢰 구간

표본 크기가 상대적으로 작고 모집단 표준 편차가 제공되지 않거나 가정할 수 없는 경우에는 어떻게 됩니까? 신뢰 구간은 어떻게 구성합니까? 글쎄, 그것이 t-통계가 들어오는 곳입니다. 여기서 신뢰 구간을 찾는 기본 공식은 z*가 t*로 대체된 것과 동일하게 유지됩니다. 일반 공식은

여기서 S = 표본 표준 편차, n = 표본 수

파티를 주최했으며 손님의 평균 맥주 소비량을 추정하려고 한다고 가정합니다. 따라서 20명의 개인을 무작위로 추출하여 맥주 소비량을 측정했습니다. 샘플 데이터는 평균 0f 1200ml 및 표준 편차 120ml로 대칭입니다. 이제 95% 신뢰 구간을 구성하려고 합니다.

따라서 표본 표준 편차, 표본 수 및 표본 평균이 있습니다. 우리에게 필요한 것은 t*뿐입니다. 따라서 자유도가 95(n-19 = 1-20)인 1% 신뢰 구간에 대한 t*는 2.093입니다. 따라서 필요한 간격은 (1256.16, 1143.83) 계산 후 오차 범위가 56.16입니다. 인용하다 t-table을 읽는 방법을 알 수 있는 비디오.

T-통계량을 사용한 CI에 대한 가정

여기에서 z-통계의 경우와 유사하게 t-통계의 경우에도 주어진 데이터에서 주의해야 할 몇 가지 조건이 있습니다.

  1. 샘플은 무작위여야 합니다.
  2. 표본이 정상이어야 합니다. 정상이 되려면 표본 크기가 30보다 크거나 같아야 하거나 상위 데이터 세트(예: 모집단이 대략 정상인 경우)여야 합니다. 또는 표본 크기가 30 미만이면 분포가 대략 대칭이어야 합니다.
  3. 개별 관찰은 독립적이어야 합니다. 즉, 10% 규칙을 따르거나 샘플링을 교체하여 수행합니다.

쌍을 이루는 데이터에 대한 T-구간 만들기

지금까지는 하나의 샘플 데이터만 사용했습니다. 이제 쌍을 이루는 데이터에 대한 t-구간을 구성하는 방법을 살펴보겠습니다. 쌍을 이루는 데이터에서 동일한 개인에 대해 두 가지 관찰을 수행합니다. 예를 들어, 학생의 사전 테스트와 사후 테스트 점수를 비교하거나 특정 그룹에 대한 약물 및 위약의 효과에 대한 데이터를 비교합니다. 쌍을 이룬 데이터에서 세 번째 열에서 두 관측치의 차이를 찾았습니다. 평소와 같이 이 개념을 이해하기 위해 예제를 통해 살펴보겠습니다.

Q. 한 교사가 새 커리큘럼이 시험 결과에 미치는 영향을 평가하려고 했습니다. 아래는 관찰 결과입니다.

쌍을 이루는 데이터의 T 간격

                                                      이미지는 작성자에게 있습니다

평균 차이에 대한 구간을 찾으려고 하므로 차이에 대한 통계만 필요합니다. 우리는 이전에 사용한 것과 동일한 공식을 사용할 것입니다.

통계 +-(임계값 또는 t-값)(통계의 표준 편차)

xd = 차이의 평균, Sd = 표본 표준 편차, 자유도가 95인 5% CI의 경우 t*는 2.57로 제공됩니다. 오차 한계 = 0.97 및 신뢰 구간(4.18,6.13).

해석: 위의 추정치에서 볼 수 있듯이 신뢰 구간에는 XNUMX 또는 음수 값이 포함되어 있지 않습니다. 따라서 우리는 새로운 커리큘럼이 학생들의 시험 성적에 긍정적인 영향을 미쳤다고 결론지을 수 있습니다. 음의 값만 있다면 커리큘럼이 부정적인 영향을 미쳤다고 말할 수 있습니다. 또는 XNUMX이 포함된 경우 차이가 XNUMX이거나 시험 결과에 대한 커리큘럼의 영향이 없을 가능성이 있습니다.

Z-값 대 T-값

언제 무엇을 사용해야 하는지에 대해 처음에는 많은 혼란이 있습니다. 경험상 표본 크기가 >= 30이고 모집단 표준 편차가 z-통계량을 사용하는 것으로 알려진 경우입니다. 표본 크기가 < 30인 경우 t-통계량을 사용합니다. 실생활에서는 모집단 매개변수가 없으므로 표본 크기에 따라 z 또는 t를 사용합니다.

더 작은 샘플(n<30)의 경우 중심 LImit 정리가 적용되지 않고 스튜던트 t-분포라는 다른 분포가 사용됩니다. t-분포는 정규 분포와 유사하지만 표본 크기에 따라 모양이 다릅니다. z 값 대신 작은 샘플에 대해 더 큰 t 값이 사용되어 더 큰 오차 한계를 생성합니다. 샘플 크기가 작을수록 정확도가 떨어집니다.

Python을 사용한 신뢰구간

파이썬에는 우리의 삶을 조금 더 쉽게 만들어주는 모든 종류의 통계 계산을 지원하는 방대한 라이브러리가 있습니다. 이 섹션에서는 유아의 수면 습관에 대한 데이터를 살펴보겠습니다. 이 관찰에 참여한 20명의 참가자는 건강하고 정상적인 행동을 했으며 수면 장애가 없었습니다. 우리의 목표는 낮잠을 자는 유아와 낮잠을 자지 않는 유아의 취침 시간을 분석하는 것입니다.

참조: Akacem LD, Simpkin CT, Carskadon MA, Wright KP Jr, Jenni OG, Achermann P, et al. (2015) 10시간 주기 시계와 수면의 타이밍은 낮잠과 비낮잠 유아 사이에 다릅니다. 플로스원 4(0125181): eXNUMX. https://doi.org/10.1371/journal.pone.0125181

필요한 라이브러리를 가져올 것입니다.

import numpy as np import pandas as pd from scipy.stats import t pd.set_option('display.max_columns', 30) # DataFrame의 모든 열을 볼 수 있도록 설정 import math
df = pd.read_csv(nap_no_nap.csv) #데이터 읽기
df.head ()
Python을 사용한 신뢰구간

평균 취침 시간에 대해 95개의 XNUMX% 신뢰 구간을 만듭니다. 먼저, 우리는 새로운 변수로 낮잠을 자는 사람들과 다른 새로운 변수로 낮잠을 자지 않은 사람들을 위해 '야간 취침 시간' 열을 분리할 것입니다. 여기서 취침 시간은 소수점 이하 자릿수입니다.

bedtime_nap = df['밤 취침 시간'].loc[df['napping'] == 1] bedtime_no_nap = df['밤 취침 시간'].loc[df['napping'] == 0]

print(len(bedtime_nap))

인쇄(len(bedtime_no_nap))

출력: 15n 5


이제 nap과 no_nap에 대한 샘플 평균 취침 시간을 찾을 것입니다.

nap_mean_bedtime = bedtime_nap.mean() #20.304 no_nap_mean_bedtime = bedtime_no_nap.mean() #19.59

이제 X에 대한 표본 표준편차를 찾을 것입니다.보풀 및 X낮잠이 없다 

nap_s_bedtime = np.std(bedtime_nap,ddof=1) no_nap_s_bedtime = np.std(bedtime_no_nap,ddof=1)

참고: ddof 매개변수는 샘플 std dev에 대해 1로 설정됩니다. 그렇지 않으면 인구 std dev가 됩니다.

이제 X에 대한 표본 표준 오차를 찾을 것입니다.보풀 및 X낮잠이 없다 

nap_se_mean_bedtime = nap_s_bedtime/math.sqrt(len(bedtime_nap)) #0.1526 no_nap_se_mean_bedtime = no_nap_s_bedtime/math.sqrt(len(bedtime_no_nap)) #0.2270

지금까지는 좋았습니다. 이제 표본 크기가 작고 모집단 비율의 표준 편차가 없으므로 t* 값을 사용합니다. t* 값을 찾는 한 가지 방법은 다음을 사용하는 것입니다. scipy.stats t.ppf 기능. t.ppf()에 대한 인수는 q = 백분율, df = 자유도, scale = std dev, loc = 평균입니다. 95% 신뢰 구간에 대해 t-분포가 대칭이므로 q는 0.975가 됩니다. 인용하다 t.ppf()에 대한 자세한 내용은

nap_t_star = t.ppf(0.975,df=14) #2.14 no_nap_t_star = t.ppf(0.975,df=5) #2.57

이제 마지막으로 신뢰 구간을 구성하기 위해 조각을 추가합니다.

nap_ci_plus = nap_mean_bedtime + nap_t_star*nap_se_bedtime

nap_ci_minus = nap_mean_bedtime – nap_t_star*nap_se_bedtime

인쇄(nap_ci_minus,nap_ci_plus)

no_nap_ci_plus = no_nap_mean_bedtime + no_nap_t_star*nap_se_bedtime

no_nap_ci_minus = no_nap_mean_bedtime - no_nap_t_star*nap_se_bedtime

인쇄(no_nap_ci_minus,no_nap_ci_plus)


출력: 19.976680775477412 20.631319224522585 18.95974084563192 20.220259154368087

해석 : 

위의 결과에서 우리는 낮잠을 자는 유아의 평균 취침 시간이 오후 95~19.98(오후)이고 낮잠을 자지 않는 유아의 평균 취침 시간이 20.63~18.96(오후)라고 20.22% 확신한다고 결론지었습니다. 이 결과는 낮에 낮잠을 자면 밤에 늦게 잠이 들 것이라는 우리의 예상에 따른 것입니다.

엔드노트

따라서 이것은 z 및 t 값을 사용하는 단순 신뢰 구간에 관한 것이었습니다. 어떤 통계 연구의 경우에도 알아야 하는 것은 참으로 중요한 개념입니다. 표본 데이터에서 모집단 매개변수를 추정하기 위한 훌륭한 추론 통계 방법입니다. 신뢰 구간은 또한 95% CI에 대해 5%의 공간을 비정상으로 남겨둔다는 가설 테스트와 연결됩니다. 귀무 가설이 신뢰 구간에 속하면 p-값이 커지고 귀무를 기각할 수 없습니다. 반대로, 그 이상이라면 귀무를 기각하고 대체 가설을 받아들일 수 있는 충분한 증거를 갖게 됩니다.

기사가 마음에 드셨기를 바라며 새해 복 많이 받으세요(:

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

출처: https://www.analyticsvidhya.com/blog/2022/01/understanding-confidence-intervals-with-python/

타임 스탬프 :

더보기 분석 Vidhya