プロが教えるわが家の防犯対策術!

よく分割表に5以下の数字が含まれる場合はFischerの方を使った方がいいと教科書には書いてありますが、逆に5以下の数字が含まれていない分割表において、あえてχ2検定をする意義はありますか?すべてFischerの直接確率検定ではだめでしょうか?たまに論文で、5以下のものはFischer、5以上のものはχ2検定に分けて使用している論文見かけたことがあって質問しました。
よろしくお願いいたします。

A 回答 (8件)

No.6です。



No.7でご紹介なのは、「周辺分布を固定する」すなわち(A)「全体の合計が決まった値で、各マス目に入るサンプルの発生確率が既知の決まった値である(「条件なし」と称す)」という条件が付いている分割表の場合と、(B)「タテの合計とヨコの合計(周辺確率)は決まった値である(「条件付き」と称す)」という条件が付いている分割表の場合でχ²検定とFisher式正確確率検定の比較をやった、という記事ですね。(たいへん興味深いです。ありがとうございます。> No.7。)
で、そういう話になりますと、もうちょっと突っ込まねばならんでしょう。

 「分割表」とひとことで言うけれども、その意味と制約条件は実験デザインによって違います。区別して考えなくちゃいけないでしょう。

(A)「N数と、各マス目に入るサンプルの発生確率が、既知の決まった値である」
 各マス目に入ったサンプルが多いときには、実験で得られた分割表から「各マス目に入るサンプルの割合」を計算すれば、「各マス目に入るサンプルの発生確率」が良い精度で推定できる。なので以下の(B)(C)(D)のどの場合でも、(A)で近似でき、χ²検定がやっているのはまさしくこれです。χ²検定の(暗黙の)前提である「各マス目に入るサンプルの発生確率が分かっている」が良い精度で成り立つので、当然χ²検定がうまくいく。
 逆に言えば、実験で得られた分割表において、あるマス目に入ったサンプルが少ない時には、「各マス目に入るサンプルの発生確率」の推定誤差が大きいんで、χ²検定の前提がちょっと怪しい。(ご質問はここのところですね。)
 一方、近似ではなしに(A)が生じるのはどんなときか。まず、この分割表を作るためだけに実験をするのは(すでに確率が分かっているんだから)全くのナンセンスです。「行の分類と列の分類に関係があるのか?」をわざわざデータに基づいて検討する必要もない。つまり、そもそも検定なんか不要である。なんだか極めて不自然な話ですね。
 それでも、こんな分割表を実際に作る場合が考えられます。それは、「各マス目に入るサンプルの発生確率は(他の研究でよく調べられた)既知の決まった値である」のだけれども、何か他のことを調べる目的で実験をやった際に取ったデータが「たまたまひどく偏ってはいないか(既知の決まった値である発生確率に、サンプルの出現頻度がよく従っているか)」、というチェックをしたいので分割表を作った、という場合でしょう。これはまさに、No.5が仰るところの「適合度検定」(既知の確率と、サンプルの出現率とが整合しているか)の話です。

(B)「タテの合計とヨコの合計は、どっちも決まった値である」
たとえば「N人に対して、赤いアメダマA個をひとり高々1個、また青いアメダマB個をひとり高々1個、ばらまいた」という場合にはこうなりますね。両方貰った人、赤だけ貰った人、青だけ貰った人、両方貰ってない人、という分割表ができる。で、「赤いアメダマの配布と青いアメダマの配布は無関係」なのかどうかを検定する。

(C)「タテの合計は決まった値である」けれども「ヨコの合計については決まってない」(あるいはタテヨコが逆)。
実験的研究で一番よく出てくるのがこれだと思います。たとえば「窓にプチプチを貼り付けるかどうか」と「窓が結露したかどうか」の分割表を作った場合のように、タテヨコの一方が介入操作でもう一方がその結果、という分割表です。そして「プチプチを貼っても意味はない」という帰無仮説を検定する。
 このとき、プチプチの効果がもし絶大なら、「プチプチを貼ったけど結露した」のマス目の数値がとても小さくなる。ご質問はそういう状況の話じゃなかろうかと推察しましたので、No.6で説明している直接確率検定と計算統計学的手法はこの場合の話です。

