Programmers/데브코스 인공지능

[프로그래머스 스쿨 AI] Weak 3 검정

Or71nH 2021. 5. 3. 08:35

1. 가설 검정

 귀무가설

 $H_0 : \mu = \mu_0$

 대립 가설

 $H_1 : \mu > \mu_0$

 

귀무가설을 기각하기  위해서는 $\bar X$ 가 큰값이 나와야함

 

확률의 기준점을 정해놓고  $\alpha $ 유의수준 그니깐 이거보다 오바되면 뭔가 이상한거다 하는것

$P(\bar X \geq k) \leq \alpha $ 

위의 값이 거짓일 경우 귀무가설이 안맞다고 생각할 수 있음

$Z = \frac{\bar - \mu}{S / \sqrt{n}} ~ N(0,1)$

$P(Z \geq z_{\alpha})= \alpha$

 

귀무가설을 기각할지 말지를 이렇게 정하는 것이다

그렇지 안타면 귀무가설 채택

 

예제가 필요하다 이해가 잘 안된다

 

그냥 간단히 생각하면 이러나기 힘든확률이면 기각 한다

 

 

2. 모평균의 검정

대립가설

문제에서 검정하고자 하는 것이 무엇인지 파악 필요

대립가설 $H_1$ 채택을 위한 통계적 증거 확보 필요

증거가 없으면 귀무가설 $H_0$ 채택

$H_1 : \mu > \mu0 \\ H_1 : \mu < \mu0 \\ H_1 : \mu \neq  \mu0 $

어떤 농장에서 생산되는 계란의 평균 무게는 10.5g  으로 알려져 있다. 새로운 사료를 도입한 후에 생산된 계란 30개의 표본평균을 계산했더니 11.4g이 나왔다. 새로운 사료가 평균적으로 더 무거운 계란을 생산한다고 할 수 있는가?

$H_0 : \mu = 10.5$

$H_1 : \mu > 10.5$

어떤 농장에서 생산되는 계란의 평균 무게는 10.5g  으로 알려져 있다. 새로운 사료를 도입한 후에 생산된 계란 30개의 표본평균을 계산했더니 9.4g이 나왔다. 새로운 사료가 평균적으로 더 가벼운 계란을 생산한다고 할 수 있는가?

$H_0 : \mu = 10.5$

$H_1 : \mu < 10.5$

 

어떤 농장에서 자신들이 생산하는 계란의 평균 무게가 10.5g 이라고 홍보하고 있다 이에 생산된 계란 30개의 표본 평균을 계산했더니 9.4g 이 나왔다. 이농장의 광고가 맞다고 할 수 있나?

$H_0 : \mu = 10.5$

$H_1 : \mu \neq 10.5$

 

검정통계량

n >= 30 인경우

중심극한 정리 사용

$Z = \frac{\bar - \mu}{S / \sqrt{n}} ~ N(0,1)$

 

모집단이 정규 모집단이고 모표준편차 $\sigma$ 가 주어진 경우

$Z = \frac{\bar - \mu}{\sigma / \sqrt{n}} ~ N(0,1) $

 

 

기각역

$H_0 :  \mu = 10.5$

유의 수준 : $\alpha$

기각역

$H_1 : \mu > 10.5 = > Z > z_{\alpha} $

$H_1 : \mu < 10.5 = > Z < -z_{\alpha} $

$H_1 : \neq > 10.5 = > Z > z_{\alpha} $

 

 

이 파란 선을 넘어가는냐 아니냐 보면 되는 것 같다

 

colab.research.google.com/drive/1hABJEM72ga3pD7BLJnRFdMr5DxhH15b9?usp=sharing

 

[Programmer][Weak3] 검정.ipynb

Colaboratory notebook

colab.research.google.com

import numpy as np
w =  [ 10.7, 11.7, 9.8, 11.4, 10.8, 9.9, 10.1, 8.8, 12.2, 11.0, 11.3, 11.1, 10.3, 10.0, 9.9, 11.1, 11.7, 11.5, 9.1 ,10.3, 8.6, 12.1, 10.0, 13.0, 9.2, 9.8, 9.3, 9.4, 9.6, 9.2]
mu = 10.5
xbar=np.mean(w)
sd=np.std(w,ddof=1)
print("평균 %.2f, 표준편차: %.2f" %(xbar,sd))
z = (xbar-mu)/(sd/np.sqrt(len(w)))
print("검정통계량:", z)
alpha = 0.05
import scipy.stats
cri = scipy.stats.norm.ppf(1-alpha/2)
print("임계값: ",cri)