カイ二乗を使用して比率を比較できますか?


13

カイ二乗検定は、サンプルが期待値のセットと大きく異なるかどうかを確認するのに役立ちます。

たとえば、ここに人々のお気に入りの色に関する調査の結果の表があります(n = 15 + 13 + 10 + 17 = 55回答者):

red,blue,green,yellow

15,13,10,17

カイ二乗検定は、このサンプルが、各色を好む人々の等しい確率の帰無仮説と有意に異なるかどうかを教えてくれます。

質問:特定の色を好む回答者の合計の割合でテストを実行できますか?以下のように:

red,blue,green,yellow

0.273,0.236,0.182,0.309

もちろん、0.273 + 0.236 + 0.182 + 0.309 = 1です。

この場合、カイ二乗検定が適切でない場合、どのような検定になりますか?ありがとう!

編集:私は以下の@RomanLuštrikの答えを試して、次の出力を得ました、なぜp値が得られないのですか?なぜRは「カイ二乗近似が間違っている可能性がある」と言うのですか?

> chisq.test(c(0,0,0,8,6,2,0,0),p = c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0))

    Chi-squared test for given probabilities

data:  c(0, 0, 0, 8, 6, 2, 0, 0) 
X-squared = NaN, df = 7, p-value = NA

Warning message:
In chisq.test(c(0, 0, 0, 8, 6, 2, 0, 0), p = c(0.406197174, 0.088746395,  :
  Chi-squared approximation may be incorrect

1
2番目のケースでは、合計サンプルサイズを知っていると仮定していますか?か否か?
枢機

@cardinal:はい、サンプルの合計サイズはわかっています。
hpy

3
次に、比率に合計サンプルサイズを掛けて、カウントの表に変換し、chi-sqを適用します。最初の例に対応するメソッド。
アーロン

「適合度」テスト(カイ2乗を使用)について質問していると思われます。その使用は以下で説明されました。乾杯、タル
タルガリリ

回答:


7

私が間違っている場合は修正しますが、これはこのコマンドを使用してRで行うことができると思います

> chisq.test(c(15,13,10,17))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 1.9455, df = 3, p-value = 0.5838

これは、それぞれ1/4の比率を想定しています。argumentを使用して期待値を変更できますp。たとえば、人々は(何らかの理由で)他の色よりもある色を好むかもしれないと思います。

> chisq.test(c(15,13,10,17), p = c(0.5, 0.3, 0.1, 0.1))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 34.1515, df = 3, p-value = 1.841e-07

2
セル数が少ないため、これを見ているのではないかと思います(私が読んだ本の中には、セルあたり5分の最小値を推奨しているものもあります)。おそらく、このテーマについてより詳しい知識を持っている人が参加できますか?
ローマンルシュトリック

1
また、確率の最後をゼロより大きくすると、p値を取得できることに注意してください(ただし、警告は依然として残ります)。
ローマンルシュトリック

1
Ott&Longnecker(統計的手法とデータ分析入門、第5版)504ページに、近似を快適に使用するために、各セルが少なくとも5つあるべきであると記載されています。
ローマンルシュトリック

1
@penyuan:数え切れないほどの数があることを言及したはずです。ローマンは正しい。この場合、カイ二乗を使用しても、彼が言及した理由でうまくいかない。
ジョリスメイズ

1
@penyuan:いくつかのオプションを提供する回答を追加しました。
ジョリスメイズ

6

提供した追加情報を使用すると(値のかなりの部分が0であるため)、ソリューションが何も返さない理由は明らかです。1つは、確率が0であるためです。

  • Henryの解の e iは、少なくとも1つのiに対して0です。ei
  • 確率の解の n p iは、少なくとも1つのiに対して0です。npi

分割が不可能になります。今言っては、その結果を得ることが不可能であることを意味します。もしそうなら、データからそれを消去するだけでもいいでしょう(@cardinalのコメントを参照)非常にありそうもないことを意味する場合、最初の「解決策」は、非常に少ない数でその0チャンスを増やすことです。p=0

与えられた:

X <- c(0,0,0,8,6,2,0,0)
p <- c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0)

あなたができる:

> p2 <- p + 1e-6
> chisq.test(X,p2)

        Pearson's Chi-squared test

data:  X and p2 
X-squared = 24, df = 21, p-value = 0.2931

しかし、これは正しい結果ではありません。いずれにせよ、これらの境界線のケースではカイ二乗検定の使用を避ける必要があります。より良いアプローチは、ブートストラップアプローチを使用し、適合したテスト統計を計算し、サンプルからの統計をブートストラップによって取得された分布と比較することです。

Rコードでは、これは次のようになります(ステップバイステップ)。

# The function to calculate the adapted statistic.
# We add 0.5 to the expected value to avoid dividing by 0
Statistic <- function(o,e){
    e <- e+0.5
    sum(((o-e)^2)/e)
}

# Set up the bootstraps, based on the multinomial distribution
n <- 10000
bootstraps <- rmultinom(n,size=sum(X),p=p)

# calculate the expected values
expected <- p*sum(X)

# calculate the statistic for the sample and the bootstrap
ChisqSamp <- Statistic(X,expected)
ChisqDist <- apply(bootstraps,2,Statistic,expected)

# calculate the p-value
p.value <- sum(ChisqSamp < sort(ChisqDist))/n
p.value

これにより、p値0が得られますが、これは、観測値と期待値の差とはるかに一致しています。気を付けてください、この方法はデータが多項分布から引き出されることを前提としています。この仮定が成り立たない場合、p値も成り立ちません。


1
最初の声明を再考するかもしれませんが、それは正しいとは思いません。場合いくつかのためにと観測された数が(彼らはより良い)ゼロであり、これは単にサブモデルに帰着します。その効果は、自由度の数が、各iに対して1ずつ減少し、p i = 0になることです。例えば、ある(六面ダイの均一性について試験検討P iは = 1 / 6のためのI 6)。しかし、(不思議なことに)数字1 pi=0iipi=0pi=1/6i6表示されます。その後、カイ二乗検定はまだ有効です。最初の6つの値を合計するだけです。1,,10
枢機

@cardinal:データを説明したところです。期待値は0ですが、観測値はそうである必要はありません。それはOPが私たちに与えたものです(とはいえ、実際にはかなり非現実的な音だと思いましたが)。したがって、p値に少し追加して不可能ではなく非常にありそうにしないようにしますが、この場合でも、5未満のカウントを持つテーブルセルが大量にあるため、カイ二乗は無効です(コード)。私は回答に考慮事項を追加しました。ポインタのthxです。
ジョリスメイズ

はい、場合、そのセルのカウントを確認すると、とにかく手にもっと深刻な問題があります。:)pi=0
枢機

