본문 바로가기
Data Tech/Statistics(통계)

[통계] 2. 표본분포 & 신뢰구간 & 정규분포

by SuperDev 2024. 8. 16.

데이터 분석이나 모델링을 할 때, EDA를 통해 데이터들의 위치, 변이, 분포 등 다양한 방식으로 데이터를 해석하고 관찰하게 됩니다. 하지만 만약 데이터 자체의 질과 적합성을 신뢰할 수 없거나, 가지고 있는 표본이 모집단을 대표하지 않는다면 EDA를 수행한다고 해도 양질의 결과 혹은 모델을 얻을 수 없습니다.

분석과 모델링의 밑바탕이 되는 표본과 표본추출 과정에 대한 이해를 통해 내가 가지고 있는 데이터가 모집단을 대표하고 신뢰할 수 있는 데이터인지 검증하고 고려해봐야 합니다.

 

1. 임의표본추출과 표본 편향

표본은 모집단으로부터 얻는 모집단의 부분집합입니다. 그리고 모집단으로부터 표본을 임의로 추출하는 과정을 『임의표본추출』이라고 합니다. 임의로 추출되는 표본의 원소들은 동일한 확률로 뽑히게 되고, 그 결과로 얻어진 표본을 『단순임의표본』이라고 합니다. 여기서 원소의 중복 추출을 허용하면 『복원추출』, 중복 추출을 허용하지 않으면 『비복원추출』이라고 합니다.

 

구분 영문 상세
N(n) N(n) 모집단(표본집단)의 크기
임의표본추출 (임의표집) Random Sampling 모집단으로부터 무작위로 표본을 추출하는 방식
층화표본추출 (층화표집) Stratified Sampling 모집단을 층으로 나눈 뒤, 각 층별로 무작위로 표본을 추출하는 방식
계층 Stratum 공통된 특징을 가진 모집단의 하위 그룹
단순임의표본 Simple Random Sample 임의표본추출로 얻은 표본
편향 Bias 계통상의 오류
표본편향 Sample Bias 모집단을 잘 못 대표하는 표본

 

표본의 수를 늘리면 정확도가 높아지지 않을까?

표본의 수를 늘릴수록 정확도가 꼭 높아지지는 않습니다. 표본의 수가 늘어날수록 성능이 좋아지는 검색과 같은 분야도 있지만, 특정한 분포를 그리기에 충분한 표본이 있다면 다음으로 중요한 것은 수가 아닌 표본을 선정하는 방식에 있습니다.

 

만약 대한민국에 대한 인구 모집단 데이터가 있는데,

여기서 무작위로 표본을 추출하면 상대적으로 데이터가 많은 수도권 데이터의 비중이 클 것 입니다.

하지만 분석이나 모델링의 목표가 대한민국 전체에 대한 것이라면 수도권 비중이 큰 표본을 사용하는 것이 옳을까요?

아니면 대한민국 각 지역을 층화시켜서, 동일 비중의 표본을 추출하여 표본을 구성하는 것이 옳을까요?

표본을 선정할 때, 고민해야 하는 것은 "분석이나 모델링의 목표에 부합하는 표본인가?" 입니다.

 

표본 선정 방식을 고려하지 않으면 표본편향이 발생할 수 있으므로 분석이나 모델링 시, 고민해야 하는 부분입니다.

 


2. 선택 편향

선택편향은 데이터를 의식적이든 무의식적이든 선택적으로 고르는 관행을 의미합니다.

큰 데이터의 집합을 가지고 반복적으로 다른 모델을 만들고 다른 질문을 하다보면 흥미로운 결과를 얻을 수도 있겠지만, 그 결과 목적과 확증 편향이 들어가면서 의도하지 못한 결과물이 될 수도 있습니다.

구분 영문 상세
선택 편향 Selection Bias 데이터를 선택하는 방식 때문에 생기는 편향
비임의표본추출, 데이터 체리 피킹, 데이터 스누핑 등
데이터 스누핑 Data Snooping 뭔가 흥미로운 것을 찾아 광범위하게 데이터를 살피는 것
방대한 검색결과 Vast Search Effect 중복 데이터 모델링이나, 너무 많은 예측 변수를 고려하는 모델링에서 비롯되는 편향 혹은 비재현성
평균으로의 회귀 Regression to the Mean 어떤 변수를 연속적으로 측정했을 때 측정값이 많아질수록 모집단의 평균에 가까워지는 현상

 

데이터 수집 / 분석 과정에서의 선택 편향 위험성

모든 형태의 데이터 분석은 그 과정에서 생기는 편향의 위험성을 갖고 있습니다.

