
109
109
8.2 分散を予測する
def RMSE(estimates, actual):
e2 = [(estimate-actual)**2 for estimate in estimates]
mse = np.mean(e2)
return math.sqrt(mse)
estimates
は推定値のリスト、
actual
は推定対象の値です。実際には、もちろんの
こと、
actual
はわかっていません。わかっているなら、推定する必要などありません。
この実験の目的は、
2
つの推定量の性能を比較することです。
このプログラムを実行すると標本平均の
RMSE
は
0.41
でしたが、これは、
x
-
を使っ
てこの分布の平均を、
n
=
7
の標本に基づいて推定すると、真の平均から
0.41
外れ
るものと予期すべきだということです。中央値を使って平均を推定すると、
RMSE
は
0.53
だったので、
x
-
の方が少なくともこの例では
RMSE
が小さいことがわかりま
す
†
。
MSE
を最小化することは好ましいことですが、常に最良の戦略であるとは限りま
せん。例えば、建築現場の風速の分布を推定するとします。予測が強すぎると、構造
を強くしすぎてしまい、コストがかさみますが、予測が弱すぎれば、建物が崩壊して
しまうかもしれません。誤差の正負に対してコストが非対称なので、
MSE
を最小に
することが最良の戦略とはなりません。
もうひとつ別のゲームをしましょう。
3
つの六面サイコロを振り、出た目の合計を
予想してもらいましょう。当たれば景品をもらえますが、外れたら何もありません。 ...