4

カイ2乗検定は、予想されるカウントが大きい限り良好であり、通常は10を超えても問題ありません。この下1E(xi)部分がテストを支配する傾向があります。正確な検定統計量は次のとおりです。

ψ=ixilog(xinpi)

ここで、はカテゴリiの観測カウントです。 I { 赤、青、緑、黄}あなたの例です。nはサンプルサイズで、例では55です。p iは、テストする仮説です。最も明白なのは、p i = p j(すべての確率が等しい)です。カイ二乗統計量を示すことができます:xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

fi=xin

ψ=nifilog(fipi)
χ2=ni(fipi)2pi

ψψpi1piψ

H1H2piψ1ψ2exp(ψ1ψ2)H2H1exp(12χ1212χ22)この尤度比の近似を与えます。

H2ψ2=χ22=0、ひいてはカイ二乗およびPSI統計から「どこまで」を教えてくれ両方単一の仮説の完全な適合は、観測されたデータに正確に適合するものからです。

χ22npi<10ψ


1
予想される周波数は10より大きくすることはできないと確信しています。:)
枢機

@cardinal-これがあなたの反対だったことをうれしく思います-それは私の答えの残りが良かったに違いないことを意味します:)。
確率論的

うわー、私はそれほどうるさい/不機嫌であるという評判を得ていないことを願っています。
枢機

1
ψ2ψχ2χ22ψ0χ22ψχ2
枢機

χ22ψ

3

はい、帰無仮説: "H0:prop(red)= prop(blue)= prop(green)= prop(yellow)= 1/4"を、調査の割合(0.273 、...)予想される比率(1 / 4、1 / 4、1 / 4、1 / 4)


確認するだけで、互いに等しくない予想される割合でも機能しますか?
hpy

4
完全なサンプルサイズを知らない限り、テストは意味がありません。1.0 / 0.0 / 0.0 / 0.0の割合は、サイズ100のサンプルではなくサイズ1のサンプルからのものである場合、非常に異なることを意味
アーロン

はい、サンプルの合計サイズは知っています。
hpy

2

ピアソンのカイ二乗検定の検定統計量は次のとおりです。

i=1n(OiEi)2Ei

と書くとoi=Oinei=Einn=i=1nOii=1nei=1

ni=1n(oiei)2ei

そのため、予想されるように、観察された割合の有意性の検定はサンプルサイズに依存します。

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