데이터 수집 과정에서 특정 시점과 기간에 대한 데이터만 수집되어 특정 시점에 편향될 위험성, 수집에 사용된 도구와 방법이 특정 편향을 일으켜 특정 조건에 편향될 위험성 등이 있습니다.

예시로 온라인 설문조사의 경우, 인터넷을 활용하는 사람들의 의견으로 편향될 위험성이 있습니다.

 


3. 통계학에서의 표본분포

통계의 표본분포라는 용어는 하나의 모집단으로부터 얻은 여러 표본들의 표본통계량을 분포로 나타낸 것을 말합니다.

고전 통계에서는 이 표본분포를 통해 모집단을 추론하게 됩니다.

구분 영문 상세
표본통계량 Sample Statistic 모집단에서 추출된 표본 데이터들로부터 얻은 측정 지표
데이터 분포 Data Distribution 데이터 집합에서 각 개별 값의 도수분포
표본 분포 Sampling Distribution 여러 표본들로부터 얻은 표본통계량의 도수분포
중심극한정리 Central limit theorem 표본의 크기가 커질수록 표본분포가 정규분포를 따르는 경향
표본이 모집단의 분포와 다를 수 있으므로 표본분포를 통해 모집단에 가까운 종 모양의 분포를 찾습니다. 이를 통해 t-검정이나, 정규근사 공식을 활용할 수 있습니다.
표준오차 Standard  Error 표본통계량의 변동성을 요약하는 단일 측정 지표
표본 값들의 표준편차(s)와 표본크기(n)를 기반으로 통계량을 추정하므로, 표본 크기가 커질수록 표준오차가 줄어듭니다.

 

중심극한정리는 통계학 관점에서 매우 중요하게 다루는 가설 입니다. 데이터 과학자들도 알고 있어야 하는 가설이지만, 형식적인 가설검정이나, 신뢰구간은 대부분 부트스트랩을 사용하기 때문에 그정도로 중요하지는 않습니다. 

 

 

표준편차와 표준오차의 차이

개별 데이터 포인트의 변동성을 측정하는 것이 표준편차이고, 표본 측정 지표의 변동성을 측정하는 것이 표준오차 입니다.

이 표준오차를 추정해야 모집단의 변동성을 추정할 수 있기 때문에 중요한 개념이며, 현대 통계에서는 부트스트랩을 통해 표준오차를 추정하는 것이 표준 방법이 되어있습니다.

 

 


4. 부트스트랩

통계량이나 파라미터의 표본분포를 추정하는 효과적인 방법은 현재 가지고 있는 표본에서 추가적으로 표본을 『복원추출』하고 각 표본에 대한 통계량과 모델을 다시 계산하는 것 입니다. 이러한 절차를 『부트스크랩』이라고 합니다.

구분 영문 상세
부트스트랩 표본 Bootstrap Sample 관측데이터 집합으로부터 얻은 복원추출 표본
재표본 추출 Resampling 관측데이터로부터 반복해서 표본 추출하는 과정

 

부트스크랩 재표본추출 알고리즘

  • 샘플 값을 하나 뽑아서 기록하고 다시 제자리에 놓는 과정을 n번 반복합니다.
  • 재표본추출된 값의 평균을 기록하고 그 과정을 R번 반복합니다.
  • R개의 결과를 사용하여 표준오차를 계산하고 히스토그램을 그려 신뢰구간을 찾습니다.

R값 반복횟수가 많을수록 표준오차나 신뢰구간에 대한 추정이 정확해지고, 이런 절차를 통해 표본 통계량 혹은 모델 파라미터의 부트스트랩 집합을 얻게 됩니다. 결과적으로 집합이 얼마나 변하는지 표준오차를 추정할 수 있습니다.

 

# Sklean을 활용한 부트스트랩 방식 구현

import pandas as pd
from sklearn.utils import resample

url = 'https://raw.githubusercontent.com/gedeck/practical-statistics-for-data-scientists/master/data/loans_income.csv'
loans_income = pd.read_csv(url, encoding='utf-8').squeeze()

results = []
for nrepeat in range(3000):
    sample = resample(loans_income, n_samples=10000, replace=True)
    results.append(sample.mean())
results = pd.Series(results)

print('Bootstrap Statistics:')
print(f'Original: {loans_income.mean()}')
print(f'Bias: {results.mean() - loans_income.median()}')
print(f'std.error: {results.std()}')

#Bootstrap Statistics:
#Original: 68760.51844
#Bias: 6764.897973866668
#표준오차 : 324.1851927976081

 

 


5. 신뢰구간

