Rの警告-カイ2乗近似が正しくない可能性があります


40

消防士入学試験の結果を示すデータがあります。私は、試験結果と民族性が相互に独立していないという仮説を検証しています。これをテストするために、RでPearsonのカイ2乗検定を実行しました。結果は期待したことを示していますが、「」という警告が表示されましたIn chisq.test(a) : Chi-squared approximation may be incorrect

> a
       white black asian hispanic
pass       5     2     2        0
noShow     0     1     0        0
fail       0     2     3        4
> chisq.test(a)

    Pearson's Chi-squared test

data:  a
X-squared = 12.6667, df = 6, p-value = 0.04865

Warning message:
In chisq.test(a) : Chi-squared approximation may be incorrect

なぜ警告が出されたのか誰にもわかりますか?間違った方法を使用しているためですか?


2
非常に少ない測定値で結果を信頼しないでください。各列に何百人もの人がいる場合、結果にある程度の自信があるかもしれません。それでも、結果は人種そのものよりも近所や富のせいかもしれません。
ロドリゴ

回答:


41

予想される値の多くは非常に小さいため、pの近似が正しくない可能性があるため、警告が出されました。

ではR、あなたは使用することができますchisq.test(a, simulate.p.value = TRUE)シミュレートp値を使用します。

ただし、このような小さなセルサイズでは、すべての推定値が低くなります。カイ2乗回帰またはロジスティック回帰のいずれかで、パスとフェイル(「ノーショー」を削除)をテストするだけでよい場合があります。確かに、合格/不合格の等級が従属変数であることはかなり明らかなので、ロジスティック回帰はより良いかもしれません。


simulate.p.value = TRUEに追加されたときに実際に何をしchisq.testますか?
-Al14

1
シミュレーションを使用してp値を見つけます
Peter Flom-Reinstate Monica

1
marginals条件付きのsimulate.p.value = TRUEシミュレーションを使用していることに注意してください。これは実際にフィッシャーの正確検定のバージョンです。
kjetil b halvorsen

23

問題は、検定統計量の分布に対するカイ2乗近似が、おおよそ正規分布しているカウントに依存していることです。予想されるカウントの多くが非常に小さい場合、近似が不十分になる可能性があります。

分割表の独立性のカイ2乗統計量の実際の分布は、連続的ではなく離散的であることに注意してください。

noshowカテゴリは、この問題の大きな原因になります。考慮すべきことの1つは、noshowとfailをマージすることです。それでも警告は表示されますが、結果にはほとんど影響を与えず、分布は非常に合理的です(警告が与えられる前に適用されているルールは厳しすぎます)。

しかし、いずれにせよ、(フィッシャーの正確なテストを実行するときのように)マージンに条件を設けたい場合、Rで非常に簡単に問題対処できます。simulate.p.value引数をTRUE;に設定します。その場合、検定統計量の分布のカイ二乗近似に依存しません。


「..検定統計量の分布のカイ二乗近似が、おおよそ正規分布しているカウントに依存している」理由を教えてください。たとえば、2x2の分割表がある場合、これがどのように当てはまるかわかりません。カウントを(ほぼ)正規分布させるにはどうすればよいですか?白人、黒人、ヒスパニックおよびアジア人の数をどのように正規分布させることができますか?わずかに等しいという意味ですか?そして、これはこの質問にどのように関係していますか?:stats.stackexchange.com/questions/141407/...
Erosennin

カウントランダム変数の多変量分布は、ほぼ正規である必要があります(ただし、縮退します)。観測されたカウントのセットは、この多変量正規分布からの単一のベクトル観測です。1つの観測から分布を判断することはできません。私が話している評価を行うには、仮定に頼る必要があります。個々のセル(つまり、nullの下の特定のセルの周辺分布)に対してそれを行うのはかなり簡単です。セル間でカウントを結合しているように見えますが、それらはすべて異なる分布からのものであるため、意味がありません
-Glen_b

まずはお時間をいただきありがとうございます!したがって、多くの観測値を見た場合、分割表の「下向き」のカウントは(退化的に)多変量正規である必要があると言っていますか?これは、個々のセルのカウントも同様に正常であることを意味するものではなく、分割表を「横向き」にカウントすることを意味しますか?F.ex期待値5のセルは、5の周りに正規分布すべきでしょうか?セル全体の値が40である場合、このセルは40前後に正規分布し、平均5と40の多変量正規分布である必要がありますか?
エロセニン

1
r×crc(r1)(c1)
Glen_b

これは重く、非常に興味深いものです。時間があれば、最初の質問をstats.stackexchange.com/questions/142429/…に再投稿しました
エロセニン

12

このような小さなカウントの場合、フィッシャーの正確検定を使用できます。

> fisher.test(a)

        Fisher's Exact Test for Count Data

data:  a 
p-value = 0.02618
alternative hypothesis: two.sided 

3

ピアソンのカイ二乗検定の記事の「仮定」セクションを参照してください。

簡単に言うと、テーブル内のいずれかのセルのカウントが5未満の場合、仮定の1つが破られます。私はそれがエラーメッセージが言及していることだと思います。リンクされている記事では、適用可能な修正についても確認できます。


6
χ2

0

あなたの主な質問はサンプルサイズについてですが、3つ以上のグループが比較されているようです。テストのp値が0.05以下の場合、結果を解釈することは困難です。したがって、このような状況で使用する簡単なスクリプトを共有しています。

# Load the required packages:
library(MASS) # for chisq
library(descr) # for crosstable

CrossTable(a$exam_result, a$ethnicity
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
       sresid = T, format = 'SPSS')

このコードは、ピアソンのカイ二乗とフィッシャーのカイ二乗の両方を生成します。各テーブルエントリの割合と割合を生成します。標準化された残差またはZ値スコアに基づいて、すなわち

sresid

範囲外の場合| 1.96 | すなわち、-1.96未満または1.96を超える場合、有意なp <0.05です。記号は、正に関連するか負に関連するかを示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.