カテゴリ3つ以上の割合の信頼区間

カテゴリ変数について割合の信頼区間を計算するには、通常、二項分布を仮定してClopper and Pearsonの方法を使う(『Rによる保健医療データ解析演習』の第9章、9.3に書いた通り)。しかし、カテゴリが3つ以上ある場合、各カテゴリの割合は独立ではない(もちろん2つの場合も片方のカテゴリの割合が決まれば、残りも自動的に決まってしまうわけだが、1つのカテゴリが生起する確率、と考えれば二項分布を普通に適用して差し支えない)ので、別のアプローチをした方が良いと思われた。

自分の本にも書かなかったけれども、カテゴリ3つ以上の場合の、各カテゴリの割合の信頼区間の推定についても、既に多くの研究があり、Rでも実装しているパッケージがある。DescToolsパッケージのMutinomCI()関数である(もっとも、DescToolsパッケージのvignettesの1つの13.1の解説にあるように、カテゴリ3つ以上でも二項分布を当てはめて信頼区間を求める、BinomCI()という関数も用意されているので、必ずしも各カテゴリについて二項分布で信頼区間を推定して悪いわけではないと思われる)。

MultinomCI()関数にはさまざまな信頼区間推定方法が実装されていて、古くからあり他のパッケージでも実装されているものもあるらしいGoodman (1965)の方法も、method="goodman"というオプションを指定すれば使えるが、デフォルトがSison and Glaz (1995)の方法(明示的にオプション指定するにはmethod="sisonglaz"だが、省略できる)なので、特別な理由がなければそれで計算するのが良いと思う。DescToolsパッケージを引用するには、Signorell A (2025). _DescTools: Tools for Descriptive Statistics_. doi:10.32614/CRAN.package.DescTools, R package version 0.99.60を文献として引用すれば良く、カテゴリ3つ以上の信頼区間の推定方法としては、Sison and Glaz (1995)の方法を使ったと書いて、Sison CP and Glaz J (1995) Simultaneous confidence intervals and sample size determination for multinomial proportions. Journal of the American Statistical Association, 90:366-369.を引用すれば良い。

使い方は簡単で、例えば、『Rによる保健医療データ解析演習』の9.5.1で、1日当たりの交通事故件数の分布がポアソン分布に従うかどうかをカイ二乗適合度検定で調べる方法を説明したデータを使えば、まず、install.packages("DescTools", dep=TRUE)でDescToolsパッケージをインストールしておいて、それをlibrary(DescTools)で呼び出したら、後はいきなりMultinomCI(c(79, 61, 13, 1, 1), method="sisonglaz", conf.level=0.95, sides="two.sided")と打てば良い。95%両側信頼区間をSison and Glaz (1995)の方法で求めるというデフォルトで良いならばこれらのオプション指定は不要なので、たんにMultinomCI(c(79, 61, 13, 1, 1))で良い。結果として返ってくるオブジェクトは、列名付きの行列なので、例えばresというオブジェクトに付値しておけば、sapply(as.data.frame(res), function(x) sprintf("%4.3f", x))によって、小数点以下3桁だけ表示させることもできる。

コメント

このブログの人気の投稿

CochranのQ検定の話

オッズ比よりもリスク比を推定すべきという話

対応のある多群間のノンパラメトリックな比較のためのFriedmanの検定後の対比較について