본문 바로가기
파이썬/통계분석

[파이썬 강의] 78. 표본추출 (표준정규분포, 정규분포)

by 만다린망고 2021. 11. 3.
반응형

표준정규분포에서 표본을 추출해봅시다.  

np.random.randn(원소 수)
np.random.randn(행의 수, 열의 수)
...

 

일반화하여 표현하면 아래와 같습니다. 

 

np.random.rand(shape)


예를 들어봅시다. 원소가 10개인 표본을 추출해봅시다. 

>>> np.random.randn(10)
array([-0.46918572, -0.01478616, -0.68911651,  1.14858756, -1.97550475,
       -1.66843948,  0.37697573,  1.55891432,  0.56331007,  0.93739202])


2행5열의 표본을 추출해봅시다. 위 결과와 얼핏 같아 보이지만 아닙니다. 아래 결과는 리스트가 2중 중첩입니다. 

>>> np.random.randn(2,5)
array([[-0.42984829,  0.39786539,  0.45672605, -0.46939799, -0.44503131],
       [-0.90079517, -0.99296449,  0.24403395, -0.46266778,  0.1448678 ]])


만약 표준정규분포가 아니라, 우리가 원하는 평균과 표준편차가 사용된 정규분포에서 추출하려면 어떻게 해야 할까요? 

표준화 과정을 거꾸로 하면 됩니다. 평균이 $\mu$이고, 표준편차가 $\sigma$ 인 정규분포는 아래와 같이 표준화됩니다. 

$Z=\frac{X-\mu}{\sigma}$


아래와 같이 변형할 수 있습니다. 

$\sigma Z+\mu=X$

예를들어 평균이 10이고, 표준편차가 3인 정규분포에서 10개의표본을 추출하고 싶다면 아래와 같이 입력하면 됩니다. 

>>> np.random.randn(10)*3+10
array([ 3.14396629,  7.92290218, 13.25465947, 14.87913917, 13.88746704,
       11.3491535 ,  8.24450085, 11.51750932,  8.52251674,  9.37713388])

 

반응형

댓글