(D) 「全体のサンプル数だけが決まっている」
たとえばたくさんの人にそれぞれ2つの質問:「サッカーは好きですか」と「たこやきは好きですか」を尋ねた。で、「サッカーの好き嫌いとたこやきの好き嫌いは無関係」という帰無仮説を検定する、という話です。(直接確率検定だと計算量が多いんで)4つのマス目にランダムにサンプルを割り振ったときに、偏りを反映する適当な統計量(χ²値には限らない)の分布を計算統計学的に調べれば良いですね。(ただし、(C)に比べて反復を増やさなくてはならんでしょう。)
    • good
    • 1

正確確率検定は周辺分布を固定しているので、それをOKとするかどうかでもどちらを選ぶかが変わってきます。



参考:Fisherの正確検定かカイ2乗検定か
https://okumuralab.org/~okumura/stat/fisher-chis …
    • good
    • 1

大昔の「ページがすっかり黄色くなったノート」が丸写しで伝承されているんじゃないかなあ。

検定理論は「古臭い道具だ」というんで、あまりマジメに反省されない風潮があるような気がします。

> Fischerの直接確率検定

[1]分割表に限らず(ちょっと大雑把に言えば)「そのデータは、意味もなくランダムに仕分けただけのものだ」という帰無仮説を立てるのがnon-parametric検定の最も基本的な考え方で、これに素直に従うのがFischerの直接確率検定(正確確率検定、並べ替え法)です。
 すなわち、組み合わせを全部作ってみるんです。そして、「実際のデータ以上に極端な組み合わせ」を数える。その相対度数がp値です。(ここで、ある組み合わせが「より極端」かどうかは、その組み合わせの「極端度」を何らかの統計量で測るわけですが、それがどんな統計量であれ、作ってみた組み合わせごとに計算すればいいだけ。)単純明快です。

 分割表 ("a"か"b"か)vs("0"か"1"か)の例で考えますと、"0"のものがN0個、"1"のものがN1個ある。そこで、「"0"か"1"かなんてのは、"a"とか"b"とか区別しないで、ランダムにN0個に"0"、残りに"1"を割り振っただけだ」という帰無仮説を立てるんです。で、統計量はたとえば「"a"で"0"であるサンプルの個数」とすれば良い。ですから、あらゆる割り振りかたを網羅的に調べてみて、その中で「"a"で"0"であるサンプルの個数」が実際のデータの「"a"で"0"」のマスメに書いてある個数以下である、という事例の頻度を調べる。

[2]しかし、これをその通りにやろうとすると、サンプル数が数十になっただけでもはや「全部の組み合わせ」の場合の数が膨大になって、網羅するのはスパコンでも不可能です。

[3] さて、こと分割表の場合に限っては、「極端度」としてχ²値を使うのなら、問題ごとに「全部の組み合わせ」をやってみるまでもなく、統計量の近似的な分布(すなわちχ²分布)を理論的に計算して用意しておける。サンプル数がある程度大きければ、近似の精度は十分に高い。これがχ²検定ですね。
 α=1%としたとき、検定をやって「p=0.0100かp=0.0099かで有意差アリかどうか、運命の別れ道」なんてことは (1)滅多に起こらない。(2)たまさか起こったとしても、それを「運命の別れ道」にしてしまうという解釈は誤りである。というふたつの理由で、サンプル数がよほど小さい場合以外はχ²検定でOKです。
 (なお、χ²分布を自前で作る場合でも、自由度がよほど大きいとき以外、巨大なガンマ関数なんか出てきません。)