도수분포표, 히스토그램, 상자그림, 표준오차는 모두 표본추정에서 잠재적인 오차를 이해하는 방법들 입니다.

신뢰구간은 단일수치가 아닌 구간추정을 하는데, 90%, 95%와 같이 백분율로 표현되는 구간을 나타냅니다.

 

표본크기 n과 검증이 필요한 표본통계량이 있으면 부트스트랩으로 표본통계량의 신뢰구간을 구할 수 있습니다.  부트스트랩이 대부분의 통계량 혹은 모델 파라미터에 대한 신뢰구간을 생성하는데 사용할 수 있는 일반적인 기법이므로 알고계시면 유용하게 활용할 수 있습니다.

  • 데이터에서 복원추출 방식으로 크기 n인 표본을 뽑아 원하는 통계량을 기록합니다. 이를 R번 반복합니다.
  • R개의 재표본 결과의 분포 양쪽 끝에서 [(100-x) / 2]%만큼 잘라냅니다.
  • 절단한 점들은 x% 부트스트랩 신뢰구간의 양 끝점입니다. 

데이터 집합의 신뢰수준을 확인하는 이유

신뢰구간과 관련된 백분율을 신뢰수준이라고 하며, 신뢰수준이 높을수록 신뢰구간은 더 넓어집니다. 데이터 과학자는 신뢰구간을 통해서 현재 가지고 있는 표본의 크기가 작은지, 표본이 편향되어 있는지를 판단할 수 있습니다.

표본이 작다면 불확실성이 커져 Variance가 커질 수 있고, 편향되어 있다면 Bias가 큰 결과가 나타날 것 입니다.

 

 

 


6. 정규분포

정규분포는 통계학에서 가장 중요한 확률 분포 중 하나이고, 평균을 중심으로 좌우 대칭적으로 분포하는 종 모양의 형태입니다. 이렇게 표본통계량의 분포가 일정한 모양을 이룬다는 사실은 수학 공식을 개발하는데 강력한 도구가 되었습니다.

구분 영문 상세
오차 Error 데이터 포인트와 예측값 혹은 평균 사이의 차이
표준화 Standardization 평균을 빼고 표준편차로 나누는 일종의 Scaling 과정이며,
이를 정규화 또는 표준화로 표현함.  
z 점수 z-score 개별 데이터를 표준화한 값
표준정규분포 Standard normal distribution 평균이 0, 표준편차가 1인 정규분포(z분포라고도 불림)
QQ그림 QQ-plot 표본분포가 특정 분포에 얼마나 가까운지를 보여주는 그림

 

정규분포에 대한 이해

  • 정규분포는 데이터의 불확실성과 변동성을 표현한 분포 입니다. 
  • 대개 데이터 자체는 정규분포가 아니지만, 표본들의 평균과 오차는 많은 경우 정규분포를 따릅니다.
  • 데이터를 표준정규분포(z분포)로 변환함으로써 정규분포와 쉽게 비교할 수 있습니다.
  •  

왼쪽은 정규분포(z분포) / 오른쪽은 QQ-plot

 


7. 긴 꼬리 분포

통계에서 정규분포는 매우 중요한 개념이지만, 데이터는 일반적으로 정규분포를 따르지 않습니다.

오차나 표본통계량의 분포를 볼 때, 정규분포는 적절하고 유용하지만, 정규분포가 일반적으로 데이터 자체의 특징을 나타내지는 않습니다. 이 부분을 많은 사람들이 오해하는 경우가 많습니다.

 

구분 영문 상세
꼬리 Tail 적은 수의 극단값이 주로 존재하는, 도수분포의 길고 좁은 부분
왜도 Skewness 분포의 한쪽 꼬리가 반대쪽 다른 꼬리보다 긴 정도
흑고니 이론 Black swan theory 나심 니콜라스 탈레브(Nassim Nicholas Taleb)가 제안한 개념으로, 극단적으로 예측하기 어려운 사건들이 미치는 영향에 대해 설명한 이론

 

 

아래 오른쪽 그래프 X축의 양 끝으로 갈수록 정규분포의 특징에서 멀어지는 것을 볼 수 있습니다. 이는 해당 데이터가 정규분포를 따르지 않는다는 것을 의미합니다. 추가적으로 덧붙이면 데이터에서 예상보다 극단값이 관찰될 가능성이 많다는 것을 의미로 해석되고, 중간에서는 정규분포의 형태를 띄지만, 양 끝에서는 정규분포와 멀어진다는 것을 나타냅니다.

 

왼쪽은 분포의 왜도와 첨도 / 오른쪽은 QQ-plot

 


 

 

728x90