r-statistics-fanの日記

統計好き人間の覚書のようなもの

統計推理。どう計算したのだろう。比率の信頼区間

どう計算したのだろう。比率の信頼区間

日経メディカルで、コデインの小児への処方が制限されたと言う記事を見た。

PDMA(医薬品医療機器総合機構)が運営するMID-NETというデータベースを利用した解析結果が参考にされたらしい。

http://www.jpa-web.org/dcms_media/other/%E3%82%B3%E3%83%87%E3%82%A4%E3%83%B3%20%E8%A8%98%E8%80%85%E6%87%87%E8%B3%87%E6%96%99.pdf
このpdfが元資料と思われた。

MID-NET(2009年~2015年)

対象期間中に協力医療機関を受診(976,859人)

コデイン含有製剤が処方された患者(癌の診断をもつ患者を除く)(7,267人)

12歳未満209人
12-18才未満199人
19才以上6859人

f:id:r-statistics-fan:20170814154353j:plain

コホート全体:ケース24人 対象者7267人 発生割合0.3% 95%CI:0.2-0.4

12-18才:ケース0人 対象者数199人 発生割合0 95%CI:0.0-0.0

この95%CIが気になった。どうみても2項分布ではない。どんな手法なのだろう。
手法がわかれば、個人情報保護の観点から隠されている他のグループの発生割合が分かるのではないか。
そもそも、これ個人情報なのか?????普通に公開すれば良いんじゃない?

Rで解析してみる。

binom.confint(24, 7267, conf.level = 0.95)
inom.confint(0, 199, conf.level = 0.95)

> binom.confint(24, 7267, conf.level = 0.95)
          method  x    n        mean       lower       upper
1  agresti-coull 24 7267 0.003302601 0.002195053 0.004934996
2     asymptotic 24 7267 0.003302601 0.001983493 0.004621708
3         bayes* 24 7267 0.003370941 0.002094457 0.004725895
4        cloglog 24 7267 0.003302601 0.002183660 0.004857300
5          exact 24 7267 0.003302601 0.002117150 0.004910048
6          logit 24 7267 0.003302601 0.002214581 0.004922527
7         probit 24 7267 0.003302601 0.002197326 0.004884659
8        profile 24 7267 0.003302601 0.002152623 0.004802072
9            lrt 24 7267 0.003302601 0.002162413 0.004827145
10     prop.test 24 7267 0.003302601 0.002165131 0.004991762
11        wilson 24 7267 0.003302601 0.002220409 0.004909641

0.2-0.4%になるものは無い!!!!!

> binom.confint(0, 199, conf.level = 0.95)
          method x   n   mean        lower       upper
1  agresti-coull 0 199 0.0000 -0.003858684 0.022796917
2     asymptotic 0 199 0.0000  0.000000000 0.000000000
3          bayes 0 199 0.0025  0.000000000 0.009593465
4        cloglog 0 199 0.0000  0.000000000 0.018366328
5          exact 0 199 0.0000  0.000000000 0.018366328
6          logit 0 199 0.0000  0.000000000 0.018366328
7         probit 0 199 0.0000  0.000000000 0.018366328
8        profile 0 199 0.0000  0.000000000 0.016761237
9            lrt 0 199 0.0000  0.000000000 0.009621873
10     prop.test 0 199 0.0000  0.000000000 0.023605824
11        wilson 0 199 0.0000  0.000000000 0.018938233

0.0-0.0%になるものは、asymptoticしかない。

その他、連続数として平均値でやったのかとか色々試みたが、すべて一致しない。

一体どんな手法を使ったのだろう。教えてエライ人。

一つの推理として
信頼区間の上限が0になるので、asymptotiを使用したと仮定。
90%CIと間違えた可能性(qnorm(0.975)をqnorm(0.95)にした)を考えると、

method x n mean lower upper
1 asymptotic 24 7267 0.003302601 0.002195571 0.004409631

これは、0.2-0.4%と記載できる。
これで、24人のケースを総当りする

result <- matrix(0, nrow = 23, ncol = 10)
colnames(result) <- c("x", "n", "mean", "lower", "upper", "x", "n", "mean", "lower", 
                      "upper")
