종속적(의존적) 관계에 놓인 사건들을 기반으로 확률을 구함 두 변수의 사전확률과 사후확률의 관계를 정의
베이즈주의 (Bayesian)
선택된 표본이 특정한 사건(부분집합)에 속한다는 가설, 명제, 신뢰도로 확률을 표현한다. 베이지안관점에서 사건(부분집합)은 원하는 답(표본)이 포함되어 있을 가능성이 있는 후보의 집합 이며, 이는 우리가 어떤 사건을 "이 사건속에 속한 원소 중 원하는 답이 있다로 주장하는것이다. 베이즈 정리를 통하여, 조건부 확률을 구하며 사전확률과 사후확률의 개념을 통하여 정보를 반영하는 식으로 사용한다.
샘플수가 200개의 경우 20개보다 많아지다보니 더욱 모평균과 유사해지는 것이며, 동일한 confidence에 대해 더욱 예리해지는것과 같다고 볼 수 있다.
샘플의 수가 20개인 경우, 그것의 신뢰구간 길이는 1.95816이고, 이 경우, 1.95816길이의 구간 내에 모평균이 위치할 확률이 95%라는 의미. 200개인경우 0.5403인데, 200개샘플의 신뢰구간 길이가 더 작다. 이는 0.5403 길이의 구간 내에 모평균이 위치할 확률이 95%라는 의미
샘플 개수가 늘어남에따라 신뢰구간이 어떻게 변화하는지 그려보자
df7=pd.DataFrame({'sampleNumber':[i*10 for i in range(1,20)]})
df7['result']=df7['sampleNumber'].apply(lambda x: confidenceInterval(dfraw.sample(x, random_state=42)['bill_depth_mm']) )
df7['mean']=df7['result'].apply(lambda x: x[0])
df7['length']=df7['result'].apply(lambda x: x[2])
df7['st']=df7['result'].apply(lambda x: x[1][0])
df7['end']=df7['result'].apply(lambda x: x[1][1])
df7
The sample mean will be approximately normally distributed for large sample sizes, regardless of the distribution from which we are sampling. 샘플 데이터의 수가 많아질 수록(사이즈는 대략 30이상), 샘플의 평균은 정규분포에 근사한 형태로 나온다!
모집단에서 랜덤추출한 값의 평균을 반복해서 구하면 이 평균들은 정규분포를 따른다.
mean100list=[dfraw.sample(30)['bill_depth_mm'].mean() for _ in range(100)]
mean1000list=[dfraw.sample(30)['bill_depth_mm'].mean() for _ in range(1000)]
**plt.hist(x=mean100list)**
plt.hist(x=mean1000list)
동일하게 샘플사이즈 30으로 고정, 100번 추출한것과, 1000번 추출한것의 hist차이이다.
p-value는 귀무가설을 기각하면 안되는데, 기각할 확률이다. 여기서 귀무가설을 잘못 기각했는지, 맞게 기각했는지 확인할 수 없다.
가설검증이라는 것은 전체 데이터의 일부만을 추출하여 평균을 내고, 그 평균이 전체 데이터의 평균을 잘 반영한다는 가정 하에 전체 데이터의 평균을 구하는 작업인데, 아무리 무작위 추출을 잘한다 하더라도 추출된 데이터의 평균은 전체 데이터의 평균에서 멀어질 수 있음. 따라서 내가 추출한 데이터의 평균이 원래의 전체 데이터의 평균과 얼마나 다른 값인지를 알 수 있는 방법이 필요함. 그래서 나온게 p-value
t-value는 두 표본에 대해서 표본 집단 평균 간의 차이에, 그 차이에 대한 불확실도를 나눠줌으로써 집단간의 차이와 이 차이가 얼마나 확실한지를 한꺼번에 설명해준다. 그래서 검정통계량만을 제시함으로써 엄밀하고도 편리한 방식으로 두 표본 집단간의 차이를 표현할 수 있게 되었다.
그러나 t-분포는 표본수(자유도)에 따라 모양이 다르다보니 같은 t-value라고 하더라도 표본수에 따라서 표본 간의 차이가 충분히 크다고 할 수도 있고, 그렇지 않다고 할 수도 있는것이다. 그렇기에 p-value와 같은 확률로 유의성을 점검할 수 있는 지표로 기재했기에, 표본수에 관계없이, 검정통계량의 분포의 모양에 상관없이 확률이라는 값 하나만 기재하여 헷갈리지 않게 사용하는것.
P값이 선택된 유의수준보다 작다면, 귀무가설 $H_0$을 기각하고, 대립가설$H_a$을 수용. P값이 유의수준보다 크거나 같다면, 귀무가설을 기각하지 못함 → 그러나 무조건적으로 $H_0$을 수용한다는 뜻은 아님!
표본집단의 평균을 비교하고 싶을 때 선택 Sample 개수에 따라 one-sample t-test, Two sample T-test로 나뉨.
One sample T-test
1개의 샘플값들의 평균이 특정 값과 동일한지 비교.
정규화
$t =$ $\overline{X}-\mu\over{S\over{\sqrt{n}}}$
평균을 빼고 표준편차로 나눠준다! -> 주어진 데이터는 평균이 0, 표준편차가 1인 데이터로 Scaling 된다.
1 sample t test
서울시 가로수 데이터셋을 이용하였다.
서울시에는 구별로 이팝나무가 평균 400그루이다. 에 대한 검정
import pandas as pd
trees = pd.read_csv(url, sep = '\\t', skiprows = 1)
trees = trees.replace({'-':0})
trees.head(5)
# 기초 전처리
df = trees[['자치구','느티나무','왕벚나무','은행나무','이팝나무','양버즘나무']].query("자치구.str.endswith('구')", engine='python')
for col in df.columns[1:]:
df[col]=df[col].apply(lambda x : int(x.replace(',','')))
구별 평균 느티나무수와 왕벚나무수의 차이가 없다 가설검정 A : 평균 느티나무 수 B : 평균 왕벚나무 수 $H_0$: A $=$ B $H_0$: A $\neq$ B $\alpha$: 0.05 등분산검정 이후 p-value : 0.646 유의수준 0.05에서 귀무가설 채택 평균의 차이가 있다고 말할 수 없다.