arXiv探訪

興味の赴くままに数学するだけ

竹村彰通「現代数理統計学」の信頼区間の定義に対する疑問

前回の記事でコメントを頂き、竹村「現代数理統計学」(新装改訂版)を勧められた。竹村は、統計学の標準的な教科書として知られ、数式や説明が丁寧なことに定評がある。自分も通読してはいないものの、この部分に関しては異論の余地が無く良い本だと思う。

しかしその説明にはいくつかの疑問点がある。端的に述べるなら、確率変数という数学の話と、観測値(サンプル)という統計学の話が、同時に混同されて扱われている。

確率変数について

そもそも確率変数の定義に疑問がある。6ページに

確率的に変動する変数を確率変数とよぶ

とある。数学の話をすると確率変数はいくつかの演算操作が可能な数学的オブジェクトであって、確率変数{X}が明日になったら確率変数{Y}になるようなものではない。当然変数も変わらない。変数には代入という評価が存在し、確率変数には確率という評価が存在するだけである。

例えば確率論の実装の一つである測度論を用いると、実数上の確率変数とは、ルベーグ可測空間からボレル可測空間への可測写像のことである。可測性という性質を満たす写像なのだから、変動したり代入したりできるものではない。

可測空間に確率測度を加えることで確率空間が定まる。例えば正規分布や一様分布などの確率密度函数を、事象という名の可測集合上で積分することで、その事象の確率という値を得る。確率変数{X}が確率分布{P}に従うというのは、{X}に確率という名の評価を与えるということである。具体的には、{X}がある値域{B}に属する確率{P(X\in B)}を、{P(X^{-1}(B))}で定義する。よくある{P(X\le a)}というのは、{X}{(-\infty, a\rbrack}に属する確率のことに他ならない。

確率変数同士の和や積もまた確率変数である。従って{X_{1}, \dotsc, X_{n}}を確率変数としたとき、{ \overline{X}=\frac{1}{n}(X_{1}+\dotsb+X_{n})}もまた確率変数である。確率空間を一つ固定し、(良い)確率変数{X}と同分布な確率変数{X_{1}, \dotsc, X_{n}}が独立なとき、{\overline{X}}{X}の期待値{E\lbrack X \rbrack}に(何らかの意味で)収束する。これが有名な大数の法則である。

サンプルについて

統計学は、サンプルと確率変数の間に生成関係を置くところから始まる。生成は次の公理を満たす。

  • {x}は確率変数{X}により生成されたサンプルとする。このとき(良い)函数{f}に対し、{f(x)}は確率変数{f(X)}により生成されたサンプルである。

大数の法則統計学に応用すると次のようになる。{x_{1}, \dotsc, x_{n}}{X_{1}, \dotsc, X_{n}}により生成されたサンプルとする。このときサンプル平均{\overline{x}=\frac{1}{n}(x_{1}+\dotsb+x_{n})}は確率変数{\overline{X}}により生成されたサンプルであるから、{n}を大きくしたとき期待値{E\lbrack X \rbrack}に近いことが期待される。

このように数学の部分と統計学の部分をはっきり分けて記述するべきである。このことは竹村に限らず、世に出ているあらゆる統計学の教科書に対して言える。

信頼区間(信頼域)について

話を信頼区間に移そう。201ページに太字で書かれているので、以下の文が定義と考えられる。

観測値{X}に基づく{\mathbb{R}^{k}}の集合{S(X)\subset\mathbb{R}^{k}}が信頼係数{1-\alpha}の信頼域であるとは

{P_{\theta}(\theta\in S(X) )\ge 1-\alpha, \forall \theta\in\Theta }

となることをいう

第一に、{X}を観測値と言っているので、個々の値について信頼域が定まって、それは上の式を満たすのだと解釈できる。しかしそうすると左辺の解釈に躓く。{P_{\theta}}は91ページにあるように、考えている分布族の分布のことである。とすれば括弧の内側は何らかの事象を意味しなければならない。しかし{\theta\in S(X)}は一体何の事象を表しているのだろうか。{S(X)}{\theta}に依存しないユークリッド空間の部分集合のはずである。その部分集合に{\theta}が入るかどうかは真偽値になるから、好意的に解釈しても確率は0か1、だったら{S(X)}は全体集合でいい。

第二に、{X}を大文字の表記通り確率変数と解釈する。すると問題なのは{S(X)}{X}に依る集合であって、{X}の実現値に依る集合ではない、というのが普通の解釈になるということだ。また上と同様に{S(X)}は全体集合でいい。

第三に、統計モデルに関する(日常用語の)スキームを述べているのだと解釈する。つまり{X}は分布{P_{\theta}}に従うのだとして、信頼域はその統計モデルに依る。すると{\theta\in S(X)}{L(X)\le\theta\le U(X)}のような形になり、その確率を{P_{\theta}}で評価することができる。

第三の解釈が最も妥当であり、本書の中身もこの意味で展開されているが、非常に複雑怪奇な書き方をしているのは間違いない。更にいうと9.3節で、左辺は「確率と解釈することについて問題がある」と断言している。いやどこからどう見ても確率である。ただし統計モデル内の{X}に関する確率である。

ここに前回指摘した「信頼区間の説明が間違っている」という根拠がある。信頼区間を確率として解釈するのであれば、それはモデル内の確率であって、サンプルに関する確率ではない。100回サンプリングをして信頼区間を計算すれば95回は真の値を含むといった保証は少なくとも定義から自明に導かれるものではない。サンプルが統計モデル内の分布から生成されるのであれば、そういうことも起きるかもしれないが、母集団分布というのはそもそも分からないもののはずである。

信頼区間の定義について

コメントで言われたように、確かに「信頼区間の定義が不適切ではないか」と書くべきだったかもしれない。改めて定義を述べると、信頼区間はサンプル毎に計算され、得られたサンプルがごくありふれた事象である、という仮定の下で棄却されない統計モデルのパラメータ範囲であり、95%という数字はごくありふれ具合のことである。こちらの定義の方が簡潔で明確だしすっきりすると思うのだが、同じように考える人はいないのだろうか。

コメントよりマストドン(右上のリンク)の方が見る可能性が高いのでよろしく

一様分布サンプルの正規分布モデルによる信頼区間の被覆確率

const sampleSize = 100;
const testNum = 100;
const z95 = 1.96;

// サンプルを生成(0~1一様分布による)
const pv = 1/12;    // 母分散
const pe = 1/2;     // 母平均
function generateSamples(samples) {
    let n = samples.length;
    
    for (let i=0; i<n; i++) {
        samples[i] = Math.random();
    }
}

// 平均を計算
function calcAvg(a) {
    let n = a.length;
    let s = 0;
    
    for (let i=0; i<n; i++) {
        s += a[i];
    }
    return s/n;
}

// テスト
function test() {
    let count = 0;
    
    let samples = new Array(sampleSize * testNum);
    let avgs = new Array(testNum);
    
    let ci_r = z95 * Math.sqrt(pv / sampleSize);
    
    generateSamples(samples);

    // テスト毎にサンプル平均を取り、被覆するかどうかを計算する
    for (let i=0; i<testNum; i++) {
        avgs[i] = calcAvg(samples.slice(i*sampleSize, (i+1)*sampleSize));
        
        if (Math.abs(avgs[i]-pe)<=ci_r) {
            count++;
        }
    }
    
    return count/testNum;   // 被覆確率
}

let N = 200;
let count = 0;

for (let i=0; i<N; i++) {
    let rate = test();
    count += (rate>=0.95) ? 1 : 0;
}

console.log(count/N);   // 6割くらいになる

2023年にもなって信頼区間の説明が間違いだらけな件について

タイトル通りなんですが、逆に自分が間違ってるのかと錯覚するくらいアレなんで解説を一本書いておきます。

簡単のため、最も簡単なケースとして正規分布モデルで母分散が既知の場合を扱います。

背景の数学

独立な確率変数{X_{1}, \dotsc, X_{N}}正規分布{\text{normal}(\mu, \sigma^{2})}に従うとする。ここで{\sigma^{2}}は既知の定数(シグマの二乗じゃなくてシグマツーという「一つの記号」)とし、{\mu}はパラメータとする。

このとき確率変数{\overline{X}:=\frac{1}{N}(X_{1}+\dotsb+X_{N})}{\text{normal}(\mu, \frac{\sigma^{2}}{N})}に従う。よってこれを標準化した

{\displaystyle \frac{\overline{X}-\mu}{\sqrt{\sigma^{2}/N}}}

は標準正規分布{\text{normal}(0, 1)}に従う。

信頼区間を求める

サンプル{x_{1}, \dotsc, x_{N}}が与えられたとする。

仮定1. サンプル{x_{j}}は確率変数{X_{j}}より生成された。(正規分布モデル)

サンプル平均{\overline{x}:=\frac{1}{N}(x_{1}+\dotsb+x_{N})}を計算すると、仮定1より

{\displaystyle \frac{\overline{x}-\mu}{\sqrt{\sigma^{2}/N}}}

{\text{normal}(0, 1)}より生成されたデータになる。

仮定2. 我々が認識する事象は、ごくありふれた事象である。(統計的推定の仮定)

たとえとして透明な水を張った桶に赤い水滴を一滴垂らしてみる。その場で留まる可能性は物理的にはあるが、常識的に考えて拡散して広がっていく。我々が認識する事象はレアなケースではなく、ごくありふれたものだと信じる。

そこで所与のデータが、ごくありふれた値、具体的に言うと{\text{normal}(0, 1)}の内側95%(数値はなんでもいい)に入るような条件を考える。正規分布表とかで調べれば上下それぞれ2.5%をカットする範囲が{\lbrack -a, a \rbrack}と求まる。

あとはサンプル平均を標準化したデータが、その範囲に収まるような{\mu}の条件を求めればよい。つまり

{\displaystyle -a\le\frac{\overline{x}-\mu}{\sqrt{\sigma^{2}/N}}\le a}

{\mu}について解けば、これが信頼区間である。

パラメータ{\mu}を固定するごとに、データが内側95%に入るか入らないか決まるから、前者となるような{\mu}の範囲が信頼区間である。

一般論

他のケースも同様である。ある統計モデルに従う確率変数について、その統計量に関する理論を作る。所与のサンプルがその統計モデルに従うと仮定して、サンプルからその統計量を計算する。そして所与のデータによって信頼できる統計モデルの範囲を求める。これが信頼区間の一般論である。

上では{\sigma^{2}}を既知としたが、別に未知として扱っても良い。その場合はパラメータが2つだから信頼区間ではなく信頼領域となる。パラメータが3つあれば信頼空間ということになる。

例えば統計モデルとして正規分布二つを重ねたものを使っても、二つのピークを統計量として、それをいい感じ求められる理論が作れるなら、信頼区間の理論を作れるはずである。

何が間違っているのか

実はwikipediaの定義

数学的モデルが~棄却されないパラメーターの範囲

は割と正しい(他の文は知らん)。正しいが、参照先になってる統計webの説明

母集団から標本を取ってきて、その平均から95%信頼区間を求める、という作業を100回やったときに、95回はその区間の中に母平均が含まれる

は正しくない。そもそも上で解説したように信頼区間は統計モデルのパラメータの範囲であって、母平均は一切関係ない。

tjo.hatenablog.com

この記事は読んでないが、記事で引用されてる教科書にも似たような記述が見られる。つまり教科書でさえ信頼区間の説明はだいたい間違ってると思って差し支えない。

まとめ

信頼区間は、サンプルに適合するモデルに関する一条件に過ぎず、所与のサンプルがそのモデル上でごくありふれた値であるような、モデル空間を定める指標の一つである。

95%という数値は、所与のサンプルが統計モデル内でどれくらいレアなケースであっても許容するかを述べた確度である。99%にすれば当然信頼区間も広がるため、許容される統計モデルの空間が広くなっていく。ブルアカで言えばガチャで天井まで一回も星3が出なくても「まぁアロナなら仕方ない」くらいに思えるってこと。

信頼区間のアイディア自体はとてもシンプルで、科学的で、数学も高校生レベルの計算で済む分かりやすいもの。それを余計な説明、というか数式にないことを書いて逆に理解に苦しむ説明になってる場合があるので注意して欲しい。