728x90
반응형

1. 정규분포와 표준정규분포의 관계

정규분포
표준정규분포 변환

===========================

 ==> P(z_a <= Z <= z_b)

변환_1
변환_2

 

EX-01) N(50, 10**2) ==> P(X<=63.1)

 

z_0 =  (63.1 - 50) / 10 = 1.31

 

==> P(Z<= 1.31)

 

 

EX-02) 평균 90마리, 표준편차 10마리인 정규분포

 

1> 박테리아의 수가 80마리 이하일 확률

P(X<= 80)

 

N(90 , 10**2)

 

z_0 = (80 -90) / 10 = -1

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯
#ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x>=0  , facecolor = 'pink')

ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x<=-1 , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔


#ax.text(0.3, .10, f'P(Z>=0)  \n{0.5}',fontsize=20)
area =  stats.norm.cdf(-1)
ax.text(-3 , .135, f'P(Z<=-1 : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(-1.2, .125), xytext=(-2.2 , .125)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= -1.03, ymin= 0 , ymax= stats.norm.pdf(-1.03, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

P(Z<= -1)

 

P(Z<= -1) = 0.1587

 

2> 박테리아의 수가 115마리 이상일 확률

 

P(X>=115) ~ N(90 , 10**2)

 

z_1 = 115 - 90 / 10 = 2.5

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x>=2.5 , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  stats.norm.cdf(-2.5)
ax.text(2.8 , .056, f'P(Z>=2.5 : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(2.7, .0025), xytext=(2.7 , .05)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 2.5, ymin= 0 , ymax= stats.norm.pdf(2.5, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

 

P(Z>=2.5)

P(Z>= 2.5) = P(Z<= -2.5) = 0.0062

 

3> 박테리아의 수가 75마리 이상 103마리 이하일 확률

 

P(75<=X<=103)

 

z_a = (75 - 90) / 10 = -1.5

 

z_b = 103 -90 / 10 = 1.3

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x<=1.3) & (x>=-1.5) , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  stats.norm.cdf(1.3) - stats.norm.cdf(-1.5)
ax.text(1.71 , .17, f'P(-1.5<=Z<=1.3) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 1.3, ymin= 0 , ymax= stats.norm.pdf(1.3, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))
ax.vlines(x= -1.5, ymin= 0 , ymax= stats.norm.pdf(-1.5, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

P(-1.5<=Z <= 1.3)

 

P(-1.5<=Z <= 1.3) = P(Z<=1.3) - P(Z<=-1.5) = 0.8364

 

 

EX-03) 평균 124 mmHg , 표준편차 8 mmHg

 

1> 120 mmHg 이하일 확률

 

P(X<=120) ~ N(124 , 8**2)

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯
#ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x>=0  , facecolor = 'pink')

ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x<=-0.5 , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔


#ax.text(0.3, .10, f'P(Z>=0)  \n{0.5}',fontsize=20)
area =  stats.norm.cdf(-0.5)
ax.text(-3 , .135, f'P(Z<=-0.5 : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(-1.2, .125), xytext=(-2.2 , .125)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= -0.5, ymin= 0 , ymax= stats.norm.pdf(-0.5, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

P(Z<= -0.5)

 

 

P(Z<= -4/8) = P(Z<= -0.5) = 0.3085

 

 

2> 142 mmHg 이상일 확률

 

P(X=>142) ~ N(124 , 8**2)

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = x>=2.25 , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  stats.norm.cdf(-2.25)
ax.text(2.8 , .056, f'P(Z>=2.5 : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(2.7, .0025), xytext=(2.7 , .05)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 2.25, ymin= 0 , ymax= stats.norm.pdf(2.25, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

 

P(Z>= 18/8) = P(Z>= 2.25) = P(Z<= -2.25) = 0.0122

 

 

3> 115 mmHg 이상, 136 mmHg 이하일 확률

 

P(115 <= X <= 136) ~ N(124 , 8**2)

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =2 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x<=1.5) & (x>=-(9/8)) , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  stats.norm.cdf(1.5) - stats.norm.cdf(-(9/8))
ax.text(1.71 , .17, f'P(-(9/8)<=Z<=1.5) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 1.5, ymin= 0 , ymax= stats.norm.pdf(1.5, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))
ax.vlines(x= -(9/8), ymin= 0 , ymax= stats.norm.pdf(-(9/8), loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

 

P(115-124 / 8 <=Z <= 136 -124 / 8) = P(-9/8 <=Z <= 1.5) = P(Z<= 1.5) - P(Z<= -9/8) = 0.8029

 

 

EX-04> X ~ N(5, 2**2)

 

z_a는 x_a를 표준화한 위치
x_a 구하기 공식

 

1> P(X> x_0) = 0.025를 만족하는 x_0

 

 

1 - P(X<= x_0)  = 0.025

P(X<=x_0) = 0.975

area = stats.norm.ppf(0.975)
area

==> ppf를 통한 z = 1.96값 얻을 수 있다. 

https://knowallworld.tistory.com/252

 

sympy INTEGRAL,Symbol,pprint★scipy.stats.UDF_균등분포★stats.PDF_확률밀도함수★기초통계학-[Chapter06 - 연속

1. 연속확률변수(Continous Random Variable) ==> 확률변수가 취할 수 있는 모든 값, 상태공간이 어떤 구간으로 나타나는 확률변수 의미 ==> 확률변수 X가 취할 수 있는 모든 값이 유한구간 [a,b] or [(0, 무한

knowallworld.tistory.com

 

==> ppf , pdf , sf, cdf 참고

x_0 = 5 + 2* 1.96 = 8.92

 

2> P(X< x_0) = 0.9265를 만족하는 x_0

 

area = stats.norm.ppf(0.9265)
area

z = 1.45

 

x_0 = 5 + 2 * 1.45 = 7.9

 

3> P(5-x_0 < X < 5+ x_0) = 0.8262를 만족하는 x_0

 

 

z_a = (5-x_0 - 5) / 2 = - (x_0) / 2

 

z_b = (5+x_0 - 5) / 2 =(x_0) / 2

 

P(- (x_0) / 2 < Z < (x_0) / 2) = 2 * P(0 < Z<(x_0) / 2 ) = 0.8262

 

P(0< Z< (x_0 / 2 ) = 0.4131

 

area = stats.norm.ppf(0.5 + 0.4131)
area

x_0 / 2 = 1.36

 

x_0 = 2.72

 

EX-05> X ~ N(150, 5**2)

 

 

1> P(X>x_0) = 0.0055 만족하는 x_0

area = stats.norm.ppf(1- 0.0055)
area

P(X<=x_0) = 1 - 0.0055

 

z_0 = 2.5426

 

x_0 = 150 + 5*(2.5426) = 162.713

 

2> P(X<x_0) = 0.9878 만족하는 x_0

 

z_0 = 2.25

 

x_0 = 150 + 5*(2.25) = 161.25

 

3> P(150-x_0 < X<150 + x_0) = 0.9010 만족하는 x_0

 

z_a = (150-x_0 -150 ) / 5 = -x_0 / 5

z_b = (150+x_0 - 150 ) / 5 = x_0 / 5

 

P(-x_0/5 < Z < x_0/5) = 2 * P(0< Z < x_0 /5) = 0.9010

 

P(0< Z < x_0 /5) = 0.9010 / 2 

area = stats.norm.ppf(0.5 + 0.9010 /2 )
area

x_0 / 5 = 1.6497

x_0 = 8.2485

 

 

출처 :  [쉽게 배우는 생활속의 통계학]  [북스힐 , 이재원] 

※혼자 공부 정리용

728x90
반응형

+ Recent posts