2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラオ・ブラックウェルの定理で決定関数を改善してみる

Posted at

背景

最近はラオ・ブラックウェルの定理というものを勉強していました。これを用いると決定関数を改善出来る可能性があるということらしいです。字面を追っているだけだとよくわからないので、教科書に載っていない例を自分で数値実験してみることにしました。

ラオ・ブラックウェルの定理とは

ある決定関数$\delta(X)$があるとします。十分統計量$T$を考え、その条件付期待値により計算される$\delta^*(T)=E[\delta(X)|T]$を考えます。$T$に依存しますのでこれもまた統計量です。これについて

$$
E[(\delta^*(T)-\theta)^2]\leq E[(\delta(T)-\theta)^2]
$$
が成立します。これをラオ・ブラックウェルの定理といいます。これを用いて決定関数を改善するためには

  1. 決定関数と十分統計量を用意する
  2. 条件付期待値により統計量$\delta^*(T)$を作る
  3. 標本から$\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;
}

image.png
紫が改善前、緑が改善後です。改善後も$5$付近が中心となっており、ばらつきが小さくなっていることが確認できました。

まとめ

ラオ・ブラックウェルの定理により推定方法を改善出来ることが数値的に確認できました。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?