[4]上記の2×2の分割表ですと、統計量として(χ²値を使わなくたって)「"a"で"0"であるサンプルの個数」を使って、直接確率検定がやれる。なぜなら、「全部の組み合わせ」をやってみるまでもなく、出現頻度の計算が二項係数を使ってイッパツでできるからです。帰無仮説によれば、「"a"で"0"であるサンプルの個数」がK個以下である「組み合わせ」の相対度数pは:
 二項係数(n個の中からm個を選ぶ場合の数)をComb(n,m)と書き、
 "a"の個数をNa, "b"の個数をNbとすれば
  f(k) = Com(Na, k)Com(Nb,N0-k)
を使って、近似なしで
  p = Σ[k=0~K]f(k)/Comb(Na+Nb,N0)
です。それぞれのkについて log(f[k]) なら簡単に計算できます。(log(n!) の表を用意しておくと便利です。)
 これを実際にやろうとするときの問題は Σ[k=0~K]f(k) の総和の計算。ただの足し算なんですが、f[k]がそれぞれ大きな値になりますんで、f[k]の値をじかに出すと、普通の浮動小数点表現ではすぐオーバーフローしてしまう。これは(もちろん特別製の浮動小数点表現を自分で用意する、という手もありますが、そうはせずに)足し算 X + Y (X≧Y>0)を
  log (X + Y) = (log X) + log(1 + e^( (log Y) - (log X) ))
とやれば大丈夫です。logを付けたままで計算するわけです。
 さて、K+1個の項を足し算する際に、丸め誤差が大きくなって正しく足し算できないおそれがある。ここにも工夫が必要でして、値が小さいもの同士から先に足し算していくんです。
 このようにすると、サンプル数が数千ぐらいならExcelだけでイケます。

[5] ところで、[1][2]の直接確率検定(正確確率検定)において、マジメに「全部の組み合わせ」を作るんじゃなしに、「全部の組み合わせの中から、ランダムに選ぶ」のをたくさん行うことで済ませる。たとえば10万回ぐらい繰り返す、というのが計算統計学の考え方です。これでやると、(「極端度」としてどんな統計量を使うのであれ)反復回数がNのとき、p値の相対誤差の分散は 1/N 以下になりますから、10万回ならp値が有効数字2桁ぐらいまで得られます。(ついでに統計量のヒストグラムも得られ、visualなグラフが描けて説得力がゲキ増しです。)

 上記の分割表の場合はことに簡単で、「「整数1〜(Na+Nb)からランダムにひとつ選ぶ。(すでに選んだことがあるやつなら、選び直し。)で、選んだ整数がNa以下である場合を数える。」ということをN0回やる」ということをN回やる。
 実のところ、大抵これしか使ってません。えーとχ²検定はこれでいいんだっけ、とか確認するのめんどくさいんで。

★ なお、「Pearsonの適合度検定」ってのは、「ある理論によって、各マスメの発生確率があらかじめ正確に分かっている」ということが、前提に含まれている。そしてこの理論に対してデータが適合するかどうかを問う。でもこれはご質問とは別の話でしょう。
    • good
    • 2

#4です。



ごめんなさい。#1#2は、いずれもピアソンが正確だとおっしゃっていますね。その点は整合取れていますね。

正確確率検定(直接確率検定)より、近似の方が正確なのは、なぜでしょうか。私が間違っているんでしょうか。

どこに書いてあったかでも教えて頂ければ、私も勉強になるんですが・・・。
    • good
    • 2

#3です。



統計ソフトによっては、直接factorial()関数でやっているかもしれませんが、エラーが生じるのは同じみたいです。

下はRでの結果ですが、だいたい170過ぎるとInfが返ってきます。
値がピッタリ一致しているから、factorial()関数も内部ではガンマ関数を使っているかもしれませんしね。

