2018.03.08 11:34

0.통계를 위한 준비


1
2
3
from scipy import stats #통계 관련 패키지
import matplotlib.pyplot as plt #시각화 관련 패키지
import numpy as np #대수 관련 패키지
cs


1.정규분포

1)확률밀도함수 stats.norm.pdf
    "정의역인 확률변수 x의 확률이 얼마나 되는지 나타내는 함수다"

1
2
3
4
5
x_range=np.arange(-10,10,.001# 정의역 범위
plt.plot(x_range,stats.norm.pdf(x_range,loc=0,scale=1)); #정의역 범위,평균=0,표준편차=2 인 정규분포 플롯 
plt.plot(x_range,stats.norm.pdf(x_range,0,2));           #loc,scale 명령어는 생략 가능,순서만 주의
plt.plot(x_range,stats.norm.pdf(x_range,0,5));
plt.legend(['N(0,1)','N(0,2)','N(0,5)'])
cs





그림1 <표준편차값에 따른 정규분포곡선>


2)누적분포함수 stats.norm.cdf

   "확률변수의 x까지 확률이 얼마나 되는지 합한 함수"


  1) 시각화


1
plt.plot(x_range,stats.norm.cdf(x_range,0,1)); #cdf(정의역,평균,표준편차)
cs
SADA   # # SDASDA

그림2 <누적분포함수 시각화>



2) μ+σ,μ+2σ,μ+3σ에서의 cdf 값은 μ과σ의 값에 상관없다



1
2
3
4
exp=[10,20,30];std=[1,2,3];
for i in exp:
    for j in std:
            print("exp=%d,std=%d"%(i,j),norm.cdf([i+j,i+2*j,i+3*j],i,j))
cs





그림3 <평균값,표준편차값에 따른  μ+σ,μ+2σ,μ+3σ 누적분포함수 값>





3) μ(기대값)에서 ±σ,±2σ,±3σ 범위내에 있을 확률


μ±σ범위일 확률을 고려해보자.

다음 두 사실을 전제로 한다

  1.정규분포는 μ를 기준으로 좌우 y축 대칭이기 때문에 [μ-σ,μ] 의 넓이와 [μ,μ+σ] 넓이가 같다

  2.한편 μ를 기준으로 좌측에 있는 모든 넓이는 0.5이다



1
2
3
plt.plot(x1,y1);
plt.fill_between(x1,y1,0,where= x1>=0 )
plt.fill_between(x1,y1,0,where= x1<0,facecolor='red')
cs

   


μ+σ의 누적분포 함수는 두 부분으로 나눌수 있다. 

한 부분은 x=μ인 y축의 좌측 영역, 다른 한 부분은 [μ,μ+σ] 영역.

μ+σ에서의 누적분포함수 값은 이 두 영역의 확률들을 더한 것이므로 여기서 -0.5(좌측영역)을 빼면 남는 값은 [μ,μ+σ] 영역의 확률이다.따라서 이 확률에 *2를 하면 [μ-σ,μ+σ] 영역의 확률을 구할수 있다

   


    

 

[μ-σ,μ+σ] 

 [μ-2σ,μ+2σ]

 [μ-3σ,μ+3σ]

 P

 0.68 (68%)

 0.95(95%)

 0.99(99%)





2.이항분포

1) 랜덤으로 시행해 얻은 이항분포


1
2
3
x_range=np.arange(-3,3,.01);
binom_rvs=stats.binom.rvs(n=1,p=0.5,size=1000
plt.hist(stats.binom_rvs,histtype='step')
cs










참고:

https://oneau.wordpress.com/2011/02/28/simple-statistics-with-scipy/





'파이썬(Python) > 수학 계산(Calculation)' 카테고리의 다른 글

통계 시각화 with matplotlib,sicpy  (0) 2018.03.08
Scipy 1.적분  (0) 2018.02.06
Posted by 조용한빅뱅