라오 블랙웰의 정리로 결정 함수를 개선해 본다

7704 단어 C++통계학

배경



최근에는 라오 블랙웰의 정리라는 것을 공부하고 있었습니다. 이것을 사용하면 결정 함수를 개선할 수 있다는 것 같습니다. 자면을 쫓고 있을 뿐이라고 잘 모르기 때문에, 교과서에 실려 있지 않은 예를 스스로 수치 실험해 보기로 했습니다.

라오 블랙웰의 정리란?



특정 결정 함수 $\delta(X)$가 있다고 가정합니다. 충분한 통계량 $T$를 생각해, 그 조건부 기대치에 의해 계산되는 $\delta^*(T)=E[\delta(X)|T]$를 생각합니다. $T$에 의존하기 때문에 이것도 통계량입니다. 이에 대해

$$
E[(\delta^*(T)-\theta)^2]\leq E[(\delta(T)-\theta)^2]
$$
가 성립합니다. 이것을 라오 블랙웰의 정리라고합니다. 이것을 사용하여 결정 함수를 개선하려면
  • 결정 함수와 충분한 통계량 준비
  • 조건부 기대치에 의해 통계량$\delta^*(T)$를 만든다
  • 표본에서 $\delta^*(T)$ 기대치를 얻는다

  • 라고 하는 순서를 밟으면 OK입니다.

    수치 실험



    조건부 기대치를 계산해야 하기 때문에 이전에 계산한 결과를 이용하기 위해 포아송 분포로부터의 샘플링을 생각합니다. 표본 크기는 $2$입니다. 개량 전의 결정 함수로서는 $\delta(X)=X_0$를 채용합니다. 조건부 기대치는

    $$
    \delta^*(t) =\sum_{x_0=0}^t x_0 p(x|T=t)=\sum_{x_0=0}^t p(x|t) =\sum_{x_0=0}^ t x_0\times\frac{1}{x_0!(t-x_0)!}\frac{1}{\sum_{n=0}^t\frac{1}{n!(t-n)!}}
    $$

    ( 충분한 통계량의 값을 리샘플링하여 모 분포의 개요를 얻습니다. 의 계산 결과를 이용했습니다).
    이것은 분명히 $ T $의 함수이며 통계량입니다. 개량커녕 정말로 이것으로 추정할 수 있을까, 불안해져 왔습니다・・・.
    어쨌든 해보겠습니다. $\lambda=5$로 하고 그 추정을 반복합니다.
    #include <iostream>
    #include <random>
    #include <vector>
    #include <fstream>
    
    int factorial(int k)
    {
        int ret = 1;
        for (int i=1; i<=k; i++)
        {
            ret *= i;
        }
        return ret;
    }
    
    int main(int argc, char **argv)
    {
        double lambda = 5;
        std::mt19937 mt(atoi(argv[1]));
        int Iter = 1000;
        std::poisson_distribution<> poi(lambda);
    
        double sum = 0;//改良後
        double sum2 = 0;//改良前
        for(int iter=0; iter<Iter; iter++)
        {
            double x0 = poi(mt);
            double x1 = poi(mt);
            double t = (x0+x1);
            double num = 0, den = 0;
            for(int n=0; n<=t; n++)
            {
                num += (double)n/factorial(n)/factorial(t-n);
                den += 1./factorial(n)/factorial(t-n);
            }
            sum += num/den / (double)(Iter);
            sum2 += x0 / (double)Iter;
    
        }
        std::cout << sum2 << " " << sum << std::endl;
        return 0;
    }
    


    보라색이 개선 전, 녹색이 개선 후입니다. 개선 후에도 $5$ 부근이 중심이 되어, 편차가 작아지고 있는 것을 확인할 수 있었습니다.

    요약



    라오 블랙웰의 정리에 의해 추정 방법을 개선할 수 있음을 수치적으로 확인할 수 있었습니다.

    좋은 웹페이지 즐겨찾기