[Practical Statistics for Data Scientists] A팀 Sampling Distribution of a Statistic
Sample distribution(표본분포)는 하나의 동일한 모집단에서 얻은 여러 샘플에 대한 sample statistic(표본 통계량)의 분포를 나타낸다.
우리는 Sample statistic으로 어떤 것을 측정하거나 모델링하기 위해 표본을 뽑는데, 이 때 다른 표본을 뽑았다면 결과가 달라지기 때문에 표본에 따라 결과가 얼마나 달라질 지 즉, sampling variability(표본의 변동성)에 관심을 둔다.
평균과 같은 sample statistic의 분포는 데이터 자체의 분포(data distribution)보다 더 규칙적이고, 종 모양(bell-shaped)일 가능성이 높으며, 표본이 클수록 표본 통계량의 분포가 좁아진다.
- 표본이 커질 수록, sample statistics의 분포가 좁아지는 현상
: data distribution > sample이 5개일 때 sampling distribution > 20개일 때 sampling distribution
앞서 표본의 크기가 커질 수록, 데이터가 더 규칙적이고 종 모양을 이루는 현상을 Central Limit Theorem(중심극한정리)라고 부른다. 중심극한정리는 모집단이 정규분포를 따르지 않을 경우에도, 표본의 크기가 충분하고 데이터가 정규성을 크게 이탈하지 않을 경우 표본 분포가 정규 분포의 형태를 띄는 것을 말한다. 덕분에 신뢰구간이나 가설 검정을 계산하는 데에 t-분포와 같은 정규 근사 공식을 사용할 수 있다.
단, 데이터 사이언스의 관점에서는 중심극한정리가 그렇게 중요하지 않다. 오히려, 뒤에서 다룰 부트스트랩을 사용한다!
표준오차는 sampling distribution의 변동성을 보여주는 **단일 측정 지표(single metric)**이다.(표준편차와 표본오차를 헷갈리지 말자!) 표준 오차는 표준 편차 s와 표본의 크기 n을 기반으로한 통계량으로 추정한다. 앞선 보았듯, 표본의 크기가 커지면 표준오차가 줄어드는데, 흔히 이 관계를 square-root of n rule(제곱근의 법칙)이라고 부른다. 예를 들어, 표준오차를 2배로 줄이려면 표본의 크기를 4배나 증가시켜야한다!
표준오차를 측정하는 접근방식은 다음과 같다.
실질적으로 표준오차 측정을 위해 새로운 샘플을 측정하는 방식이 거의 불가능하기 때문에 새로운 샘플을 뽑을 필요가 없는 부트스트랩 재표본을 사용한다!
간단히 이야기하자면, 표준편차는 '모집단의 분포가 얼마나 퍼져 있는가?'에 대한 개념이다. 표준오차는 모수의 추정치에 대한 불확실도(오차)를 수치화한 것이다. 표준오차가 표본 통계량의 표준편차이고, 표본 통계량이 추정치이기 때문에 오차를 수반하게 되고, 값이 매번 변한다. 즉, 표준 편차는 data distribution에서 individual data points의 variability를 측정하는 값, 표준오차는 sampling distribution에서 sample metric의 variability를 측정하는 것이다.
데이터나 표본통계량이 정규분포를 따라야한다는 가정이 필요하지 않은, sampling distribution에 대한 어떠한 가정이 필요 없는 절차가 부트스트랩이다.
간단히 말하면, original sample을 여러번 복제하는 것이 부트스트랩의 기본 아이디어다. 이를 통해 우리는 가상의 모집단을 얻고, 표본분포를 추정할 표본을 수집할 수 있다. 또한 복원추출의 방법을 활용해 각 원소가 뽑힐 확률은 유지하고, 무한한 크기의 모집단을 만들어 낸다.
크기 n의 샘플의 평균을 구하는 부트스트랩 resampling 알고리즘
아래는 부트스트랩을 구현한 파이썬 코드이다. 파이썬의 경우 부트스트랩 방식의 구현을 제공하지 않기에, scikit-learn의 resample 매서드를 활용한다.(R의 경우 stat_fun함수로 구현할 수 있다.)
부트스트랩은 의사결정트리 등 앙상블에서의 배깅(예측값을 모아서 결론을 만드는 프로세스)에 활용되는데, 이는 단일 트리보다 효과적이다.
: 재표본추출은 여러 표본이 결합되어 비복원 추출을 수행하는 과정, 부트스트랩은 관측된 데이터로부터 복원추출을 한다는 것이다.
신뢰구간은 추정치를 범위로 제시하는 것이다. 일반적으로 사람들은 단일 수치(점추정)으로 추정치가 제시될 때 과도하게 믿기 때문에, 이를 방지하기 위해 구간을 제시한 것이 신뢰구간이다.
부트스트랩 알고리즘을 활용해 신뢰구간을 구하는 방법은 다음과 같다.
신뢰구간의 백분율(같은 모집단으로부터 같은 방식으로 얻은, 관심 통계량을 포함할 것으로 예상되는 것)을 신뢰수준(confidence level)이라고 하는데 신뢰수준이 높을수록 구간이 넓어진다. 또한 표본이 작을수록 구간이 넓어진다(불확실성이 더 커진다.) 따라서 데이터가 적을수록, 확실히 참값을 얻기에 충분한 신뢰구간을 확보해야 한다.
“신뢰 수준이 90%?” 라고 한다면, 100개의 표본을 뽑아 각각의 모평균에 대한 신뢰구간을 제시했을 때, 그 구간 안에 모평균이 속하는 표본이 90개라는 뜻이다. 즉, 한 표본에 대한 신뢰구간에 모평균이 포함될 확률이 90%라는 것은 아니다!!
1. "중심극한정리 덕분에 신뢰구간이나 가설 검정을 계산하는 데에 t-분포와 같은 정규 근사 공식을 사용할 수 있다." 라는 부분이 CLT와 어떻게 연관이 있는가?
“대표본인 경우, n이 커질수록 표본평균의 분포는 근사적으로 정규분포를 따르게 되고(중심극한정리), 표본평균을 표준화한 통계량(X_bar - u) / (s - √n)은 n이 증가할수록 정규분포로 수렴한다.”
T분포는 언제쓰지? 모집단의 분산인 σ²를 모르고 소표본인 경우
"모집단의 분포와 모분산을 모두 모르는 경우에도 일단은 σ² 대신 표본분산(s²)을 활용하게 되며 표본평균을 표준화한 통계량은 대략 t분포를 따르는 것으로 간주할 수 밖에 없다. “ = 소표본의 경우에 모집단의 정규성을 가정
그러면서 본인 역시, 대표본의 경우에도 정규성을 가정하여 t분포를 쓰는것이 더 낫다고 생각한다고 했는데, 어차피 n이 충분히 큰 경우에는 t값이나 Z값이나 큰 차이가 없고 학생들이 헷갈려 할 수 있으므로 수업시간에도 이런 것을 굳이 말하진 않고, 참고 목적으로만 몇장 정리해서 공지했다고...
When do you use the t distribution? When do you use the normal distribution? Why
When do you use the t distribution? When do you use the normal distribution? Why
When do you use the t distribution? When do you use the normal distribution? Why
www.academia.edu
2. 신뢰구간에서 표본이 작을수록 구간이 넓어진다고 하셨는데 이게 언급하신 표본오차가 표본이 작을수록 커지기 때문에 그렇다고 해석할 수 있는가?
: 불확실성이 커진다! 단, 표준오차는 추정치의 정확도를 알려주기 때문에, 작을수록
추정치가 더욱 정밀해진다 = 신뢰구간이 좁아진다 → 표준오차의 값은 표본의 크기 n이 결정함
3. bootstrap의 경우 sample에서 resampling을 한 것을 통해 신뢰구간을 구하므로 표본평균에 대한 신뢰구간이 되는 건가요? → 부트스트랩의 신뢰구간은 표본 통계량의 신뢰구간을 구하는 것
+ CLT VS Bootstrap
CLT: 모집단에서 표본 여러번 뽑기 → 실제 데이터에서 표본을 여러번 뽑기가 어려움: 현실적으로 어려움
Bootstrap: 표본에서 표본을 여러번 뽑기
댓글 영역