測定値の比はなぜ歪むのか?直感が崩れる統計の話

Python

はじめに

 光学実験でパワー測定はよくやりますが、2個の異なる条件で取得したパワーの比率を計算するときは、得られる値のばらつきの扱いに注意が必要です。
この記事では、どういう事が起こるかをpythonで可視化して理解します。
対処方法も少し述べたいと思います。

条件

AとBという異なる条件で取得したデータがあり、その比率を計算したとします。
Aは平均100、偏差10の正規分布、Bは平均50、偏差は可変の正規分布としています。
Bの値がマイナスになると扱いが大変なので、ここではtruncateします。
各条件で10000サンプリングしてヒストグラムを書いてみます。

import numpy as np
import matplotlib.pyplot as plt

from scipy.stats import truncnorm
sigmas = [1,5,10,15,20,40]
result =[]
rng = np.random.default_rng(42)
for sigma in sigmas:
    A = rng.normal(100,10,10000)
    B = truncnorm.rvs((0-50)/sigma, np.inf, loc=50, scale=sigma, size=10000)
    result.append(A/B)
fig, axes = plt.subplots(2, 3, figsize=(15, 6))
axes = axes.ravel()
for i, r in enumerate(result):
    # histogram
    axes[i].hist(r, bins=200)
    axes[i].set_title(f"σ / μ={sigmas[i]/50}")
fig.supxlabel(f"A/B")
fig.supylabel("Probability density")

plt.tight_layout()
plt.show()

比率A/BのヒストグラムをBのコントラスト(平均/標準偏差)の条件ごとにグラフにしました。
AとBの平均値は100と50なので、A/Bは2が期待値です。

コントラストが0.2以下では、確かに2のあたりで頻度が高くなっていますが、右側に裾野が伸びてわずかに非対称になっています。

コントラストが0.2を超えると100以上のような極端に大きな数値になる場合があり、ヒストグラムの見た目から大きく変わってしまっています。
実際よりも極端に高い測定結果がでることがあると言えます。

歪度

 非対称といいましたが、定量的にみてみましょう。
分布の非対称性を表す尺度に歪度があるので、これを求めます。
歪度が0だと対象な分布、マイナスだと左側、正だと右側に裾野が広がっていることになります。

from scipy.stats import skew
skews = [skew(x) for x in result]
contrast=[x/50 for x in sigmas]
plt.scatter(contrast,skews)

 こちらもコントラストが0.2超えたあたりで急上昇して、40前後まで上がっています。
また単調増加かなと思っていましたが、そこまで単純でもないようです。

考察

 今回はBの値を正に固定したのですが、マイナスも許してしまうと分布は負から正にまたがるため、ヒストグラムとしても解釈が難しくなります。
実際の測定ではマイナスになった時の扱いはきちんと決めておく必要がありそうです。

 コントラストが大きくなるとBは0に近い値が出てきます。
直感的には、A/Bの分母のBが小さくなることで急激にA/Bの値が大きくなるため分布が歪んでしまうのです。A/Bの分布は理論的にも複雑で、解析的な扱いは困難です。

じゃあ、Bの平均値が十分大きければいいの?

そうではありません。B→1/Bの変換で少なからず歪みが入ってしまうのです。

割り算で求めた値の分布を安易に正規分布として考えるのは危険です。

じゃあ、どうすればいいの?

 オフセット項わざという方法があります。
R = A/Bでなく、A = R x Bの形にしてRとBを使ってAの回帰分析をするのです。
これにより、比を単純な確率変数として扱うのではなく、生成モデルとして扱うことができます。
その結果、比の分布形状に直接依存せずに推定を行うことができます。

オフセット項わざは一般化線形モデリング(GLM)の手法で、詳細は下記を参照ください。

 実はこの記事のテーマ自体がこの本の内容を前提で作成した節があります。
著者の久保先生は元々数学の立場で統計専攻していましたが、実際のデータを使って統計解析を行う研究室に移ったそうです。理論だけでない実際のデータに向かい合って、一つずつ理解を積み上げた者でないと出せない言葉や雰囲気が全編にわたって充満していて、それが名著たらしめています。
 MCMCを行うツールとしてBUGSが紹介されていたり古くなっている所はありますが、現在でも読む価値が全く薄れない本です。

コメント

タイトルとURLをコピーしました