



#티스토리 윈도우 사이즈 맞추기
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:90% !important; }</style>"))
import scipy as sp
import numpy as np
from scipy import stats
homerun_ball = [40.8, 41.2, 41.4, 41.6]
mu = np.mean(homerun_ball)
mu
41.25
# 자유도 degree of freedom
df = len(homerun_ball) - 1
df
3
# 분산
sigma = np.std(homerun_ball, ddof = 1)
sigma
0.34156502553198803
# 표준오차
std_error = sigma / np.sqrt(len(homerun_ball))
std_error
0.17078251276599402
# 신뢰구간(유의수준 )
inverval = stats.t.interval(alpha = 0.95, df = df, loc=mu, scale=std_error)
inverval
(40.7064938232407, 41.7935061767593)
# t값의 아래 한계 지점
t_0025 = stats.t.ppf(q=0.025, df= df)
t_0025
-3.1824463052842638
# t값의 위 한계 지점
t_0975 = stats.t.ppf(q=0.975, df= df)
t_0975
3.182446305284263
# 평균값의 아래 한계 지점
mean_lower = mu + (t_0025 * std_error)
mean_lower
40.7064938232407
# 평균값의 위 한계 지점
mean_upper = mu + (t_0975 * std_error)
mean_upper
41.7935061767593
# 홈런볼 샘플 4봉지의 t값
written_weight = 41
t_value = (mu-written_weight) / std_error
t_value
1.4638501094227936
1. 샘플 사이즈(n)가 커지면 어떻게 될까?¶
df_bigsmaple = (len(homerun_ball)*10)-1
std_error_bigsample = sigma / np.sqrt(len(homerun_ball)*10)
inverval_bigsample = stats.t.interval(alpha = 0.95, df = df_bigsmaple, loc=mu, scale=std_error_bigsample)
inverval_bigsample
(41.14076220573351, 41.35923779426649)
표본(샘플)평균의 추정결과가 반복적으로 나와 신뢰할 수 있기 때문에 신뢰구간이 좁아졌습니다.
신뢰구간이 당초 40.70 ~ 41.79
편차가 큰 데이터 41.14 ~ 41.35 가 되었습니다.
# 홈런볼 샘플 40봉지의 t값
written_weight = 41
t_value_bigsample = (mu-written_weight) / std_error_bigsample
t_value_bigsample
4.629100498862739
# t값의 아래 한계 지점
t_0025_b = stats.t.ppf(q=0.025, df= df_bigsmaple)
t_0025_b
-2.0226909117347285
# t값의 위 한계 지점
t_0975_b = stats.t.ppf(q=0.975, df= df_bigsmaple)
t_0975_b
2.022690911734728
귀무가설(H0) : 홈런볼의 중량은 표기된 41g 이다.(일반적 사실)
대립가설(H1) : 홈런볼의 중량은 표기된 41g 이 아니다.(새로운 사실)
t 값이 한계값의 범위 밖이므로 귀무가설을 기각.
따라서 "홈런볼의 실제중량은 표기된 중량 41g과 같지 않다." 라는 결론 도출(양측 검정 기준)
아마도 해태제과는 홈런볼의 중량이 41g 이 넘도록 표준중량을 41.14g ~ 41.35g으로 설정해놓았을 것입니다.
2. 데이터가 흩어진 정도(s)가 커지면 어떻게 될까?¶
샘플링된 데이터가 흩어져 있다는 말은 분산이 크다 또는 표준편차가 크다는 말과 같습니다.
데이터가 흩어져 있으면 자연히 특정 평균값을 신뢰하기 어렵습니다.
따라서 평균값을 신뢰하는 구간이 넓어지기 마련입니다.
df_bigsigma = len(homerun_ball)-1
std_error_bigsigma= sigma*10 / np.sqrt(len(homerun_ball))
inverval_bigsigma = stats.t.interval(alpha = 0.95, df = df_bigsigma, loc=mu, scale=std_error_bigsigma)
inverval_bigsigma
(35.814938232407, 46.685061767593)
신뢰구간이 당초 40.70 ~ 41.79
편차가 큰 데이터 35.81 ~ 46.68 이 되었습니다.
3. 99% 신뢰수준으로 검정해보면 어떨까?¶
방금 전 유의수준 5% 라는 얘기는 신뢰수준 95% 였습니다.
쉽게 말하면 같은 시험을 100번 시행했을 때 5번 정도는 우연히 데이터가 한쪽으로 쏠려서 잘 못나올 확률이 있다는 뜻입니다.
이제 그 오류의 확률을 100번 중에 1번으로 줄여보겠습니다.
# 신뢰구간(유의수준 )
inverval = stats.t.interval(alpha = 0.99, df = df, loc=mu, scale=std_error)
inverval
(40.25247483294933, 42.24752516705067)
신뢰구간이 당초 40.70 ~ 41.79
99% 신뢰수준으로 보았을 때 표본의 평균은 40.25 ~ 42.24 에 있을 것입니다.
'빅데이터(Big Data) 이론과 코드 > 6. 통계지식' 카테고리의 다른 글
최대 우도 추정법(Maximum Likelihood Estimation, MLE) (0) | 2025.01.06 |
---|---|
예산과 전문가 없이 데이터로 인포그래픽을 만들기 (1) | 2024.06.25 |
마트 홈런볼과 편의점 홈런볼의 독립표본 t검정 (1) | 2023.01.18 |
홈런볼 슈링크플레이션과 소비자 물가지수 (2) | 2023.01.09 |
왜도(skewness)와 첨도(kurtosis) (0) | 2022.02.28 |