확률 변수의 선형 결합 분포

6858 단어 C++통계학

배경



「현대수리통계학」(다케무라 아키히로)를 한결같이 흥미있는 부분은 팔로우했으므로, 실제로 도구로서 사용할 수 있도록(듯이) 세세한 부분을 팔로우해 여러분입니다.
지금은 「일본 통계학회 공식 인정 통계 검정 1급 대응 통계학」을 파라파라 바라보면서 장말의 연습 문제를 풀고 있습니다. 아마존에서의 리뷰는 찬반양론이라는 느낌입니다만, 한가지 다른 수리 통계학의 교과서를 읽고 나서 들어가는 분에는 간결하게 정리되어 있는데다, 장말에 이해도의 체크 시트가 있으므로 지식의 누락을 강화할 수 있습니다.
연습 문제를 풀고 있고, 확률 변수의 변수 변환 부분의 이해가 달콤하다고 생각했기 때문에 조금 진지하게 손을 움직여 보기로 합니다.

문제 설정



확률 변수 $X_0,X_1$가 표준 정규 분포를 따릅니다. 이때
Y_0 = X_0 + b X_1

같은 변수 변환을 생각해 봅시다. $f_Y(y_0)$는 어떤 분포를 따릅니까?

해보자



확률 변수를 $(X_0,X_1)\to(Y_0,Y_1)$로 변환합니다. 요구하고 싶은 것은 $f_Y(y_0)$이므로, $Y_1$의 선택 방법에는 임의성이 있습니다. 어쨌든 마지막에는 $ Y_1 $ 따라 적분되어 버리므로 계산이 편해지도록 선택하는 것이 좋습니다. 구체적으로는 야코비안의 계산이 편해지도록 선택합니다. 여기에
Y_1 = X_1

선택합니다.
x_0 = y_0-by_1,\;x_1=y_1

그러니까
\begin{eqnarray}
f_X(x_0)f_X(x_1)dx_0dx_1 &=& f_X(y_0-by_1)f_X(y_1)\left|\frac{\partial (x_0,x_1)}{\partial (y_0,y_1)} \right|dy_0dy_1 
\end{eqnarray}

됩니다. 즉,
f_Y(y_0,y_1) = f_X(y_0-by_1)f_X(y_1)\left|\frac{\partial (x_0,x_1)}{\partial (y_0,y_1)} \right|

입니다. 귀찮은 것은 야코비안의 계산뿐입니다. 지금 알고 싶은 것은 $f_Y(y_0)$이므로, 이것을 $y_1$에 대해 적분해 줍니다.
f_Y(y_0) = \int_{-\infty}^{+\infty} f_X(y_0-by_1)f_X(y_1)\left|\frac{\partial (x_0,x_1)}{\partial (y_0,y_1)} \right| dy_1 \propto e^{-\frac{y_0^2}{2(b^2+1)}}

됩니다.

수치 실험에 의한 확인



코드는 다음과 같습니다.
#include <random>
#include <iostream>
#include <fstream>
#include <cmath>

int main()
{
    std::mt19937 mt(0);
    std::normal_distribution<> gauss(0, 1);
    std::uniform_real_distribution<> r(0, 1);
    double a = 1, b = r(mt);

    int Iter = 1000000;
    for (int iter = 0; iter < Iter; iter++)
    {
        double x0 = gauss(mt);
        double x1 = gauss(mt);
        double y0 = a * x0 + b * x1;
        double y1 = x1;
        std::cout << y0 << std::endl;
    }
    std::ofstream ofs("calc.txt");
    for (double y0 = -10; y0 <= 10; y0 += 0.1)
    {
        //ofs << y0 << " " << 1. / 2. / M_PI * fabs(1. / a + b / a) * sqrt(2 * M_PI) * exp(-y0 * y0 / 2. / (b * b + 1)) / sqrt(b * b + 1)*0.1 << std::endl;;
        ofs << y0 << " " << exp(-y0 * y0 / 2. / (b * b + 1))  << std::endl;;
    }

    return 0;
}


해석 계산의 결과와 거의 일치하는 것을 확인할 수 있었습니다.

이산 분포의 경우



이산 분포의 경우도 같은 방법으로 계산할 수 있지만, 야코비안이 없는 알기 쉽습니다. 깨끗한 형태로 쓸 수 있을지는 별도입니다.

조건부 확률


P(A|B) = P(A,B)/P(B)

그래서 이것도 별로 머리를 비틀지 않아도 같은 느낌으로 계산할 수 있을 것 같네요.

요약



지금까지는 그 때마다 머리를 비틀어 계산하고 있었습니다만, 반기계적으로 계산할 수 있을 것 같습니다. 최종적으로 적분해 버리는 것을 알고 있는 확률 변수는 잘 선택하는 것이 중요할 것 같습니다. 이것은 교과서를 대각선으로 읽는 것만으로는 눈치 채지 못하는 포인트였습니다.

좋은 웹페이지 즐겨찾기