for(i in 1:23){
      result[i, ] <- unlist(c(binom.confint(i, 209, methods = "asymptotic", conf.level = 0.90)[2:6],
                              binom.confint(24-i, 6859, methods = "asymptotic", conf.level = 0.90)[2:6]))
      
}
       x   n        mean         lower      upper  x    n         mean         lower        upper
 [1,]  1 209 0.004784689 -0.0030665735 0.01263595 23 6859 0.0033532585  2.205102e-03 0.0045014148
 [2,]  2 209 0.009569378 -0.0015072609 0.02064602 22 6859 0.0032074646  2.084464e-03 0.0043304657
 [3,]  3 209 0.014354067  0.0008208182 0.02788732 21 6859 0.0030616708  1.964409e-03 0.0041589326
 [4,]  4 209 0.019138756  0.0035498817 0.03472763 20 6859 0.0029158769  1.844981e-03 0.0039867731
 [5,]  5 209 0.023923445  0.0065371152 0.04130977 19 6859 0.0027700831  1.726226e-03 0.0038139399
 [6,]  6 209 0.028708134  0.0097091021 0.04770717 18 6859 0.0026242893  1.608199e-03 0.0036403791
 [7,]  7 209 0.033492823  0.0130221306 0.05396352 17 6859 0.0024784954  1.490961e-03 0.0034660294
 [8,]  8 209 0.038277512  0.0164476570 0.06010737 16 6859 0.0023327016  1.374583e-03 0.0032908203
 [9,]  9 209 0.043062201  0.0199658122 0.06615859 15 6859 0.0021869077  1.259145e-03 0.0031146699
[10,] 10 209 0.047846890  0.0235620992 0.07213168 14 6859 0.0020411139  1.144745e-03 0.0029374828
[11,] 11 209 0.052631579  0.0272255514 0.07803761 13 6859 0.0018953200  1.031494e-03 0.0027591458
[12,] 12 209 0.057416268  0.0309476318 0.08388490 12 6859 0.0017495262  9.195286e-04 0.0025795238
[13,] 13 209 0.062200957  0.0347215384 0.08968038 11 6859 0.0016037323  8.090121e-04 0.0023984526
[14,] 14 209 0.066985646  0.0385417454 0.09542955 10 6859 0.0014579385  7.001471e-04 0.0022157298
[15,] 15 209 0.071770335  0.0424036907 0.10113698  9 6859 0.0013121446  5.931882e-04 0.0020311011
[16,] 16 209 0.076555024  0.0463035546 0.10680649  8 6859 0.0011663508  4.884626e-04 0.0018442389
[17,] 17 209 0.081339713  0.0502381007 0.11244133  7 6859 0.0010205569  3.864044e-04 0.0016547095
[18,] 18 209 0.086124402  0.0542045576 0.11804425  6 6859 0.0008747631  2.876091e-04 0.0014619171
[19,] 19 209 0.090909091  0.0582005306 0.12361765  5 6859 0.0007289692  1.929343e-04 0.0012650042
[20,] 20 209 0.095693780  0.0622239329 0.12916363  4 6859 0.0005831754  1.036962e-04 0.0010626546
[21,] 21 209 0.100478469  0.0662729329 0.13468400  3 6859 0.0004373815  2.211008e-05 0.0008526530
[22,] 22 209 0.105263158  0.0703459128 0.14018040  2 6859 0.0002915877 -4.750476e-05 0.0006306801
[23,] 23 209 0.110047847  0.0744414345 0.14565426  1 6859 0.0001457938 -9.399821e-05 0.0003855859

12歳未満が0.0-1.0%になるのは、無いが、とても近い0.0-1.3%。エクセルとかで有効桁数字の表示に失敗して1%になったものを1.0%と書いたと考えると、その時19才以上は0.2-0.5%で一致する。

ということで、小児12歳未満は1/209、19才以上は23/6859と推理するがどうでしょう。
もしそうなら、小児は1例だけって、酷すぎるデータだと思うんだけど。

