Motive

데이터 분석을 하면서 양성자가 신틸레이터에 남긴 신호를 fitting하는 과정에서 Gaussian 분포와 Landau 분포의 convolution을 모델로 사용하려고 했는데, CERN ROOT에는 기본적으로 함수가 구현되어 있지 않아 새로 만들어야 했다. 다만 fitting tutorial 파일 중 langaus.C라는 파일이 바로 Landau와 Gaussian의 convolution 모델을 이용해 fitting을 하는 예제를 소개하고 있다. 하지만 이 예제의 “langaus”는 제대로 normalization이 안되어 있어서 매우 사용하기 불편하다. normalized convolution을 구현하다 보니 문득 드는 의문.

Q. 두 PDF가 normalized일 때 두 PDF의 convolution도 자동으로 normalize가 되어있는가?

Convolution은 Normalization을 보존하는가?

매우 간단한 예시를 들어본다. 다음과 같은 두 확률 분포를 가정한다.

(1)   \begin{align*}f(1)&=x_1, \\ f(2)&=x_2,  \\  f(3)&=x_3\end{align*}


(2)   \begin{align*}g(1)&=y_1, \\ g(2)&=y_2,  \\  g(3)&=y_3\end{align*}

물론 f와 g는 각각 다 합하면 1이 된다. 이제 두 확률 변수 x와 y의 합 z=x+y의 확률 분포를 구해보자.

(3)   \begin{align*} h(1)&=0, \\ h(2)&=f(1)g(1)=x_1 y_1, \\ h(3)&=f(1)g(2)+f(2)g(1)=x_1 y_2+x_2 y_1\end{align*}

3이 나올 확률은 1+2와 2+1 두 가지 경우의 수가 있는 식이다. 6까지 나올 수 있고, 나머지 확률을 모두 구하면 다음과 같다.

(4)   \begin{align*} h(4)&=x_1 y_3+x_2 y_2+x_3 y_1, \\ h(5)&=x_2 y_3+x_3 y_2, \\ h(6)&=x_3 y_3\end{align*}

h 역시 normalize가 되어있는지 보기 위해 모든 확률을 다 더해 본다.

(5)   \begin{align*}\sum_i h(z_i)&=h(2)+h(3)+h(4)+h(5)+h(6) \\&=(x_1 y_1)+( x_1 y_2+x_2 y_1 )+( x_1 y_3+x_2 y_2+x_3 y_1 )+( x_2 y_3+x_3 y_2 )+( x_3 y_3 ) \\&=x_1(y_1+y_2+y_3)+ x_2(y_1+y_2+y_3) + x_3(y_1+y_2+y_3) \\&= (x_1+x_2+x_3)(y_1+y_2+y_3)\end{align*}

f와 g가 normalization이 되어있다는 아래와 같은 가정 하에 다행히도 h 역시 normalization이 성립한다.

(6)   \begin{align*}&x_1+x_2+x_3=y_1+y_2+y_3=1& \\&\therefore  \sum_i h(z_i) =1&\end{align*}

간단한 예를 들어봤을 때 질문에 대한 답은 yes인데… 일반적인 경우에도 성립할까?

General Case

생각해보니 모든 확률을 다 더하면 당연히 1이 나와야 하므로 두 확률 분포의 convolution도 확률 분포가 됨은 자명하다. 수식으로 좀 더 엄밀히 살펴보면 다음과 같다. 다음과 같은 두 확률 분포를 가정한다.

(7)   \begin{align*}f(x_i)&,  \; g(y_i) \\\sum_i f(x_i) &=  \sum_i g(y_i)=1\end{align*}

여기서 두 함수가 확률 분포라는 것, 즉 확률 질량 함수probability mass function의 정의를 만족한다는 의미는 합이 1인 것 이외에도 다음 두 조건을 충족한다는 것과 같다. (Reference)

(8)   \begin{align*} f(x_i) &> 0 \\f(x_i) &=0 \; \textrm{for all other } i\end{align*}

두 함수의 convolution은 정의에 의해 다음과 같이 표현된다.

(9)   \begin{align*}h(z_j) &= \sum_{i} f(x_i) g(z_j-x_i)\end{align*}

이제 식 (9)를 모든 j에 대해 sum 해보자.

(10)   \begin{align*}\sum_j h(z_j) &= \sum_j \sum_i f(x_i) g(z_j-x_i) \\ &= \sum_i  f(x_i) \left[ \sum_j  g(z_j-x_i) \right]\end{align*}

식 (10)의 마지막 항은 확률 분포 g를 모두 더하되, x_i만큼 평행이동하여 더한 것인데 식 (8)의 조건에 의하여 아무리 평행이동이 된다 한들 그 합은 여전히 1이다. 따라서,

(11)   \begin{align*}\sum_j h(z_j) &= \sum_i  f(x_i) \left[ \sum_j  g(z_j-x_i) \right] \\&=  \sum_i  f(x_i) \times 1 \\&= 1\end{align*}

결론: 확률 분포 끼리 convolution한 함수도 확률 분포다. Discrete 분포에 대해서만 해보았지만 PDF를 가지고 적분해봐도 같은 결론을 얻을 수 있다.

그리고 난 아무 걱정 없이 마음 놓고 fitting code를 작성할 수 있었다.


0개의 댓글

답글 남기기

아바타 플레이스홀더