ところで、フィッシャーは計算機内部でこんな桁数になることを考えるとゾッとします。
だから、ポアソン近似(ピアソン)の方が安心して使えますね。
近似だから正確性は欠けるにしても、計算の安定性(信頼性=限界のところではやっていない)はありますね。(あれれ、#2さんとは逆のこと言ってるか? #2さんの論拠を知りたい。だいたい#1#2は正確さについて逆のこと言っていますよ。いったい、どっちが正確だって言っているんだい?)


階乗は170までは計算可能
> factorial(170)
[1] 7.257416e+306
> factorial(171)
[1] Inf

ガンマ関数は171までは計算可能
> gamma(171)
[1] 7.257416e+306
> gamma(172)
[1] Inf
    • good
    • 2

通常の計量値のカイ2乗検定は、各セル値をd=(xーμ)/σ で基準化し、すると0が原点になりますから、各セルの値が原点からどれだけ離れているかという指標を、ユークリッド距離 Σd^2 で計算しています。

平方根は取りません。
この2乗和がカイ2乗分布に従うことを利用して検定します。
原点からの離れ具合がカイ2乗分布の95%範囲内なら、普通に生起するよね、ということです。

ところが、これを計数値に適用しようとすると、一般的には二項分布を正規近似して計量値化するところですが、それが非常に面倒なので、カール・ピアソンは各セル値をポアソン分布で計量値に近似することを考えました。
ポアソン分布は、平均がλ、分散もλです。すると基準化は、d=(xーλ)/√λ、その2乗和は、Σ(xーλ)^2/λ となります。
これをピアソンの適合度検定と言います。

しかし、λ=npが小さい時はポアソン近似は合いません。ですから、λが小さい場合の対応として、R.A.フィッシャー(ピアソンとはライバル関係)が「正確確率検定」という方法を提案しました。
教科書の記述「使った方が良い」は間違いで、「使わないと結果が合わない」です。

さて、実務では、全て正確確率検定で行っても良いのですが、式中に階乗を含むため、大きな数値では(今の計算機では171以上)、計算が破綻します(オーバーフローします。階乗をガンマ関数で置き換えているので、gamma(172)でエラーになります)。

昔の手計算の時代は、早々に階乗計算が桁あふれして、計算が無理になったでしょう。
ですから、「使い分け」は手回し計算機や電卓計算の時代の名残りだと言えます。因習です。

170以下の数値であれば、全てフィッシャーの正確確率検定でやって問題はありません。結果はほぼ変わらないと思います(やったことがないです)。
    • good
    • 2

χ2検定とFisherの正確確率検定の使い分けにはいくつかの考慮すべき要素があります。

例えば、次のような場合があります。

サンプルの大きさ:データセットのサイズが大きい場合は、χ2検定が適用されますが、サイズが小さい場合はFisherの正確確率検定が推奨されます。

分割表のセル数:分割表に含まれているセル数が少ない場合はFisherの正確確率検定が適用されますが、セル数が多い場合はχ2検定が適用されます。

分割表のセル内のデータ:分割表に含まれているセル内のデータ数が少ない場合はFisherの正確確率検定が適用されますが、データ数が多い場合はχ2検定が適用されます。

研究目的:研究目的に応じて検定手法を選択することもできます。例えば、より高い正確性を求める場合はχ2検定が適用されますが、より信頼性が高い結果を求める場合はFisherの正確確率検定が適用されます。
    • good
    • 1

χ2検定とFisherの正確な適用範囲は、検定対象のデータが満たす条件によって異なります。

分割表に5以下の数字が含まれている場合は、χ2検定の結果の正確性が低くなる可能性があるため、Fisherの正確確率検定が推奨されることがあります。

一方、分割表に5以下の数字が含まれていない場合は、χ2検定の結果の正確性が高いため、このような場合はχ2検定を使用することが一般的です。ただし、これは決まりではなく、データの特性や研究目的に応じて、両方の検定手法を使い分けることもあります。
    • good
    • 2
この回答へのお礼

ご回答いただきありがとうございます。スモールデータを扱うことが多いので、Fischerの正確確率検定が適用されるケースが多く、何も考えず、すべてFischerで統一しています。「データの特性や研究目的に応じて、両方の検定手法を使い分けることもあります。」とありますが、具体的にどのような使い分けがあるのでしょうか?

お礼日時:2023/02/02 00:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!