본문 바로가기

Study/수학과통계

베르누이 분포, 이항분포, Random Walk

베르누이 분포

 확률 p로 성공, q로 실패를 하는 확률변수는 베르누이 분포를 따른다. 

 예를 들어 동전던지기는  Bernoulli(0.5)이다. 

이항분포

 매회 성공확률 p를 n번 반복했을때 성공회수 X가 있다. 이때 X는 이항분포를 따른다.

 예를들어 타율 3할 4푼 5리 타자가 매경기 네번 타석에 섰고, 126경기를 소화했다고 한다.

 이번 시즌 매경기 hit수와 전체 hit수를 예측해보자

 

import numpy as np

a = np.random.binomial(4,0.345,size = 126)
print('매경기 평균 hit수: {}, 한시즌 총 hit수: {}'.format(a.mean(), a.sum()))

매경기 평균 hit수: 1.48, 한시즌 총 hit수: 187 

Random Walk

평면에서 좌 우로 움직이는 random step이 있다. $\frac{1}{2}$ 확률로 1, $\frac{1}{2}$ 확률로 -1 이 나온다. 

t번 수행했을때 원점에서 거리를 구하는 문제가 있다.

 

통계학적으로 풀이

$Position Y = X - (t - X) $ : X는 우측으로 이동한 횟수(+) (t-x)는 좌측으로 이동한 회수이다(-) 

$ = 2X - t $

 

위치 Y의 기대값 $E(y^{2})$

$$E(Y^{2}) = E(2X - t)^{2} $$

$$ = E(4X^{2} - 4Xt + t^{2})$$

$$ = E(4X^{2}) - 4t E(X) + t^{2} $$

 

이항 분포를 따르기 때문에, $V(t) = t \cdot \frac{1}{2} \cdot \frac{1}{2} = \frac{t}{4}$

 

분산 $V(X) = E(X^{2}) - E(X)^{2}$ 로 표현 할 수 있고, 바꿔보면 $E(x^{2}) = V(X) + E(X)^{2}$ 

$E(X) = n * p , E(X) = t * \frac{1}{2}$ 이고 윗 줄 식에 대입하면 $E(X^{2}) = \frac{t}{4} + (\frac{t}{2})^{2}$

 

위에 식 $E(4X^{2}) - 4tE(x) + t^{2}$ 

$$ = 4 \cdot ( \frac{t}{4} + \frac{t^{2}}{4} )  - 4t \cdot \frac{t}{2} + t^{2}$$

$$ = t^{2} + t - 2t^{2} + t^{2} $$

$$ E(Y^{2}) = t , \, E(Y) = \sqrt{t} $$ 

이론적으로 $\frac{1}{2}$확률로 좌,우로 움직이는 시행을 t번 했을때, 위치는 $\sqrt{t}$라고 추정 할 수 있다.

 

Python으로 시행

import numpy as np

time = 200
stories = 1000

steps = np.random.randint(0,2,size =(stories,time)) * 2 - 1 #[-1, 1]수를 n = 200 size = 1000 

position = np.cumsum(steps,axis = 1) #위치는 움직이는 값들을 더한것임
distance = position ** 2 #거리는 양수이기 때문에 모두 제곱해 줌
distance_mean = np.mean(distance, axis = 0) # size 1000번 수행했을때 step별 평균 거리값

distance_sqrt = np.sqrt(distance_mean)
print(distance_sqrt)

array([ 1. , 1.48458748, 1.74126391, 2.02879274, 2.23427841, 2.45112219, 2.71735165, 2.85937056, 3.09451127, 3.26190129, 3.38230691, 3.52760542, 3.65841496, 3.746465 , 3.8574603 , 3.99048869, 4.14921679, 4.28485706, 

 

index+1 = t, 각각의 step(t) 별로 $\sqrt{t}$ 만큼 거리가 증가되는것을 알 수 있다.