2つの母集団で同じカテゴリ変数をテストするにはどうすればよいですか?


8

次のようなデータがあります。

ID         Status
01         A
02         G
03         E
...        ...
100        G

あなたはアイデアを理解していると思います。2つの異なる母集団(コホート)からのこのデータがあり、ある母集団の状態変数の分布を別の母集団の分布と比較したいと思います。私が回答している質問は次のようなものです。あなたがこれ以上知らなければ、これらは同じ母集団からのものである可能性がありますか?確かではありませんが、これは人のカイ二乗を実行する必要があることを意味します。また、テストを実行できるように変数を変換する方法もわかりません。(私は特にこれをRで行う方法を知りたいです。)

回答:


10

(a)最初に、力学ではなく根底にある考えを説明しましょう。それらは、振り返ってみるとより明白になります。次に、(b)カイ2乗について(そしてそれが適切かどうか-それは適切ではない可能性があります)について説明し、次に(c)Rでそれを行う方法について説明します。

(a)nullの下では、母集団は同じです。2つのコホートを1つの大きなデータセットに入れて、コホートラベルを保持する列を追加するとします。次に、nullの下では、コホートラベルは事実上、ランダムなラベルであり、観測から得られた分布についてこれ以上何も伝えません。

もちろん、代替案では、コホートラベルが重要です。2つのラベルの下の分布が異なるため、コホートラベルを知っていることは、知らないことよりも多くのことを教えてくれます。

(これは、サンプルで計算された統計-代替に敏感な統計-がランダムに行に再割り当てされたコホートラベルを使用した同じ統計の分布と比較される、ある種の置換テスト/ランダム化テストをすぐに提案します。可能な再割り当ては順列検定ですが、それらをサンプリングするだけの場合はランダム化検定です。)

(b)では、カイ二乗を行う方法を教えてください。

nullの下で期待値を計算します。コホートラベルはnullでは重要ではないため、全体的な分布に基づいて各セルの予想数を計算します。

                       Status
                 A   B   ...  E   ...  G ...      Total
  Cohort 1:     10  15       18                    84
  Cohort 2:      9   7       25                    78

  Total:        19  22   ... 43 ...               162

j×

したがって、通常の独立性のカイ2乗検定を取得するだけです。

しかしながら!

ステータスラベルが順序付けられたカテゴリを形成している場合、このカイ2乗検定は多くの情報を破棄します-興味深い代替(低いまたは高いカテゴリへのわずかなシフトなど)に対して低い力になります。そのような状況では、より適切なものを実行する必要があります。つまり、その順序を考慮に入れます。多くのオプションがあります。

-

(c)次に、Rでそれを行う方法について説明します。これは、データが現在Rでどのように設定されているかに依存します。データのサブセットのような再現可能な例があると、本当に役立ちます。

2つの列があるデータフレームにあると想定します。1つはステータス(因子)で、もう1つはコホート(第2因子)です。

そのようです:

  status  cohort
1      B Cohort1
2      B Cohort1
3      D Cohort1
4      B Cohort1
5      C Cohort1
6      D Cohort1
. 
.
. 
25      G Cohort2
26      E Cohort2
27      E Cohort2
28      D Cohort2
29      C Cohort2
30      G Cohort2

次に、それがデータフレームと呼ばれるstatusresults場合は、前に行ったようなテーブルを取得します。

> with(statusresults,table(cohort,status))
         status
cohort    A B C D E F G
  Cohort1 2 6 7 3 0 0 0
  Cohort2 0 0 2 2 4 1 3

カイ二乗検定の場合は、次のようにします。

> with(statusresults, chisq.test(status, cohort))

    Pearson's Chi-squared test

data:  status and cohort 
X-squared = 18.5185, df = 6, p-value = 0.005059

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

(警告は、非常に小さなサンプルを使用した場合、一部のセルで予想されるカウントが低いためです)

ステータスのカテゴリを注文した場合は、そうする必要があります。これにより、単純なカイ二乗以外の分析の可能性について説明できます。


chi-2の例をありがとう!セル数が実際の例のように実際に低い場合、何を推奨しますか?つまり、カイ二乗検定の前提条件に違反していますか?
マークヘックマン2013年

@MarkHeckmannそのような「前提条件」は本当にありません。カイ2乗分布は常にカイ2乗の真のヌル分布の近似であり、許容できる近似はどの程度粗いか(例えば、分布)。多くの論文が議論しているように、最も一般的な経験則は厳しすぎる。しかし、予想される数値が小さすぎる場合は、カイ2乗検定のnull分布からのシミュレーションを使用するか、適切な統計を選択して(a)で説明した置換アプローチを使用します。
Glen_b-2013

1

あなたはカイ二乗検定を行うという考えに関して正しいです。だからここにあります:

#Create two data sets (id, outcome and group label)
Dat1 <- as.data.frame(cbind(1:999,sample(c("A","G","E"),999,replace=T,prob=c(.2,.4,.4)),"group1"))
Dat2 <- as.data.frame(cbind(1:500,sample(c("A","G","E"),500,replace=T,prob=c(.4,.2,.4)),"group2"))

#Combine data sets
Dat  <- rbind(Dat1,Dat2)

#Receive descriptive statistics and compute Chi-Square
attach(Dat)
table(V3,V2)
chisq.test(table(V3,V2))
detach(Dat)

それが正しければ、カイ2乗は有意になるため、2つのグループの分布間に有意差があります。最初に参照するには、http//en.wikipedia.org/wiki/Pearson%27s_chi-squared_test http://www.statmethods.net/stats/frequencies.htmlを参照して ください


0

あなたはこの論文[1]に興味があるかもしれません。要約からの抜粋:
2標本検定(別名均質性検定)の目的は、2組の標本が与えられたときに、標本の背後にある確率分布が同じかどうかを判断することです。この論文では、最小二乗密度比推定量に基づく2標本検定の新しいノンパラメトリック手法を提案します。さまざまな実験を通じて、提案された方法は、最新の方法よりも全体的に小さいタイプIIエラー(つまり、2つの分布が実際に異なる場合に同じであると判断する確率)がわずかに発生することを示しています。より大きなタイプIエラー(つまり、2つの分布が実際に同じである場合に、それらが異なると判断する確率)。

著者らは、同じ[2]のMATLABコードも提供しています。

[1] http://www.ms.ku-tokyo.ac.jp/2011/LSTT.pdf
[2] http://www.ms.ku-tokyo.ac.jp/software.html#uLSIF

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