また、1例なら、個人情報保護とか言うのも何となくしっくりくる。
そもそも、10例未満だから個人情報考えて非公開と書いているくせに、10/6859=0.145%なので、95%CIが0.2-0.5%
には絶対にならないんですが。
まあ引き算で特定出来るからでしょうけど、素直に読むとどちらも10例未満かと思っちゃうよね。

ちなみに90%じゃなくて、95%CIだと

      [,1] [,2]        [,3]          [,4]       [,5] [,6] [,7]         [,8]          [,9]        [,10]
 [1,]    1  209 0.004784689 -0.0045706672 0.01414005   23 6859 0.0033532585  1.985146e-03 0.0047213711
 [2,]    2  209 0.009569378 -0.0036292513 0.02276801   22 6859 0.0032074646  1.869326e-03 0.0045456030
 [3,]    3  209 0.014354067 -0.0017717935 0.03047993   21 6859 0.0030616708  1.754203e-03 0.0043691388
 [4,]    4  209 0.019138756  0.0005634666 0.03771405   20 6859 0.0029158769  1.639825e-03 0.0041919284
 [5,]    5  209 0.023923445  0.0032063552 0.04464053   19 6859 0.0027700831  1.526251e-03 0.0040139151
 [6,]    6  209 0.028708134  0.0060693911 0.05134688   18 6859 0.0026242893  1.413544e-03 0.0038350350
 [7,]    7  209 0.033492823  0.0091004885 0.05788516   17 6859 0.0024784954  1.301776e-03 0.0036552147
 [8,]    8  209 0.038277512  0.0122656354 0.06428939   16 6859 0.0023327016  1.191033e-03 0.0034743704
 [9,]    9  209 0.043062201  0.0155411563 0.07058325   15 6859 0.0021869077  1.081411e-03 0.0032924046
[10,]   10  209 0.047846890  0.0189097770 0.07678400   14 6859 0.0020411139  9.730244e-04 0.0031092033
[11,]   11  209 0.052631579  0.0223584299 0.08290473   13 6859 0.0018953200  8.660081e-04 0.0029246320
[12,]   12  209 0.057416268  0.0258769427 0.08895559   12 6859 0.0017495262  7.605230e-04 0.0027385293
[13,]   13  209 0.062200957  0.0294572101 0.09494470   11 6859 0.0016037323  6.567648e-04 0.0025506999
[14,]   14  209 0.066985646  0.0330926480 0.10087864   10 6859 0.0014579385  5.549744e-04 0.0023609025
[15,]   15  209 0.071770335  0.0367778200 0.10676285    9 6859 0.0013121446  4.554552e-04 0.0021688341
[16,]   16  209 0.076555024  0.0405081749 0.11260187    8 6859 0.0011663508  3.585973e-04 0.0019741043
[17,]   17  209 0.081339713  0.0442798561 0.11839957    7 6859 0.0010205569  2.649176e-04 0.0017761963
[18,]   18  209 0.086124402  0.0480895615 0.12415924    6 6859 0.0008747631  1.751259e-04 0.0015744003
[19,]   19  209 0.090909091  0.0519344374 0.12988374    5 6859 0.0007289692  9.024420e-05 0.0013676943
[20,]   20  209 0.095693780  0.0558119973 0.13557556    4 6859 0.0005831754  1.184068e-05 0.0011545101
[21,]   21  209 0.100478469  0.0597200589 0.14123688    3 6859 0.0004373815 -5.744492e-05 0.0009322080
[22,]   22  209 0.105263158  0.0636566941 0.14686962    2 6859 0.0002915877 -1.124659e-04 0.0006956413
[23,]   23  209 0.110047847  0.0676201896 0.15247550    1 6859 0.0001457938 -1.399360e-04 0.0004315237

やはり12歳未満のケースが1例なのが一番近い。

もし1例だけのデータだけで制限となるともやっとするなあ。元の1例が別の病気だったらアウト。
でもまあ、子供にコデインなんか処方しないでよろし。

エライ人のもっとしっくりくる推理希望~。何か他の手法が有るのだろうか。

当初は元データを再現してデータ伏せても意味ないじゃ~んとなるはずが、しっくりこない記事になってしまった。