확률과정이란?

확률과정이란?

정의

  1. 확률변수 $X: \Omega \to E$ 의 공역을 상태공간이라 한다.
  2. 확률변수의 집합 $\left\{ X_{t} \mid t \in [ 0 , \infty ) \right\}$ 을 연속적 확률과정이라 한다.
  3. 확률변수의 수열 $\left\{ X_{n} \mid n = 0, 1, 2, \cdots \right\}$ 을 이산적 확률과정이라 한다.

설명

확률과정은 과정Process이라는 단어 때문에 이해하기 어려운, 전형적으로 말이 어려워서 어려운 개념이다. ‘프로세스’란 보통 어떤 알고리즘이나, 우리 말 그대로의 ‘과정’을 뜻하기 때문에 위의 정의와 전혀 맞지 않는 탓이 크다. 굳이 ‘확률변수의 수열’이나 ‘확률변수의 집합’이라고 설명하는 이유는 고등학교를 졸업하면 수열을 ‘정의역이 자연수인 함수’로 정의하기 때문이다.

함수? 수열? 집합?

이러한 의미에서 확률과정이란 결국 ‘시간적인 변수 $t$ 혹은 $n$ 에 대해 확률변수를 돌려주는 함수’다. 궁금한 건 결국 ‘언제 확률이 어떻게 나오냐?‘고, 집합이니 수열이니 복잡하게 생각할 필요가 없다. 사람들은 오늘 비가 올 확률도 궁금해하지만 내일 비가 올 확률도 궁금해하고 모레 비가 올 확률도 궁금해한다. 오늘을 D+0, 내일을 D+1, 모레를 D+2 와 같이 두고 $p ( X_{n} = \text{ rain } )$ 을 D+n 의 강수확률이라고 나타낼 수 있다면 확률과정의 개념을 훌륭하게 이해한 것이다.

확률과정론은 그 특성상 많은 전공에서 다양한 수준으로 익히다보니 교재마다 말이 다르다. 적어도 확률정보론에 입문할 때는 정확한 정의보다 직관적인 개념으로 잘 받아들이는 게 더 중요한다.

예시

도박

예시로써 동전 던지기 게임Cash Process을 생각해보자. 이 게임은 동전 하나를 던져서 앞면이 나오면 $1$ 점을 얻고 뒷면이 나오면 $1$ 점을 잃는다. 플레이어가 종료를 선언한 시점에서 게임은 끝나고, 마지막에 점수가 양수면 점수당 천원을 받고 음수면 점수당 천원을 내야하는 게임이다. 점수는 $0$ 점에서 시작한다.

우선 이 게임의 상태공간은 플레이어의 점수로써, 정수의 집합 $\left\{ \cdots, (- 2) , (-1) , 0 , 1 , 2 , \cdots \right\}$ 가 될 것이다.플레이어가 $n$ 번 동전을 던졌을 때 점수가 $x$ 점일 확률은 $p( X_{n} = x)$ 와 같이 나타낼 수 있다. 특히 동전을 한 번도 던지지 않았을 때 내 점수는 반드시 $0$ 점으로, $p ( X_{0} = 0 ) = 1$ 을 확신할 수 있다.

여기서 $X_{1}$ 은 $(-1)$ 이거나 $1$ 이듯, $X_{2}$ 은 $(-2) , 0 , 2$ 셋 중 하나라는 것은 확실하다. 이렇게 시행횟수 $n$ 이 달라짐에 따라 확률변수 $X_{n}$ 은 달라지고 있다.

10.png 1000.png 실제로 위의 게임을 시뮬레이션해보면 점수의 등락은 위와 같이 나타난다. 이렇게 무작위적인 등락을 브라운 운동Brownian Motion이라 한다. $10$ 회 반복을 하고 그만두었다면 상금으로 2천원을 받았을 것이고, $400$ 회쯤에서 관두었다면 꽤 큰 손실이 있었을테고, $900$ 회쯤에서 관두었다면 꽤 큰 돈을 받았을 것이다.

확률과정론은 ‘그래서 언제 관두는 게 좋은가’에 대한 대답을 제시할 수도 있다. 적당한 목적을 달성했을 때 욕심을 부려보고 싶다면 다음 기회는 언제쯤일지, 얼마나 큰 위험을 감수하는지를 궁금해하지 않는 사람은 없다.

주식

또 다른 예로 주식이 그렇다.

20190121\_113540.png 물론 주식은 완전히 무작위적이지 않다. 하지만 위와 같은 차트를 보고 1년 후의 동향을 예측하기는 무척 어렵다. 확률과정론을 공부한다는 것은 차티스트가 되는 것이 아니라 오히려 그 반대다. 어떤 것이 가격의 등락에 영향을 미치는지 파악하고 빠르게 정보를 얻어 정확한 모형을 만들고 나만 알고 있다면 평생 먹고 살 걱정은 없을 것이다. (물론 불가능하다.)

한편 수학적으로, 확률과정은 비결정론적인 동역학계라고도 볼 수 있다.

코드

아래는 R 을 통해 캐쉬 프로세스를 시뮬레이션 한 예제 코드다.

set.seed(150421)
toss<-sample(c(-1,1),10,replace=T)
win.graph(4,4)
plot(cumsum(toss),type='l',main='10회 반복')
abline(h=0)
 
toss<-sample(c(-1,1),1000,replace=T)
win.graph(4,4)
plot(cumsum(toss),type='l',main='1000회 반복')
abline(h=0)
댓글