投稿一覧

2019 Q3(6)

唯一の不偏推定量であることを示しました。

 

コード

\hat{\theta} = \frac{n+1}{n} Yは、Yによるθの唯一の不偏推定量になります。またYはθの十分統計量ですから、完備十分統計量となります。よって、\hat{\theta} = \frac{n+1}{n} Yは、最小分散不偏推定量(UMVUE)となります。他のθの推定量2 \bar{X}と一緒にプロットし分散を確認します。

import numpy as np
import matplotlib.pyplot as plt

# パラメータ設定
theta_true = 10  # 真のθ
n = 10  # サンプルサイズ
num_simulations = 10000  # シミュレーション回数

# UMVUE(最大値を使った推定量)の格納リスト
theta_hat_UMVUE_list = []

# 他の推定量(例えば、平均を使った推定量)の格納リスト
theta_hat_mean_list = []

# シミュレーション開始
for _ in range(num_simulations):
    # U(0, theta_true) から n 個の乱数を生成
    samples = np.random.uniform(0, theta_true, n)
    
    # 最大値 Y を使用して UMVUE を計算
    Y = np.max(samples)
    theta_hat_UMVUE = (n + 1) / n * Y
    theta_hat_UMVUE_list.append(theta_hat_UMVUE)
    
    # 平均を使用して他の推定量を計算
    theta_hat_mean = 2 * np.mean(samples)
    theta_hat_mean_list.append(theta_hat_mean)

# UMVUE 推定量の分散を計算
umvue_variance = np.var(theta_hat_UMVUE_list)

# 平均推定量の分散を計算
mean_variance = np.var(theta_hat_mean_list)

# 結果を表示
print(f"UMVUE(最大値を使った推定量)の分散: {umvue_variance}")
print(f"平均を使った推定量の分散: {mean_variance}")

# 推定量の分布をプロット
plt.hist(theta_hat_UMVUE_list, bins=30, alpha=0.7, label='UMVUE(最大値を使用)', color='blue', edgecolor='black', density=True)
plt.hist(theta_hat_mean_list, bins=30, alpha=0.7, label='平均を使用した推定量', color='red', edgecolor='black', density=True)
plt.title('UMVUE(最大値)と平均推定量の分布比較')
plt.xlabel('推定量の値')
plt.ylabel('密度')
plt.legend()
plt.grid(True)
plt.show()
UMVUE(最大値を使った推定量)の分散: 0.8726264971281747
平均を使った推定量の分散: 3.3430162264024963

\frac{n+1}{n} Yの分散は、2 \bar{X}の分散よりも小さいことが確認できました。