20/04/29 19:40:54.19 uFfpYtab.net
通常の医療でも臨床診断の5%は誤診だと推定されていたりする。
これを実際の数として見積もると膨大になる。
455:132人目の素数さん
20/04/29 20:37:12 YhsQxAnp.net
>>429
採取手技や採取時期で変動すると思う。
コンタミによる偽陽性もあるだろうし。
456:132人目の素数さん
20/04/29 20:38:43 YhsQxAnp.net
>>428
言っていることは同じ。
全部の条件を満たす組み合わせは存在しない。
457:132人目の素数さん
20/04/29 20:39:49 YhsQxAnp.net
>>427
このデータは再現性がないことがわかったので撤回します。
458:132人目の素数さん
20/04/30 10:01:57 42TM9o6B.net
ふぉー
<新型コロナ>抗体検査5.9%陽性 市中感染の可能性 都内の希望者200人調査
URLリンク(www.tokyo-np.co.jp)
459:132人目の素数さん
20/04/30 12:13:53 qOF+URFa.net
>>434
"検査結果では、一般市民の百四十七人の4・8%にあたる七人が陽性、
医療従事者五十五人のうち9・1%の五人が陽性だった。
URLリンク(www.tokyo-np.co.jp)
"
> r1=5;r2=7;n1=55;n2=147
> prop.test(c(r1,r2),c(n1,n2))
2-sample test for equality of proportions with continuity
correc
460:tion data: c(r1, r2) out of c(n1, n2) X-squared = 0.679, df = 1, p-value = 0.41 alternative hypothesis: two.sided 95 percent confidence interval: -0.052613 0.139194 sample estimates: prop 1 prop 2 0.090909 0.047619 Warning message: In prop.test(c(r1, r2), c(n1, n2)) : Chi-squared approximation may be incorrect > poisson.test(c(r1,r2),c(n1,n2)) Comparison of Poisson rates data: c(r1, r2) time base: c(n1, n2) count1 = 5, expected count1 = 3.27, p-value = 0.33 alternative hypothesis: true rate ratio is not equal to 1 95 percent confidence interval: 0.47778 6.98763 sample estimates: rate ratio 1.9091
461:132人目の素数さん
20/04/30 19:13:48 42TM9o6B.net
>>434
これの興味深いところは、陽性率の高さもさることながら、医療関係者の感染率が一般市民のそれよりも
(多分有意に)高いことだと思う。抗体検査の精度ってほとんどデータが無いに等しいけど、医療関係者の
感染者率が平均よりも多いのならば(実際そうなのだと思う)、このテストはそれを反映したものと言えて、
抗体検査の信頼性をある程度証明できるかもしれない。
そして、市中の陽性率の高さも。
この辺、ベイズで上手く検証できないかな。
462:132人目の素数さん
20/04/30 20:32:35.24 qOF+URFa.net
>>436
>医療関係者の感染率が一般市民のそれよりも(多分有意に)高い
χ二乗検定では、p-value = 0.41 で 標本数が少ないから有意差がでない。
エントリーが5以下のときには信頼するなと習ったな。
まあ、ポアソンでもp-value = 0.33
>435にRの出力を貼っておいた。
463:132人目の素数さん
20/04/30 20:35:20.83 rbz2947p.net
>>436
55人中5人と147人中7人じゃ、有意差ないだろ。
と書こうと思ったら、 >>437氏に先を越されたwww
464:132人目の素数さん
20/04/30 20:41:39 rbz2947p.net
抗体検査キットの評価をしたら特異度はみな5/5だったらしいけど、サンプルが
5つだけって意味だとすると、せいぜい90%以上くらいのことしか言えないな。
特異度95%だとしたら、5%が陽性っていわれてもねぇw
465:132人目の素数さん
20/04/30 21:20:01 qOF+URFa.net
>>436
事前分布にかなり影響をうけるが、
感度特異度とも50-70%(最頻値60%標準偏差10%のβ分布),
有病率は一様分布、
検査陽性数は陽性確率が 有病率*感度+(1-有病率)*(1-特異度)の二項分布に従う
というモデルでプログラムを組むと
model
{
for(i in 1:N) {
x[i] ~ dbin(p,n[i])
}
p = prev*sen + (1-prev)*(1-spc)
PPV=sen*prev/(sen*prev+(1-prev)*(1-spc))
NPV=(1-prev)*spc/((1-prev)*spc+prev*(1-sen))
precision=(prev*sen+(1-prev)*spc)/
((prev*sen+(1-prev)*spc + (1-prev)*(1-spc)+(prev*(1-sen))))
pLR=sen/(1-spc)
nLR=(1-sen)/spc
DOR=pLR/nLR
sen ~ dbeta(sn[1],sn[2])
spc ~ dbeta(sp[1],sp[2])
prev ~ dbeta(shape1,shape2)
}
結果は、
URLリンク(i.imgur.com)
有病率の期待値は2.3%、最頻値は0.31% 少数データなので信頼区間が広い。
有病率が平均値50%の一様分布というのは現実離れした分布だとは思う。
466:132人目の素数さん
20/04/30 21:22:46 qOF+URFa.net
>>439
すべてが陰性に出るイカサマキットなら特異度が100%
>18参照
467:132人目の素数さん
20/04/30 21:33:35 qOF+URFa.net
>55人中5人と147人中7人じゃ、有意差ないだろ。
その比率のまま、約4倍(3.87倍)になればχ二乗検定で有意差がでるね。
r1=5;r2=7;n1=55;n2=147
mat=matrix(c(r1,r2,n1,n2),2,b=T)
fn <- function(x) chisq.test(mat*x)$p.value
fn=Vectorize(fn)
uniroot(function(x) fn(x)-0.05,c(1,10))$root
fn(4)
> fn(4)
[1] 0.045678
468:132人目の素数さん
20/04/30 21:47:02.48 qOF+URFa.net
>>440(追記)
>有病率が平均値50%の一様分布というのは現実離れした分布だとは思う。
オーストリアのデータ0.3%を参考に有病率の事前分布が0.2-0.4%
β(10.865, 3279.34)に相当として、MCMCしてみた。
感度と特異度の事前分布は前回と同じ。
URLリンク(i.imgur.com)
さほど、有病率が高いという結論は引き出せないな。
469:132人目の素数さん
20/04/30 22:23:36 gdjT5b3G.net
自己流な検定
A群55人中5人とB群147人中7人に有意差はあるか?
モンテカルロ法で検証
A群もB群も同じ陽性率で、0.0594と仮定する
∵ 陽性率は、 12/(55+147) = 12/202 = 0.0594
モンテカルロ法100万回したら
B群の陽性者が7名となったのは、125238回
その内 A群の陽性が5名以上は、28293回
∴ P(55人中5人以上|147人中7人) = 28293/125238 = 0.226
∴ 有意差なし
EXCEL VBAソースコード概略
Dim I As Long
Dim J As Long
Dim K As Long
K = 1
For I = 1 To 1000000
A = 0
For J = 1 To 55
If Rnd(1) < 0.0594 Then '陽性
A = A + 1
End If
Next
B = 0
For J = 1 To 147
If Rnd(1) < 0.0594 Then '陽性
B = B + 1
End If
Next
If B = 7 Then 'B群の陽性者が7名の場合
Cells(K, "A") = A 'A群の陽性者の人数
K = K + 1
End If
B = 0
Next
470:132人目の素数さん
20/04/30 23:17:24 qOF+URFa.net
β分布と乱数発生で比較。
一般人と医療従事者の確率分布に従う乱数を1000万個発生させて比率の分布をグラフにすると
95%信頼区間が1を挟むから有意差なし。比率が1以上となる確率も87.5%で95%を越えないから有意差なし。
URLリンク(i.imgur.com)
a=0.5 ; b=0.5
r1=5 ; r2=7 ; n1=55 ; n2=147
layout(1)
layout(matrix(1:2,2))
curve(dbeta(x,a+r2,b+n2-r2),0,0.3,bty='l',ann=F,lwd=2)
curve(dbeta(x,a+r1,b+n1-r1),col=2,add=T,lwd=2)
legend('center',bty='n',legend=c('general','medical'),lwd=2,col=1:2)
k=1e7
general=rbeta(k,a+r2,b+n2-r2)
medical=rbeta(k,a+r1,b+n1-r1)
BEST::plotPost(medical/general,compVal = 1)
471:132人目の素数さん
20/05/01 00:36:14 LcUyF6Tc.net
>>441
すべてが陰性に出るなら陽性は0人だろw
472:132人目の素数さん
20/05/01 07:22:53 LJVZP1pw.net
>>446
偽陽性率0%だから特異度は100%
473:132人目の素数さん
20/05/01 10:05:01 LcUyF6Tc.net
>>447
だから、陽性が何人か出てんだから感度0%のインチキじゃなかろうってこと。
474:132人目の素数さん
20/05/04 00:17:48 Q8iLGwO2.net
最近の報道
インドは、中国企業から購入した中共ウイルス(新型コロナウイルス)の迅速スクリーニング検査キットの精度がわずか5%だとして、約50万個の注文をキャンセルした。
....
神戸市中央区にある市立医療センター中央市民病院の医師などのグループは、ことし3月末から先月7日にかけて、新型コロナウイルス以外の理由で外来を受診した患者から無作為に1000人を選び、血液中に新型コロナウイルスに感染したあとにできる「抗体」があるか調べました。
グループによりますとその結果、3.3%にあたる33人から抗体が検出されたということです。
以上を知ったある会社が
必ず陽性がでる試薬33個と必ず陰性がでる試薬967個を混ぜた1000試薬をセットにしてインドに売り込んだ。
問題
1試薬は1回しか検査できないとして
これがイカサマキット�
475:ナあることを証明する手段はあるか?
476:132人目の素数さん
20/05/04 15:22:29 jDRWX2Ph.net
3月の宿題で(1)のみ正解の数弱@shukudai_sujaku
昨年度の大学への数学(大数)での勝率は、
学コンBコースが 1/1 = 100% ,
宿題が 3/10 = 30% でした!
宿題の勝率が低すぎると思うので、
これからは一層精進していきたいです!
URLリンク(twitter.com)
(deleted an unsolicited ad)
477:132人目の素数さん
20/05/04 22:45:28 94tg6i4k.net
高橋洋一(統計数理研究所→大蔵省)
スウェーデンの感染症対策を解説
URLリンク(youtu.be)
478:132人目の素数さん
20/05/05 06:07:12 ht6rG86e.net
URLリンク(toyokeizai.net)
のデータを使って
P=14895/153581 # 2020/05/04
PCR検査の感度30-70%のモデルM1と感度70-90%のモデルM2のどちらが信憑性があるか、ベイズファクターで計算してみる。
M1は感度が最頻値60%標準偏差10%、M2は最頻値80%標準偏差10%のベータ分布に設定
特異度はいずれも最頻値95%標準偏差2.5%に設定し、有病率は一様分布を仮定
陽性数は、陽性率(P)=真陽性率+偽陽性率=有病率=有病率*感度 + (1-有病率)*(1-特異度)の二項分布に従うとする。
事後確率分布は
URLリンク(i.imgur.com)
陽性率P=14895/153581=0.09698465での事後確率分布の密度比(Savage-Dickey density ratio)でベイズファクターを出すと
> d1/d2 # Savage-Dickey densiti ratio = BF12
[1] 1.007722
まあ、ちょっぴり、感度30-70%のモデルの方がいいかも、という結果。
陽性数/検査数の時系列データでもあればもう少し差がでるかもしれん。
東京都のデータで計算させようかと思ったが、東京都は検査人数を隠蔽しているので使いものにならない。
479:132人目の素数さん
20/05/05 06:26:36.20 FpoKo6a+.net
訂正
陽性数は、陽性率(P)=真陽性率+偽陽性率=有病率=有病率*感度 + (1-有病率)*(1-特異度)の二項分布に従うとする
↓
陽性数は、陽性率(P)=真陽性率+偽陽性率=有病率*感度 + (1-有病率)*(1-特異度)の二項分布に従うとする
480:132人目の素数さん
20/05/05 11:13:29 b2IqdVzK.net
3月の宿題で(1)のみ正解の数弱@shukudai_sujaku
昨年度の大学への数学(大数)での勝率は、
学コンBコースが 1/1 = 100% ,
宿題が 3/10 = 30% でした!
宿題の勝率が低すぎると思うので、
これからは一層精進していきたいです!
URLリンク(twitter.com)
(deleted an unsolicited ad)
481:132人目の素数さん
20/05/05 23:00:17 wvtmzVA1.net
>>449
抗体のはいったサンプルを2,30個試してみりゃわかんじゃないの?
いくらなんでも感度が3%じゃつかえねぇ。
482:132人目の素数さん
20/05/06 15:29:26 RG00+xls.net
イカサマキットの感度特異度の事前分布を一様分布に設定して
抗体のはいったサンプルを20個で全部陰性であったので30個試したら全部陰性であったとすると
感度・特異度の事後分布は
URLリンク(i.imgur.com)
483:132人目の素数さん
20/05/06 15:32:34 RG00+xls.net
ところが、有病率33/1000であったときに無作為に20人および30人を選んで全部陰性であっても
感度・特異度の事後分布は
URLリンク(i.imgur.com)
484:132人目の素数さん
20/05/06 15:52:13 RG00+xls.net
>>454
事後分布を一様分布に設定して、このコピペ小僧の正解率の期待値・最頻値・95%信頼区間を求めよ。
その結果、
URLリンク(i.imgur.com)
485:132人目の素数さん
20/05/06 15:58:11 RG00+xls.net
>>458
ベータ分布の理論値
> HDInterval::hdi(qbeta,shape1=5,shape2=8)[1:2]
lower upper
0.1406542 0.6377277
> 5/(5+8) # mean
[1] 0.3846154
> (5-1)/(5-1+8-1) # mode
[1] 0.3636364
486:132人目の素数さん
20/05/06 16:25:45 RG00+xls.net
>>454
このコピペ小僧の正解率に学コンと宿題で差があるかを検定せよ。
事前分布にJefferysを用いた結果、
URLリンク(i.imgur.com)
487:132人目の素数さん
20/05/06 17:08:09 tNZVV9ZH.net
>>456
感度が5%以下じゃつかいもんにならんわなぁ。インチキで確定。
488:132人目の素数さん
20/05/06 23:23:13 wABsYddm.net
URLリンク(www.buzzfeed.com)
大阪市立大学が一昨年の血液を使って検査したところ、偽陽性は1人もいなかったそうだ。
489:132人目の素数さん
20/05/07 00:59:54 0v
490:bdeA0/.net
491:132人目の素数さん
20/05/07 02:09:04.11 VnQvkZ57.net
>>463
Wilsonの式を使ったんだろうね。
method x n mean lower upper
1 agresti-coull 3 312 0.0096 0.0019 0.029
2 asymptotic 3 312 0.0096 -0.0012 0.020
3 bayes 3 312 0.0112 0.0016 0.023
4 cloglog 3 312 0.0096 0.0027 0.026
5 exact 3 312 0.0096 0.0020 0.028
6 logit 3 312 0.0096 0.0031 0.029
7 probit 3 312 0.0096 0.0029 0.027
8 profile 3 312 0.0096 0.0024 0.025
9 lrt 3 312 0.0096 0.0024 0.025
10 prop.test 3 312 0.0096 0.0025 0.030
11 wilson 3 312 0.0096 0.0033 0.028
URLリンク(ja.wikipedia.org)
492:132人目の素数さん
20/05/07 02:30:17 VnQvkZ57.net
Wilsonの式での95%信頼区間幅を1%以内にしたいなら
サンプルサイズは38411が必要という計算になった。
Rでの算出プログラム
library(binom)
x=3
n=312
binom.wilson(x,n)
fn <- function(n){
x=0:n
l=binom.wilson(x,n)[,5]
u=binom.wilson(x,n)[,6]
max(u-l)
}
fn=Vectorize(fn)
n=seq(1000,50000,by=1000)
plot(n,fn(n))
abline(h=0.01,lty=3)
uniroot(function(x,u0=0.01) fn(x)-u0, c(10000,50000))
493:132人目の素数さん
20/05/07 17:10:06 CHL0/p02.net
>>462
50人で0でしょ?
だったら、特異度として保証されるのはせいぜい98%程度じゃん。
1%の陽性率に対して、それでは不十分。
494:132人目の素数さん
20/05/07 18:13:41.63 VnQvkZ57.net
>>466
95%信頼区間の下限境界は
事前分布をJeffreysで
> qbeta(0.95,0.5+50,0.5,lower=F)
[1] 0.9624989
事前分布を一様分布で
> qbeta(0.95,1+50,1,lower=F)
[1] 0.942952
495:132人目の素数さん
20/05/07 18:52:47.08 VnQvkZ57.net
特異度の95%の信頼区間の下限値を0.99にするのに必要なサンプルサイズは
事前分布を一様分布で
> uniroot(function(x) fn(x)-0.99, c(100,500))$root
[1] 297.0728
Jeffreysで
> uniroot(function(x) fn(x,0.5,0.5)-0.99, c(100,500))$root
[1] 190.8606
fn <- function(x,shape1=1,shape2=1){
qbeta(0.95,shape1 + x, shape2, lower=F)
}
n=50:500
plot(n,fn(n),type='l', ylab='95%CI.lower')
abline(h=0.99,lty=3)
uniroot(function(x) fn(x)-0.99, c(100,500))$root
uniroot(function(x) fn(x,0.5,0.5)-0.99, c(100,500))$root
496:132人目の素数さん
20/05/07 20:13:12 VnQvkZ57.net
URLリンク(www.buzzfeed.com)
のデータを使って、不明なものは一様分布(ベータ分布の形状母数(1,1))に事前分布を設定してMCMCしてみる。
x=c(3,33)
n=c(312,1000)
m=50
N=length(n)
shape1=1
shape2=1
model{
for(i in 1:N){
x[i] ~ dbin(p,n[i]) # 二項分布
}
p <- prev*sen+(1-prev)*(1-spc) # 陽性=真陽性+偽陽性
sen ~ dbeta(shape1,shape2)
spc ~ dbeta(shape1+m,shape2)
prev ~ dbeta(shape1,shape1)
}
その結果
URLリンク(i.imgur.com)
497:132人目の素数さん
20/05/07 21:49:37 CHL0/p02.net
>>469
なにやってるかよくわからんので、見当外れの指摘かもしれんが、
大阪市大の3/312と神戸大の33/1000ってのは特異度も感度も異なる
であろう別�
498:墲フキットによる検査結果なんで、一緒くたにしちゃ まずいんでないの?
499:132人目の素数さん
20/05/07 22:36:59.75 VnQvkZ57.net
>>470
同一キットじゃないから、ご指摘の通り。
しかも神戸大の方では陰性検体での確認はされていないから、神戸大方の陽性率が高いのは偽陽性を含む可能性もあるね。
大阪市大だけのデータでやってみると。
URLリンク(i.imgur.com)
500:132人目の素数さん
20/05/07 22:46:09.05 VnQvkZ57.net
>>471
使える情報が少なすぎて信頼区間が広すぎ。
有病率:0-87%
キットの感度:0-70%
ってコイントス変わらんな。
501:132人目の素数さん
20/05/07 22:48:00.40 VnQvkZ57.net
結局のところ、断定的な結論は出せないねということを数字で確認しているだけw
502:132人目の素数さん
20/05/08 02:04:52 Ugc87SUM.net
>>464
>>465
有難うございます。
二項分布下の母比率の信頼区間推定問題なんですね。
A2:正規分布近似法でなくWilsonの信頼区間法で解くから
上側区間≠下側区間となり平均値まわり左右非対称信頼区間と
なるのですね。
503:132人目の素数さん
20/05/08 09:15:37 WmDpVhCu.net
3月の宿題で(1)のみ正解の数弱@shukudai_sujaku
昨年度の大学への数学(大数)での勝率は、
学コンBコースが 1/1 = 100% ,
宿題が 3/10 = 30% でした!
宿題の勝率が低すぎると思うので、
これからは一層精進していきたいです!
URLリンク(twitter.com)
(deleted an unsolicited ad)
504:132人目の素数さん
20/05/08 11:37:38 CfFk/Uw1.net
>>474
Rのlibrary binomを使って binom::confint(3,312)で >464の出力が得られる
信頼区間をグラフにすると
URLリンク(i.imgur.com)
点線は3/312
正規分布近似のasymptotic以外は非対称。
どれを使うべきか? 好きなのを使えばいい、と思う。
但し、値が負になったり1を越えたりするのは不採用の方が賢明だとは思う。
Wilson法は値が0や1に近くても信頼できるという人がいるけど、どうやって検証するのかはよくわからん。
505:132人目の素数さん
20/05/08 12:41:19 CfFk/Uw1.net
>>476
binom::confintはbinom.confint(3,312)の間違い
library("binom")
binom.confint(3,312)
506:132人目の素数さん
20/05/09 13:22:10 oDT7bFgO.net
レムデシビルで初のRCTが出たんだけど、
URLリンク(www.thelancet.com)(20)31022-9.pdf
レムデシビルRCTで有意差だせず、症例数不足で検出力不足とか。
確かに、効力がわずからなら検出力不足
> n1=158
> n2=78
> pwr.2p2n.test(h=c(0.8,0.5,0.2),n1=n1,n2=n2,sig.level = 0.05,power=NULL,
+ alternative = "two.sided")
difference of proportion power calculation for binomial distribution (arcsine transformation)
h = 0.8, 0.5, 0.2
n1 = 158
n2 = 78
sig.level = 0.05
power = 0.9999336, 0.9508568, 0.3037150
alternative = two.sided
NOTE: different sample sizes
"
Remdesivir group (n=158)Placebo group (n=78)Difference
Clinical improvement rates
Day 7 4 (3%) 2 (3%) 0.0% (-4.3 to 4.2)
Day 14 42 (27%) 18 (23%) 3.5% (-8.1 to 15.1)
Day 28 103 (65%) 45 (58%) 7.5% (-5.7 to 20.7)
"
どの週においても両群で症状改善率は不変
症状改善率はどちらも一様分布を事前分布に仮定して
症状改善率の差δ=:0というモデルとδ≠0というモデルでのベイズファクター(周辺尤度比=エビデンス比)を求めると
> (BF01=d.post/d.prio)
[1] 1.01472
なので、どちらのモデルが得られたデータを説明するのに適しているかは判断できず、という結果になった。
検出力不足か、差がないのかには決着つかず。
507:132人目の素数さん
20/05/09 13:22:52 oDT7bFgO.net
library(pwr)
library(rjags)
library(polspline)
par(bty='l')
n1=158
n2=78
pwr.2p2n.test(h=c(0.8,0.5,0.2),n1=n1,n2=n2,sig.level = 0.05,power=NULL,
alternative = "two.sided")
pwr.2p2n.test(h=NULL,n1=n1,n2=n2,sig.level = 0.05,power=0.80,
alternative = "two.sided")
s1=c(4,42,103) # improvement with Remdesivir
s2=c(2,18,45) # improvement with placebo
# s1=103 ; s2=45 # Day 28
N=length(s1) # 3
shape1=1 # prior parameter in dbeta
shape2=1
data=list(n1=n1,n2=n2,s1=s2,N=N,shape1=shape1,shape2=shape2)
modelString='
model{
# data
for(i in 1:N){
s1[i] ~ dbin(p1,n1)
s2[i] ~ dbin(p2,n2)
}
# parameter
delta <- p1 - p2
# priors
p1 ~ dbeta(shape1, shape2)
p2 ~ dbeta(shape1, shape2)
# sampling from priors
pri.p1 ~ dbeta(shape1, shape2)
pri.p2 ~ dbeta(shape1, shape2)
pri.delta <- pri.p1 - pri.p2
}
'
writeLines(modelString,'tmp.txt')
n.iter=1e5 ; thin=1
jagsModel=jags.model('tmp.txt',data,inits = NULL,n.chains=4,n.adapt=n.iter/5)
update(jagsModel)
codaSamples=coda.samples(jagsModel,c('delta','pri.delta'),n.iter,thin)
# plot(codaSamples)
coda2summary(codaSamples)
js=as.data.frame(as.matrix(codaSamples))
BEST::plotPost(js$delta,compVal=0,xlab=bquote(delta))
fit.post=logspline(js$delta)
fit.prio=logspline(js$pri.delta)
curve(dlogspline(x, fit.post), -2,2, lty=2, xlab=bquote(delta),ylab='Density')
curve(dlogspline(x, fit.prio), add=T)
(d.post=dlogspline(0,fit.post))
(d.prio=dlogspline(0,fit.prio))
legend('topright', bty='n', legend=c('δ≠0','δ=0'), lty=1:2)
abline(v=0,col=8)
points(c(0,0),c(d.post,d.prio),pch=c(1,19))
(BF01=d.post/d.prio)
508:132人目の素数さん
20/05/09 13:25:29 oDT7bFgO.net
確率分布を図示すると
URLリンク(i.imgur.com)
509:132人目の素数さん
20/05/09 14:25:05 74hNX8Dr.net
100例もやって差がでないのなら、はっきり言って効き目なしとかわらん。
むしろ副作用がこわい。
アビガンはどうなんだろうね。なぜか国内のまとまったデータがまだ出てこない。
510:132人目の素数さん
20/05/09 14:26:34 74hNX8Dr.net
まあ、軽症者が8割とかだと、早期投与の効き目を判定するには相当の
人数に使わないとわかんないだろうけど。
511:132人目の素数さん
20/05/09 15:22:40 oDT7bFgO.net
死亡率に関してはベイズファクターで推論できた。
Remdesivir group (n=158) Placebo group (n=78) Difference
Day 28 mortality 22 (14%) 10 (13%) 1.1(-8.1% to 10.3%)"
事前確率分布をどうするかだが、なんの情報もないので
実薬群も対照群も一様分布(もしくはJeffreys分布)とする。
死亡率の差δの事前分布と事後分布の確率分布曲線を描いてδ=0での確率密度比(Savage-Dickey density ratio)が
ベイズファクター(周辺尤度の比)になる。
これをJAGSを用いたプログラムで計算すると、一様分布のとき8.34 Jeffrey分布のとき6.40となる。、
10を超えないいのでまあ、中程度の確信で検出力不足によるのではなく、もともと差がないのであろうと推論できる。
サンプルサイズを増やしてもレムデシビルは軽症・早期投与でも致死率を改善しないであろうと予想。
512:132人目の素数さん
20/05/09 17:15:11 oDT7bFgO.net
>どの週においても両群で症状改善率は不変
この前提はおかしいので週ごとに症状改善率が変わるようにモデルを変更
model{
# data
for(i in 1:N){
s1[i] ~ dbin(p1[i],n1)
s2[i] ~ dbin(p2[i],n2)
}
# parameter
alpha <- delta*sigma
for(i in 1:N){
p1[i] <- phi(x1[i]) # probit:pnorm(x)
p2[i] <- phi(x2[i])
# p1[i] <- ilogit(x1[i]) # logit:exp(x)/(1+exp(x))
# p2[i] <- ilogit(x2[i])
}
# model
for(i in 1:N){
x1[i] ~ dnorm(mu + alpha/2, pow(sigma,-2)) # alpha:difference of mean
x2[i] ~ dnorm(mu - alpha/2, pow(sigma,-2))
}
# priors
delta ~ dnorm(0,1)
mu ~ dnorm(0,1)
sigma ~ dt(0,1,1)T(0,)
}
ベイズファクターは
> (BF01=d.post/d.prio)
[1] 0.9976274
症状改善率に差がないというモデルも差があるというモデルも周辺尤度(エビデンス)はほぼ同じという結果。
513:132人目の素数さん
20/05/09 20:41:59 74hNX8Dr.net
あ、 >>482はレムデシじゃなくてアビガンについての話だかんね。
レムデシは重症者向けらしいけど、たぶん駄目だろ。
514:132人目の素数さん
20/05/09 21:35:34 Fh34v+Vz.net
【政府が隠す3.11】 地震波形が、核実験と同じ
スレリンク(earth板)
sssp://o.5ch.net/1nmad.png
515:132人目の素数さん
20/05/11 00:31:07 mGn48zmS.net
5/10夜『NHKスペシャル』「新型コロナウイルス 出口戦略は」で
厚労省新型コロナ対策班西浦博北大教授と氏が分析中のノートPC画面が
映されていた。氏の使用解析ソフトウェア名は何というのでしょうか?
516:132人目の素数さん
20/05/11 01:36:00 P7wrhagU.net
西浦先生はRじゃないかな。
今週ぐらいに、実効再生産数を算出するRのコードを公開できるかもと言ってた。
火曜にはニコ生があるから、そこでたっぷりと聞けるはず。
URLリンク(sp.live.nicovideo.jp)
517:132人目の素数さん
20/05/11 03:07:28 6TI8KNr5.net
>>488
>11に数式があるけど
518:132人目の素数さん
20/05/11 03:58:21.10 v4rWY6J/.net
>>489
いや、与えられた何日分かの新規患者数から再生産数とか回復率とかを推定するための数式じゃないの?
519:132人目の素数さん
20/05/11 06:53:45 ruo6tAnf.net
>>490
SEIRより単純なReed-Frostモデルだよな
URLリンク(en.m.wikipedia.org)
520:132人目の素数さん
20/05/11 09:14:46.53 P7wrhagU.net
>>489
自分で計算してみた人ならわかるけど、日々の再生算数を出すにはA「感染してから他人にうつすまでの日数の分布」が必要。西浦先生はこれをまず求めていて、その結果は割合と世界中で使われている。
加えてB「感染してから発表の数字に載るまでの日数の分布」も必要で、発表の数字をBで逆畳み込み積分してC「感染推定日毎の数字」に変換し、CをAで畳み込み積分したものでCを割れば日々のRtが求められる。
とは言うものの、そのままやると誤差で数字が発散するし、逆畳み込みは一意ではないのでどう推定するかは色々と考えなくてはならない。多分日本独自の事情もコードに入れなきゃいけない。大変だろうなあとは思う。
521:132人目の素数さん
20/05/11 11:02:15.57 +2HA8Yn9.net
>>492
レスありがとうございます。
確かにSEIRモデルやSIRIモデルだと
「感染してから発表の数字に載るまでの日数の分布」って考慮されてないね。
522:132人目の素数さん
20/05/12 20:50:54 8HqG++pl.net
>>488
公開されたぞー。StanとRだ。
URLリンク(nbviewer.jupyter.org)
523:132人目の素数さん
20/05/12 22:32:45.27 9+i4T0w3.net
ウイルス感染のモデルも必要だと思うけど
社
524:会経済活動の影響や 自粛解除した後の死者増加や 自粛継続した場合の法人の倒産や 治療薬やワクチンができた後の社会の経済や文化面の回復 そこまで考慮してどういう政策を選択したら 損失を最小化できるかという問題は解ける? 制約付きの最小化問題だと思う 数値化するのが難しい考慮要素もあるからその辺は仮の値とかで
525:132人目の素数さん
20/05/13 17:23:13 PBQsFM+W.net
>>495
モデルを精密複雑化すればするほど、必要なパラメータが増えて
それを弱情報事前分布にすると事後分布の信頼区間が広がるんだなぁと思う。
526:132人目の素数さん
20/05/14 08:00:23 kec+XbRE.net
>>494
これにある、
JapaneseDataCOVID19
ってどこかからダウンロードできるんだろうか?
527:132人目の素数さん
20/05/14 09:54:38 IN0uokww.net
>>497
URLリンク(github.com)
528:132人目の素数さん
20/05/14 11:47:52 kec+XbRE.net
>>498
ありがとうございます。
529:132人目の素数さん
20/05/14 11:51:11 kec+XbRE.net
親ディレクトリ(フォルダ)探せばよかったんだね。
URLリンク(nbviewer.jupyter.org)
530:132人目の素数さん
20/05/14 13:08:10.58 gLQVRit5.net
>>495 >>496
パラメータを増やせば増やすほど、どんな仮説も否定できなくなる。
実験系の学界でよく使う手口だよね。
おや、誰か来たようだ…
531:132人目の素数さん
20/05/14 13:58:09 kec+XbRE.net
>>494
これを走らせてみたい人いますか?
> datestar = as.Date("2020-05-10")
> datemin = as.Date("2019-12-25") # particular choice
> (tstar = as.numeric(datestar - datemin))
[1] 137
> (K = nrow(df_cases)) # 147
[1] 147
なので、
data {
int<lower = 1> K; //number of days
vector<lower = 0>[K] imported_backproj;
vector<lower = 0>[K] domestic_backproj;
int<lower = K> upper_bound;
の
int<lower = K> upper_bound;
だ
Error in new_CppObject_xp(fields$.module, fields$.pointer, ...) :
Exception: modelf2b01ab215_fit_infection_namespace::modelf2b01ab215_fit_infection: upper_bound is 137, but must be greater than or equal to 147 (in 'modelf2b01ab215_fit_infection' at line 53)
upper_bound 137の下限を K 147にしているからみたい。
532:132人目の素数さん
20/05/14 14:10:15 kec+XbRE.net
upper_boundの制限を外して
data {
// int<lower = K> upper_bound;
int upper_bound;
再生数の平均値を以下の出すブロックを加えて走らせてみた。
transformed parameters{
real mean_Rt;
real mean_Rt_adj;
mean_Rt = mean(Rt);
mean_Rt_adj = mean(Rt_adj);
}
その結果、
Inference for Stan model: fit_infection.
2 chains, each with iter=10000; warmup=2000; thin=5;
post-warmup draws per chain=1600, total post-warmup draws=3200.
mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
mean_Rt 1.79 0 0.07 1.66 1.74 1.79 1.83 1.92 3122 1
mean_Rt_adj 1.79 0 0.07 1.66 1.74 1.79 1.84 1.93 3123 1
533:132人目の素数さん
20/05/14 16:35:35 kec+XbRE.net
再生算数を0~10人の一様分布にすると、収束しない。
> print(fit_u)
Inference for Stan model: fit_infection_u.
4 chains, each with iter=10000; warmup=5000; thin=5;
post-warmup draws per chain=1000, total post-warmup draws=4000.
mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
mean_Rt 2.15 0.05 0.10 1.98 2.06 2.16 2.23 2.30 3 1.99
mean_Rt_adj 2.13 0.07 0.11
534: 1.93 2.06 2.13 2.21 2.36 3 2.27 lp__ -789.19 7.18 14.43 -820.19 -797.69 -787.44 -779.42 -762.53 4 1.89 traceplotやchainの分布はこんな感じ、 https://i.imgur.com/z0RL1KW.png https://i.imgur.com/VRrrsKw.png
535:132人目の素数さん
20/05/14 17:00:26 1Kd4DHQt.net
>>501
否定できないけど実証もできないことになるのでは?
単純なモデルだと現実の問題を解決できない事もあるし
536:132人目の素数さん
20/05/14 17:23:23.34 kec+XbRE.net
>>494
モデルで再生産数の事前分布は 平均2.5 標準偏差2.0の正規分布に設定されていたので
平均と標準偏差を変化させて、再生産数の事後分布を描出してみた。
かなり、事前分布の影響を受けるみたい。
URLリンク(i.imgur.com)
537:132人目の素数さん
20/05/14 17:26:03.64 kec+XbRE.net
どうも、こういう境地だなぁ。
断定的な結論は出せないということを数字で確認しているだけw
538:132人目の素数さん
20/05/14 17:30:34 50GljeDM.net
基本再生算数はウイルスの特徴で決まるもので
実行再生算数は更に環境や人の行動の影響で変化するものだと理解している
実行再生算数を減らすようにするには
どう行動したらいいか
かつ経済活動を出来るだけ下げずに
539:132人目の素数さん
20/05/14 18:25:32 IN0uokww.net
西浦モデル、一度感染日ごとの人数を最尤法で確定して、そこからベイズを回してRtを求めてるんだよなあ。
本来は、日々の感染者数も確率的に揺れがあるはず。だからRtの誤差幅は発表よりも多く見積もるべきかもしれん。
540:132人目の素数さん
20/05/14 18:39:49 IN0uokww.net
コードを解説してる人
URLリンク(mikuhatsune.hatenadiary.com)
541:132人目の素数さん
20/05/14 19:09:54 kec+XbRE.net
再生産数の事前分布を色々かえて事後分布を出してみた。
URLリンク(i.imgur.com)
542:132人目の素数さん
20/05/15 08:46:23 qjCTzgxb.net
>>504
切断分布だと収束しないみたいなので、
一様分布[0,10]に近そうな正規分布[5,3]
URLリンク(i.imgur.com)
を事前分布にして走らせてみた。
URLリンク(i.imgur.com)
543:132人目の素数さん
20/05/15 09:56:20.25 qjCTzgxb.net
【新型コロナ】 東京0.6%、東北6県0.4%陽性・・・抗体検査1000人実施 [影のたけし軍団★]
スレリンク(newsplus板)
複数の検査キットの性能評価と感染状況の確認が目的でしたが、東京都で献血した500人のうち3人、
東北6県で献血した500人のうち2人がいずれかの検査キットで陽性と判定されました。
満員電車など人との接触の多い東京とそうでない東北で陽性率に有意差はあるか?
544:132人目の素数さん
20/05/15 12:23:12 GeDvuMme.net
>>513
検査キットの特異度が99.5%以上あることが検証されました。
ってだけの話じゃね?
まぁ、東北6県と東京が同じってことは、特異度はそれより
高くはないってことだろうね。
545:132人目の素数さん
20/05/15 12:26:48 GeDvuMme.net
言い換えると、真の陽性率はわかりません、ってこと。
546:132人目の素数さん
20/05/15 16:53:27 qjCTzgxb.net
>>513
陽性率の確率分布を一様分布にすると事後分布は
URLリンク(i.imgur.com)
なるけど、重なりの部分の面積が差がないことの度合いを示していると考えていいかな?
547:132人目の素数さん
20/05/15 18:43:40 qjCTzgxb.net
これは、味気がないな。
> Epi::twoby2(x)
2 by 2 table analysis:
------------------------------------------------------
Outcome : Col 1
Comparing : Row 1 vs. Row 2
Col 1 Col 2 P(Col 1) 95% conf. interval
Row 1 3 497 0.006 0.0019 0.0184
Row 2 2 498 0.004 0.0010 0.0158
95% conf. interval
Relative Risk: 1.5000 0.2517 8.9384
Sample Odds Ratio: 1.5030 0.2501 9.0339
Conditional MLE Odds Ratio: 1.5024 0.1713 18.0536
Probability difference: 0.0020 -0.0092 0.0139
Exact P-value: 1.0000
Asymptotic P-value: 0.6561
------------------------------------------------------
548:132人目の素数さん
20/05/16 07:59:05 /d9XIHEO.net
再生産数を計算するRのプログラムあったんだな
URLリンク(www.rdocumentation.org)
549:132人目の素数さん
20/05/16 08:16:33 28hwAVWs.net
>>509
後者の分析、RStan本の訳者が今やっているようだ。
URLリンク(twitter.com)
(deleted an unsolicited ad)
550:132人目の素数さん
20/05/16 08:17:55 28hwAVWs.net
>>519
URLリンク(twitter.com)
(deleted an unsolicited ad)
551:132人目の素数さん
20/05/16 08:36:22 /d9XIHEO.net
>>520
アヒル本の著者だね。俺も読んだ。
552:132人目の素数さん
20/05/16 12:36:46 cGFgpNwX.net
4/2の時点で感染者数を6000くらいと見積もってるね。>アヒル本の人
実数の三倍程度。いい線かもしれない。
553:132人目の素数さん
20/05/16 13:39:32 XSllT5Kn.net
URLリンク(github.com)
554:132人目の素数さん
20/05/16 14:29:29 BxGcLzV+.net
int<lower = K> upper_bound;
↓
int upper_bound;
にしてもエラーがでる。
stan_dataで
upper_bound = 147 にすると動くけど、何をやってんのか自分でもよくわからん。
555:132人目の素数さん
20/05/16 16:47:14 UBjBTXVe.net
アヒル本ってなんですか?
556:132人目の素数さん
20/05/16 17:55:00 BxGcLzV+.net
>>525
名著として名高いStanの入門書
StanとRでベイズ統計モデリング (Wonderful R) (日本語) 単行本 ? 2016/10/25
表紙の色がアヒルのくちばしの色に似ているかららしい。
557:132人目の素数さん
20/05/16 17:56:04 BxGcLzV+.net
>>524
自己解決
select
↓
dplyr::select
でちゃんと動作した
558:132人目の素数さん
20/05/16 19:16:41 5/7mBSAW.net
>>526
thx
559:132人目の素数さん
20/05/16 19:28:52 BxGcLzV+.net
R に EpiEstimというパッケージがあって、再生産数を算出する関数が搭載されている。
結局、infecterとinfecteeが発症するまでの期間serial intervalの分布をどう設定するかで結果が変わるみたいだなぁ。
Rのヘルプファイルを解読中。
Rのヘルプファイルは不親切設計で有名(理解できている人の備忘録みたいな性格だから)。
560:132人目の素数さん
20/05/16 20:49:50 5T7nYzW3.net
ここに居る人達って何者なの
学部の知識超えてるよね
統計でご飯食べてる人たち?
561:132人目の素数さん
20/05/16 21:03:16 YPW1s8+S.net
しかし、なんでも揃ってるなRって
562:132人目の素数さん
20/05/16 22:57:43 BxGcLzV+.net
>>529
Stanでの西浦モデルではinfecterとinfecteeが発症するまでの期間serial intervalの分布に
## Serial interval [Nishiura et al 2020 - only certain cases]
param1_SI = 2.305,
param2_SI = 5.452,
// serial interval
vector[K] gt = pweibull(param1_SI, param2_SI, K);
として使われているので、平均値などを出してみた。
乱数発生と理論値
> x=rweibull(1e5,param1_SI,param2_SI)
> mean(x) ; param2_SI*gamma(1+1/param1_SI)
[1] 4.829273
[1] 4.830129
> var(x) ; param2_SI^2*(gamma(1+2/param1_SI)-(gamma(1+1/param1_SI))^2)
[1] 4.907755
[1] 4.940682
> median(x) ; param2_SI*(log(2)^(1/param1_SI))
[1] 4.655777
[1] 4.6505
> density(x)$x[which.max(density(x)$y)] ; param2_SI*(1-1/param1_SI)^(1/param1_SI)
[1] 4.116837
[1] 4.259624
> optimise(function(x) dweibull(x,param1_SI,param2_SI),c(0,10),maximum = T)$max
[1] 4.259623
グラフにしてみた。
URLリンク(i.imgur.com)
正規分布で近似してもよさそうな感じだな。
563:132人目の素数さん
20/05/17 00:04:44 u5AEq3c8.net
>>532
ワイブル分布の平均 4.830129と標準偏差2.222765をそのまま正規分布のパラメータに使って、グラフを重ねてみる。
URLリンク(i.imgur.com)
ワイブル分布で発生させた乱数をワイブルでフィットさせてAICを出してみた
Goodness-of-fit criteria
1-mle-weibull
Akaike's Information Criterion 438377.2
Bayesian Information Criterion 438396.2
ワイブル分布で発生させた乱数を正規分布でフィットさせてAICを出してみた。
Goodness-of-fit criteria
1-mle-norm
Akaike's Information Criterion 444280.9
Bayesian Information Criterion 444299.9
まぁ、許容範囲。
これで、
library(EpiEstim)の例にある、 mean_si std_siが求まった
## Estimate R with assumptions on serial interval
res <- estimate_R(incid, method = "parametric_si",
config = make_config(list(
mean_si = 4.83, std_si = 2.22)))
domestic , imported, unobserved の分類がよくわからんが、全部足してグラフを描いてみた。
URLリンク(i.imgur.com)
564:132人目の素数さん
20/05/17 00:18:59 u5AEq3c8.net
別の論文だと対数正規分布がフィットすると西浦氏は記載している。
serila interval : infector と infecteeの発症間隔
URLリンク(www.ijidonline.com)(20)30119-3/pdf
その分布が平均4.7 標準偏差2.9の対数正規分布が最もフィットするのはいいんだが、
その分布を与えるパラメータの記述がほしい。
最小二乗法で求めてみた。
$par
[1] 1.3862713 0.5679836
ワイブル分布にも似るとか書いてあるがパラメータ記載なし
この対数正規分布をワイブル分布で近似してみる。
Fitting of the distribution ' weibull ' by maximum likelihood
Parameters:
estimate Std. Error
shape 1.757488 0.00392072
scale 5.316986 0.01014664
URLリンク(i.imgur.com)
点線が2項分布で実線がワイブル分布
565:132人目の素数さん
20/05/17 07:09:05 /ApxcPC4.net
“頭脳王”東大生・河野玄斗
基本的な数学でコロナウイルス検査を全員にしても意味がないことを証明してみた
URLリンク(www.youtube.com)
566:132人目の素数さん
20/05/17 07:28:25 mpH4uuPx.net
実効再生産数を感染者数の推移から推定する数理的原理をキチンと解説した本、または論文誰か知りませんか?
勉強してみたい。
567:132人目の素数さん
20/05/17 07:33:35 u5AEq3c8.net
>>536
RのEpiEstimの著書の論文なんかどうでしょう?
A New Framework and Software to Estimate Time-Varying Reproduction Numbers During Epidemics
URLリンク(www.ncbi.nlm.nih.gov)
568:132人目の素数さん
20/05/17 07:55:41 u5AEq3c8.net
Rで引数なしで関数を実行させようとすると、ソースが表示される。
その関数が呼び出した関数のソースを次々に辿っていけば内部計算がわかるので、そこから原理がつかめるかも(俺には無理なのでしないけど)
内部関数のときは:が3つとか、パッケージ名:::関数、パッケージ名:::関数.default(例、t検定のソース表示は stats:::t.test.default )で表示される。
EpiEstim::estimate_R
EpiEstim:::process_si_data
EpiEstim:::process_config_si_from_data
coarseDataTools::dic.fit.mcmc
569:132人目の素数さん
20/05/17 08:10:41 u5AEq3c8.net
>>529
感染者に0が続くと再生産数の信頼区間幅がどんどん広くなってくる。
まあ、疫病用のソフトウェアと理解しておこう。
URLリンク(i.imgur.com)
infected=c(0,1,1,1,0,0,0,2,0,3,2,3,1,1,1,1,3,0,1,0,0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
## Estimate R with assumptions on serial interval
res <- estimate_R(infected, method = "parametric_si",
config = make_config(list(
mean_si = 4.83, std_si = 2.22)))
570:132人目の素数さん
20/05/17 09:00:46 u5AEq3c8.net
>>539
ちゃんと、記載されていた :P
the precision of these estimates
depends directly on the number of incident cases in the time
window [t ? τ + 1; t]. This allows us to control the precision
by adjusting the window size.
URLリンク(www.ncbi.nlm.nih.gov)
571:132人目の素数さん
20/05/17 09:34:29 u5AEq3c8.net
基本コンセプトはこれだろうな。
Therefore, in practice, we apply our method to data consisting of daily counts of onset of symptoms where the infectivity profile ws is approximated by the distribution of the serial interval.
公表された感染者数で計算するために発症から診断/公表までの時間も考慮した点が西浦モデルの優れた点ではないかと感じている。
572:132人目の素数さん
20/05/17 12:07:27 S4iLXC97.net
>>537
ありがとう。
読んでみます。
でも"a new frame work"っていうならもっと大本のこの道の研究者なら「Rtの推定はコレ」みたいな標準的なものがあるんですかね?
どなたかご存知ないですか?
573:132人目の素数さん
20/05/17 12:11:01 S4iLXC97.net
>>540
おぉ、こっちがRで採用されてる推定法なんですね。
読んでみます。
574:132人目の素数さん
20/05/17 12:16:27 S4iLXC97.net
と思ったら>>537と>>540は同じかorz
575:132人目の素数さん
20/05/17 15:31:13 u5AEq3c8.net
結局、これが核心部分
Rt =I t (number of new infections generated at time t) / Σ[s=1,t] I t-s * Ws ( = total infectiousness of infected individuals at time t)
Ws : an infectivity profile given by a probability distribution ws, dependent on time since infection of the case, s, but independent of calendar time, t.
E[I t] = Rt Σ[s=1,t] I t-s * Ws
Σ[s=1,t] I t-s * Wsの部分が畳み込み積分で
Ws ∝ serial interval ガンマ分布で近似するのが定石らしい。
576:132人目の素数さん
20/05/17 20:41:31 /XIaXEJI.net
>>545
それはそのモデルでのRtの定義ですね、
ではなく例えば4/1~4/30までのデータx1,x2,‥,x30までが与えられた時、各日付のCIをどう定義してるのかがわからないんです。
統計量Xが一つあってその観測値xが一つある時そのレベルλのレベルλのCIがIであるとは
P(X<x|θ)>(1-λ)/2 & P(X>x|θ)>(1-λ)/2 ⇔ θ∈I
(θがIに入らないときはxが小さすぎてそんな観測値が得られる確率が(1-λ)/2以下になるか、xが大きすぎてそんな事が起こる確率が(1-λ)/2以下になってほとんど起こり得ない)
となりますが、統計量が複数になるとこの大きすぎて、小さすぎてと二つのハズレ領域を考えるだけでは済まなくなります。
ハズレ領域の設定の仕方は色々考えられるけど統計の問題なので自分で俺様流の領域を設定するわけにもいかないのでpublicにはどう処理してるのだろうと。
しかし疫学の教科書わざわざ買うほどには興味もないしw
知っ
577:てる人いたら教えてもらおうと。 まだ論文読んでないので書いてあるかもですけど。
578:132人目の素数さん
20/05/18 05:56:32 hVD/4gbI.net
>>546
>523氏が挙げてくれた
実効再生産数とその周辺 に 記述があったが、publicと呼べるのかどうかは門外漢なので知らない。
URLリンク(github.com)
こんな記述があった
>>
Several non mathematical definitions.
A:
あるカレンダー時刻 t で起こっている 2 次感染数の 1 人あたり平均値
B:
あるカレンダー時刻 t で感染した 1 人がその後の経過で生み出す 2 次感染者数の平均値
C:
罹患率 有病割合比などから推定される 1 人あたりの 2 次感染者数( actual reproduction number とか)
D:
予防接種など流行対策下での 1 人当たりが生み出す 2次感染者数
<<
と定義は一義的ではないみたいだが、
西浦モデルでのR1(t) R2(t)は >540の論文では Rt Rct (cはcohortの頭文字)として言及されているから、まあ、理論疫学者の間ではcommonな定義なんだろうと思う。
579:132人目の素数さん
20/05/18 06:16:59 hVD/4gbI.net
>>546
>4/1~4/30までのデータx1,x2,‥,x30
x1,...,x30が感染者数なら非負整数で与えられるから、CIを考える必要があるかな?
集計ミスで19人が117人とかあったらしいから、信頼区間を考える必要があるのかもしれないとは思うけど。
確かに、発症日に関してはファジーな部分があるとは思う。
いつから熱がありましたか?味がわからなくなりましたか?と問われても1~3日位の幅はでるだろう。
RのEpiEstim::estimate_Rをヘルプファイルの実例を使って走らせてみた。
serial intervalの分布をデータから推定させるのに
infecterの発症日の下限・上限
infecteeの発症日の下限・上限
を設定する項目が(EL,ER,SL,SR)があった。
このデータに合致する分布関数(ガンマ、ワイブル、対数正規分布が指定可能)のパラメータを算出して計算させているみたい。
西浦モデルではワイブル分布で固定。
潜伏期間にも変動があるから、誰がinfecterで誰がinfecteeかを決定するのも難しいだろうとは思う。
後から発症した人間が感染源というのもありうるし。
580:132人目の素数さん
20/05/18 11:15:46 iMUOaQs/.net
>>548
統計データから真の罹患日を推定する方法もあるようですが
そこではないんです。
しりたいのはCIのハズレ領域の設定です。
1変数の場合、母数θに対して分布Fθが定まっている場合、レベルλに対して[0,1]の部分集合J(λ)が決まって、観測値xに対する信頼区間I(λ,x)は
θ∈I(λ,x)⇔Fθ(x)∈J(λ)
を満たす区間として定まります。
上の方でI(λ)が上下対称に取らないのはなぜという話題がありましたが、コレがその理由です。
J(λ)の方は上下の(1-λ)/2を削って((1-λ)/2,1-(1-λ)/2)をとり、上下対称に“ハズレ領域”をとりますが、それをもとに計算されるI(λ,x)は対称とはならないからです。
問題は観測値が2変数以上ある場合“ハズレ領域”をどう設定するものかわからないのです。
私が大学で勉強した時はそこまでやらなかったので。
普通に考えればI^3の中の立方体の体積がλになるように真ん中にとるんだろうなぁと思うんですけど。
581:132人目の素数さん
20/05/18 13:21:08 1P7V5xJn.net
職場でも最初に発症した人が感染源のように扱われるけど
潜伏期間の分布を考えたら断定はできない。
COVID19の潜伏期間の論文
URLリンク(www.nejm.org)
から、
潜伏期間は対数正規分布で近似できてそのパラメータは
#--- incubation period ---
# from Li et al NEJM 2020
# log
582:normal mean = 5.2 ln.par1 = 1.434065 ln.par2 = 0.6612 という。 ある人物Xが新型コロナ肺炎に罹患したとする。 行動調査によって発症前にキャバクラに行っており接客したキャバ嬢がX発症の2日後に発症していたことがわかった。 Xがキャバ嬢から移された確率を求めよ。
583:132人目の素数さん
20/05/18 13:25:20 1P7V5xJn.net
>>549
Highest Density Probability Intervalを求めればいいんじゃないの?
584:132人目の素数さん
20/05/18 14:04:29 jxOnYm2h.net
>>551
何ですかそれは?
585:132人目の素数さん
20/05/18 14:08:09 1P7V5xJn.net
>>550
正確にはキャバ嬢がXより先に感染していた確率だな。
586:132人目の素数さん
20/05/18 14:08:59 1P7V5xJn.net
>>552
確率分布が対称じゃないときの信頼区間
587:132人目の素数さん
20/05/18 14:13:34 1P7V5xJn.net
>>554
こんな感じ。URLリンク(i.imgur.com)
588:132人目の素数さん
20/05/18 14:26:48 jxOnYm2h.net
>>554
ただ、それだとそもそもモードに近いとこをやってます。
信頼区間は密度関数を横に切るのではなく両裾を縦に切ってハズレ部分が1-λになるようにするので少しイメージが違うしきがします。
モードなのかメジアンなのかの違いです。
いずれにせよ、こうやればいいという拡張のための俺様ルールを設定するのはいくらでもできますが、統計の話なのでそんな俺様ルールについて語っても意味ありません。
589:132人目の素数さん
20/05/18 15:34:14 1P7V5xJn.net
>>556
単峰性の場合、信頼区間幅が最小になるのがHighest Density Interval
>550なら
HDI
> HDInterval::hdi(x)[1:2]
lower upper
0.5822687 12.5635525
分位数
> quantile(x,c(0.025,0.975))
2.5% 97.5%
1.148711 15.334698
HDIの方が幅が小さい。
590:132人目の素数さん
20/05/18 15:36:39 jxOnYm2h.net
>>557
???
591:132人目の素数さん
20/05/18 15:44:16.03 jxOnYm2h.net
ああ、わかった。HDIやCIの意味を誤解してませんか?
HDIでググって調べたらコレ↓ですよ。
URLリンク(rindalog.blogspot.com)
592:132人目の素数さん
20/05/18 19:32:28.41 4BbElJo8.net
>>179
単にお勉強ができただけ。
頭が良くないのさ。
自分の頭で物事を考えるってことができない。
593:132人目の素数さん
20/05/18 19:34:11.31 4BbElJo8.net
>>181
その通り。
具体的には理学部の数学科と物理学科。
工学部にも時々もの凄いのがいる。
594:132人目の素数さん
20/05/18 19:49:54 1P7V5xJn.net
>>559
いや、Rのパッケージ HDIntervalで計算しているから誤解していないと思う。
内部の処理コードをみると信頼区間幅が最小になるのを最尤法で出しているね。
595:132人目の素数さん
20/05/18 19:51:25 1P7V5xJn.net
>>561
ほんとうに頭のいい人は医学部でなく理学部か工学部に行く。
ほんとうに頭の悪い奴は底辺シリツ医大に行く。
シリツ医大には手先の器用な人もいるが、頭が器用な奴をみたことがない。
596:132人目の素数さん
20/05/18 20:05:42 1P7V5xJn.net
>>550(自答)
#
# 人物dが発症してdelay日後に濃厚接触したキャバ嬢cが発症
# cの感染がdより先行していた確率は?
rm(list=ls())
stancode=
"
data{
real onset_delay;
real ln_par1;
real ln_par2;
}
parameters{
real <lower=0> d_incubation;
real <lower=0> c_incubation;
}
transformed parameters{
real infection_delay = onset_delay + d_incubation - c_incubation;
}
model{
d_incubation ~ lognormal(ln_par1,ln_par2);
c_incubation ~ lognormal(ln_par1,ln_par2);
}
"
model=stan_model(model_code = stancode)
#--- incubation period ---
# from Li et al NEJM 2020
# lognormal mean = 5.2
ln_par1 = 1.434065
ln_par2 = 0.6612
fn.stan <- function(delay, print=FALSE, ...){
dataList=list(onset_delay=delay,ln_par1=ln_par1,ln_par2=ln_par2)
fit=sampling(model,data=dataList, ...)
ms=rstan::extract(fit)
if(print) BEST::plotPost(ms$infection_delay,compVal=0,xlab='infection delay')
mean(ms$infection_delay < 0)
}
fn.stan(2,print=T,iter=5000,warmup=1000)
onset_delays=0:20
y=sapply(onset_delays,fn.stan)
plot(onset_delays,y, ylab='Pr[ Infected Later ])')
2日後の発症だと
> fn.stan(2,print=T,iter=5000,warmup=1000)
[1] 0.2945
3割くらいはあとから発症した方が先に感染していた可能性がある。
597:132人目の素数さん
20/05/18 20:48:18.33 1P7V5xJn.net
Temporal dynamics in viral shedding and transmissibility of COVID-19
URLリンク(www.nature.com)
のRのコード
URLリンク(github.com)
と
西浦モデルのコード
URLリンク(nbviewer.jupyter.org)
から発症間時間(serial interval)の分布を重ねてみた。
URLリンク(i.imgur.com)
598:132人目の素数さん
20/05/18 21:01:41.77 4BbElJo8.net
>>563
一方的で申し訳ないが私立大医学部は金持ちのバカ息子が行くイメージ。
599:132人目の素数さん
20/05/18 21:02:26.04 4BbElJo8.net
西浦さんはさんざん適当なことを言って世論を煽ってどう責任を取るのかな?
600:132人目の素数さん
20/05/18 21:18:52.42 AArRB0Ix.net
>>567
少なくとも西浦氏は算出コードを公開しているだけでも好感が持てる。
601:132人目の素数さん
20/05/18 21:20:19.41 AArRB0Ix.net
>>566
それは正しい認識。
凄いのはド底辺シリツ医の馬鹿さ加減だよ。
裏口バカと呼ばれるのがよくわかる。
URLリンク(imagizer.imageshack.com)
URLリンク(i.imgur.com)
馬鹿だという自覚がないので救いようがない。
ICU Bookの最終章の冒頭で著者がこう書いている。
In clinical matters, ignorance can be dangerous,
but ignorance of ignorance can be fatal.
「叱られないと勉強しない」の対偶を「勉強すると叱られる」
と答えるのはignorance can be dangerousの範疇だが、
ドヤ顔で
>対偶をとれば意味が逆になる例文。
というのは、まさに
ignorance of ignorance can be fatal.
602:132人目の素数さん
20/05/21 11:39:47 hAZkHjNF.net
西浦モデルの再生算数の事前分布を変化させてグラフにしてみた。
西浦モデルでのデフォルト
URLリンク(i.imgur.com)
事前分布を一様分布(0,10)近似の正規分布で近似させた場合
URLリンク(i.imgur.com)
再生算数の平均0、標準偏差1の場合
URLリンク(i.imgur.com)
印象としては、西浦モデルは頑強性robustnessのあるモデルとは言えない。
事前分布に大きく影響されるモデルだと思う。
603:132人目の素数さん
20/05/21 11:42:59 hAZkHjNF.net
(url訂正)
西浦モデルの再生算数の事前分布を変化させてグラフにしてみた。
西浦モデルでのデフォルト
URLリンク(i.imgur.com)
事前分布を一様分布(0,10)近似の正規分布で近似させた場合
URLリンク(i.imgur.com)
再生算数の平均0、標準偏差1の場合
URLリンク(i.imgur.com)
印象としては、西浦モデルは頑強性robustnessのあるモデルとは言えない。
事前分布に大きく影響されるモデルだと思う。
604:132人目の素数さん
20/05/21 11:59:00 hAZkHjNF.net
>>571
誤解されるのは不本意なの追記するけど、ソースを公開する西浦先生の姿勢は高く評価している。
隠蔽・改竄・破棄する安倍とは大違い。
605:132人目の素数さん
20/05/21 12:04:41 RwIzsMl5.net
だからベイズ推定が統計学の世界でメジャーにならんのだろ?
論理的根拠のない“事前分布”なるもので答えがひょいひょい変わるのでは社会的な影響が大きい防疫政策の決定には使えない。
普通の統計学の検定なら理論的に根拠のある数字、推論しか使わない。
計算は大変だけど。
606:132人目の素数さん
20/05/21 12:36:51 hAZkHjNF.net
>>573
成人の平均身長を1~2mに事前分布にするのは納得できるし、
生まれる子供が男子である
607:確率は0.4~0.6というのも俺は納得できる。 PCRの感度が30~70%として計算するのも納得できるからその設定で階層ベイズモデルを組むことには異論はないな。
608:132人目の素数さん
20/05/21 12:43:16 hAZkHjNF.net
こういう問題
あるタクシー会社のタクシーには1から通し番号がふられている。
タクシー会社の規模から保有タクシー台数は100台以下とわかっている(弱情報事前分布)。
この会社のタクシーを5台みかけた。最大の番号が60であった。
この会社の保有するタクシー台数の期待値と95%信用区間(信頼区間)を求めよ。
をベイズで解くときは、
60台~100台である確率を一様分布として処理しているから
これに異論があるのは理解できるけど
日本人成人の平均身長を推定に1~2mを事前分布に想定するのには俺は異論はないね。
一様分布ではなくてガンマ分布にすべきだというのは議論になるとは思うけど。
609:132人目の素数さん
20/05/21 13:00:03 hAZkHjNF.net
>>573
ベイズ信奉者から、ベイズ論者を採用したGAFA(Google等)が成長したと教わった。
迷惑メールのフィルタリングとか雑音の除去とか日常的に役立っているというぞ。
610:132人目の素数さん
20/05/21 13:04:49 hAZkHjNF.net
>普通の統計学の検定なら理論的に根拠のある数字、推論しか使わない。
>計算は大変だけど。
普通の統計学こそ、無理やり既知の分布に当てはめようとするんだよね。
MCMCの方の方が応用が広い。
611:132人目の素数さん
20/05/21 13:12:59.01 hAZkHjNF.net
プロ野球選手の打率は?と問われたら選手次第で異なる、と誰でもわかるのに
確定不能の平均値が存在していると妄想して計算を始めるのが古典主義統計。
つまり、値は存在するけど確定できないという信仰の世界。
昨今の新コロナでいえば、PCRの検査の感度・特異度が一定と考えるのが古典主義。
プロ野球選手の打率と同じでそんなのは場面場面で変化するよ、と考えて計算するのがベイズ。
612:132人目の素数さん
20/05/21 13:16:04.83 EdpRqUGW.net
>>576
もちろん推定の有力な方法であるにせよ、元の仮定に何の根拠もないわけだからそれから得られる結論には論理的根拠はない、ないが、数学的に伝統的な手法で与えるた結論と大差ない事がなんらかの保証があるなら、有力になる。
それが論理的に“大差ない結論が得られる”事が示されてるなら単なる計算手法に過ぎないし、示されていなくても経験的に“よい結果ぎ得られる事が多い”ならそのジャンルではそこそこ信頼するに値するんだろう。
しかしなんらかのモデルでは答えが一意に定まらず、事前分布の選び方により大きく答えが違ってしまう場合があっても不思議はないし、そのような場合ではやはり、“ではどう計算するのが正しいかのか”の論証を待たなければ信頼するのは危険になる。
613:132人目の素数さん
20/05/21 13:19:12.39 hAZkHjNF.net
古典的(頻度主義)統計信者って、この計算はどうやるんだ?
俺は乱数発生させて計算できるけど、
そればベイズなのかどうかは知らんが、条件付き確率なのでベイズなんだろうな。
(開業医スレに投稿したけど、回答できるやつは0)
COVID19の潜伏期間の論文
URLリンク(www.nejm.org)
結論は
#--- incubation period ---
# from Li et al NEJM 2020
# lognormal mean = 5.2
ln.par1 = 1.434065
ln.par2 = 0.6612
ある開業医が新型コロナ肺炎に罹患したとする。
行動調査によって発症前にキャバクラに行っており接客したキャバ嬢が開業医発症の2日後に発症していたことがわかった。
キャバ嬢は開業医から移されたと主張して1億円の賠償を求めている。
潜伏期間には幅がありキャバ嬢から移された可能性もあると主張してその確率を計算して賠償金を値切りたい。
いくら値切れるか計算せよ。
614:132人目の素数さん
20/05/21 13:31:57 3Y6HuNza.net
>>580
潜伏期間なんて数学的に決定できるハズないやん?
数学がやるのは例えば感染日と実際
615:発症した日が確定できるような症例がある程度以上あって、それが従うと病理学的に信頼できる分布の族があって、その中からデータに最も“沿う”分布を選び出すことしかできない。 それは何件も実際の患者のウイルス量の統計をとったり、ウイルスが体内でどのように増えていくのかの病理学的研究データがあって初めて可能になる。
616:132人目の素数さん
20/05/21 17:20:41 Du+rgnHD.net
>>571
よく理解できていないので質問ですけど
事前分布とは具体的に何の分布ですか?
基本再生算数の推定値の分布?
実行再生算数の推定値の分布?
実行再生算数の事前分布は基本再生算数の分布としたらいいのかなと思いますけど
617:132人目の素数さん
20/05/21 17:26:10 BjgAHZWs.net
まぁこのスレは用語がめちゃくちゃだからなぁ。
618:132人目の素数さん
20/05/21 17:58:56 hAZkHjNF.net
モデル前提での計算できないアホ発見!
619:132人目の素数さん
20/05/21 18:22:49 hAZkHjNF.net
潜伏期は病原体と罹患者のパワーバランスで決まるだろうから
定数でなくてばらつきはあると思うね。
620:132人目の素数さん
20/05/21 18:25:39 8+K/mYXQ.net
>>572
>隠蔽・改竄・破棄する安倍とは大違い。
安倍ちゃんがやってるわけじゃないだろ。
指示もされてねーのに、官僚がやってんだよ。
そんなこともわからんようでは、あんたの解析もあてにならんな。
621:132人目の素数さん
20/05/21 18:26:26 hAZkHjNF.net
>>582
西浦のソースだと Rt ~ normal(2.4 ,2)
622:132人目の素数さん
20/05/21 18:28:21.45 hAZkHjNF.net
>>586
安倍じゃなければ官僚もまともだったんじゃねえの?
安倍らの集団に組み込まれると東大卒も馬鹿になるようだぞ。
623:132人目の素数さん
20/05/21 18:31:24.22 8+K/mYXQ.net
>>581
その通り。
結局、そういう本質的なデータや理論抜きでは、ベイズ推定やったって
限界があるし、結果の説得力もない。
まあ、適用限界ってものがあるのは何やっても同じだけど。
624:132人目の素数さん
20/05/21 18:32:55.80 8+K/mYXQ.net
>>588
>安倍らの集団に組み込まれると東大卒も馬鹿になるようだぞ。
統計的に確認してみれば?ベイズ推定でもっともらしい結果が出るんじゃね?w
625:132人目の素数さん
20/05/21 18:33:59.08 hAZkHjNF.net
>>590
今は2/2かなw
加藤と西村
626:132人目の素数さん
20/05/21 18:40:02 hAZkHjNF.net
>>590
馬鹿になる事後確率分布はこんな結果になりました。
URLリンク(i.imgur.com)
627:132人目の素数さん
20/05/21 18:41:26 hAZkHjNF.net
95% CI は 0.5005265 1
628:132人目の素数さん
20/05/21 18:46:18 hAZkHjNF.net
>>592
ちなみに事前分布は一様分布に設定。
629:132人目の素数さん
20/05/21 18:53:16.25 hAZkHjNF.net
結局、統計ってこういう道楽なんだよなぁ。
630:132人目の素数さん
20/05/21 19:01:50.90 hAZkHjNF.net
>>581
いやウイルスの振る舞いも素粒子の振る舞いもばらつきがあるんじゃないの?
存在も位置も確率的にしかわからない、という議論になると思う。
631:132人目の素数さん
20/05/21 21:14:17 hAZkHjNF.net
>>571
最初の2つでは頑強と言えそう。
平均身長のたとえだと
事前分布に1~2mを選んでも1~10mを選んでも同様の結果だが、0~1mを選ぶと現実離れした結果が返ってくるという感じだな。
632:132人目の素数さん
20/05/21 21:27:14 hAZkHjNF.net
次のおもちゃ
しばらく、これで遊べそう。
臨床所見からロジスティック回帰でCOVID19の確率を出すペーパーがでるだろうなと思っていた。
Real-time tracking of self-reported symptoms to predict potential COVID-19
URLリンク(www.nature.com)
633:132人目の素数さん
20/05/22 01:26:24 MSJJjK3u.net
>>591
馬鹿の定義は?単なるお前の主観じゃねーかw
ベイズ統計にのめり込むと馬鹿になる事後確率分布でも求めてろ。
634:132人目の素数さん
20/05/22 04:53:19 C0tPqEF8.net
こういうのも興味ある人多い?感染してからの日数とPCR陰性になる確率の関係。
URLリンク(twitter.com)
(deleted an unsolicited ad)
635:132人目の素数さん
20/05/22 05:39:46 s9txG4+B.net
各国のロックダウンの度合いを数値化してるところ。色々と分析に使えるかも。
URLリンク(ourworldindata.org)
636:132人目の素数さん
20/05/22 08:35:38 DQesskhT.net
>>599
あれ3/3になったのか。
それだと、95%CrIは0.5559329 1
事前分布にはJeffereysで計算
637:132人目の素数さん
20/05/22 09:06:15 DQesskhT.net
>>600
ありがとうございます。
おねーちゃんと濃厚接触したあとは、何日目に検査したらいいかの参考になりました。
638:132人目の素数さん
20/05/22 09:49:33 DQesskhT.net
>>600
論文を検索してみた、この論文からのグラフのよう。
Variation in False-Negative Rate of Reverse Transcriptase PolymeraseChain Reaction?Based SARS-CoV-2 Tests by Time Since Exposure
URLリンク(www.acpjournals.org)
639:132人目の素数さん
20/05/22 10:18:18 DQesskhT.net
Measurements: A Bayesian hierarchical model was fitted to estimate
the false-negative rate by day since exposure and symptom
onset.
とのことで、
こんな、ありふれたベイズ階層モデル
x[j,t] ~ Binomial(n[j,t],p[j,t])
logit(p[j,t]) = βj + β*1log(t) + β2*log(t)^2 + β3*(t)^3
βj ~ Normal(β0,σ2)
640:132人目の素数さん
20/05/22 10:36:46 DQesskhT.net
Rとstanのコードが公表されているので、遊べそう。
URLリンク(github.com)
641:132人目の素数さん
20/05/22 17:38:12 MSJJjK3u.net
>>602
1/1だよ。あんただけw
642:132人目の素数さん
20/05/22 19:01:13 DQesskhT.net
>>607
信頼区間出せない馬鹿発見!
643:132人目の素数さん
20/05/22 19:09:59 xdbfxKAO.net
このスレででてる信頼区間なんかほとんど統計の検定試験では出てこない俺様信頼区間だけどな。
信頼区間の定義ちゃんと言える奴の方が少ないだろ。
644:132人目の素数さん
20/05/22 19:11:40 DQesskhT.net
1/1でも信頼区間を出せちゃうのがベイズ
645:132人目の素数さん
20/05/22 19:13:01 DQesskhT.net
>>609
ベイズでは信用区間と呼んで信頼区間と区別する人もいるね。
CIでなくてCrIという記載も目にする。
646:132人目の素数さん
20/05/22 19:20:12 DQesskhT.net
ベイズではconfidence interval でなくてcredibility interval
647:132人目の素数さん
20/05/22 23:34:07 MSJJjK3u.net
>>612
あんたの独占スレになったな。1/1達成、おめでとうw
648:132人目の素数さん
20/05/23 06:44:49 COZ69QMb.net
bootstrap使うと大抵の数値の信頼区間は出せるけど1/1には無理だな。
649:132人目の素数さん
20/05/23 15:08:38 COZ69QMb.net
JAGSを使って1/1のときの95% Credibility Intervalを求めるスクリプト
事前分布はJeffereys
library(rjags)
data=list(x=1,n=1)
cat('
model{
x ~ dbin(p,n) # binomial distribution
p ~ dbeta(0.5,0.5) # Jeffereys prior
}',file='tmp.txt')
jagsModel=jags.model('tmp.txt',data=data,n.chains=4)
update(jagsModel)
codaSamples=coda.samples(jagsModel,n.iter=1e5,var='p')
gelman.plot(codaSamples) # 収束を確認
js=as.data.frame(as.matrix(codaSamples))
HDInterval::hdi(js$p) # 95% Highest Densty Interval
# 既存のパッケージで確認。
HDInterval::hdi(qbeta,shape1=0.5+1,shape2=0.5)
binom::binom.bayes(1,1)
650:132人目の素数さん
20/05/23 17:34:11 COZ69QMb.net
エクセルのツールをCDCが公開しているね
651:。 https://www.cdc.gov/coronavirus/2019-ncov/hcp/COVIDSurge.html COVID-19Surge is a spreadsheet-based tool that hospital administrators and public health officials can use to estimate the surge in demand for hospital-based services during the COVID-19 pandemic. A user of COVID-19Surge can produce estimates of the number of COVID-19 patients that need to be hospitalized, the number requiring ICU care, and the number requiring ventilator support. The user can then compare those estimates with hospital capacity, using either existing capacity or estimates of expanded capacity. With COVID-19Surge, users define the population in the hospital “catchment area” or local jurisdiction. The user also enters the number of cases to date, and the available hospital resources (non-ICU beds, ICU beds, and mechanical ventilators). Users can assess up to three community mitigation strategies simultaneously and compare the impacts on hospital resources versus a “no intervention” scenario.
652:132人目の素数さん
20/05/24 08:44:40 6T3JvGbL.net
@kazu_fujisawa
西浦先生が一番の功労者だというのは僕も同意見だな。あと、細かいこと言うと、
あの限られたデータしかない中で、8割削減なら1ヶ月で収束、接触6-7割削減なら2ヶ月で収束、という予測精度もお見事としか言いようがない。
653:132人目の素数さん
20/05/24 10:47:51 uCyuaPog.net
アレは単に再生産数の推定値から出しただけやろ。
654:132人目の素数さん
20/05/26 15:13:08 SaUF2oVL.net
わかった後からだと
「簡単じゃん!」とか言えるけど
先んじて発表した西浦先生は
すごくまともな研究者だと思います。
655:132人目の素数さん
20/05/26 16:32:28 +yxrXOhy.net
中国・武漢全域で行われた新型コロナウイルスのPCR検査で、189人が無症状の感染者と確認されました。
武漢では35日ぶりに新たな感染者が確認されたため、14日から「10日間大戦争」と銘打ち、延べ900万人にPCR検査を行いました。中国メディアによりますと、そのうち657万人の結果が出て、189人が無症状の感染者でした。
10万人のうち2.87人が無症状感染者の計算になるとしています。中国のSNSには、検査人数のあまりの多さに看護師が泣き叫ぶ動画が投稿されていて、
一日の検査能力である最大10万件を大幅に超えた検査の精度を疑問視する声もあります。10日間ですべての検査が終わらなかったので、検査は26日午後も続いています。
[2020/05/26 13:22]
URLリンク(news.tv-asahi.co.jp)
URLリンク(news.tv-asahi.co.jp)
656:132人目の素数さん
20/05/26 16:47:55.61 +yxrXOhy.net
189/6570000は
有病率、感度、特異度の事前分布はどうするかな?
有病率:一様分布
感度:最頻値0.6標準偏差0.1のベータ分布
特異度:最頻値0.9標準偏差0.05のベータ分布
として検査陽性数は有病率*感度+(1-有病率)*(1-特異度)の確率に従う二項分布
でいいか?
657:132人目の素数さん
20/05/26 16:50:21.89 +yxrXOhy.net
>>618
再生産数から収束に至るまでの期間の計算法って公開されてたっけ?
658:132人目の素数さん
20/05/26 18:11:34 5HIYV6Gm.net
>>622 それは簡単に計算できるだろ?逆は難しくて、それが西浦先生の功績だと思うけど。
660:132人目の素数さん
20/05/26 18:34:15 aYF++qy3.net
>>622
いっぱんに再生産数Rの伝染病が収束を始める免疫の比率は1-1/R。
R=2.5なら免疫獲得者が1-1/2.5=60%になれば拡大はしない。
なので60%になれば平衡状態になり、最低でもそれ以上減らさないとダメなのは明らか。
集団免疫の話読んだ事ある人間なら常識。
オレみにわかではあるが。
感染率が70%減、80%減になったとき、どれくらいの速度で落ちていくかもsirでだいたいわかる。
661:132人目の素数さん
20/05/26 21:08:44.19 hVGZ6ofy.net
え? >>617って皮肉じゃないの?w
西浦さんの8割削減って言葉がメディアに乗るころには拡大再生産数は
1を切ってたんだよね(4/1頃)。拡大再生産数が2を越えて高止まりして
たのは3/15-3/25頃で、そこから1週間ほどで急落して1を切ってんだよね。
東京、大阪で自粛が叫ばれ、危機感がつのってたころだ。
662:132人目の素数さん
20/05/26 21:10:56.84 hVGZ6ofy.net
×拡大再生産数
○実効再生産数
663:132人目の素数さん
20/05/26 21:46:56 aYF++qy3.net
>>625
それは今でも良くわかってないだろ。
何せ4月の初め頃って検査リソースの限界で東京とか陽性率が8割に近かった、もうほとんど陽性確定の人しか検査してなかった頃。
この“認知されたケース(confirmed case”となったケースのピークと実際の感染者数のピークは当然ずれてる。
実際の東京の罹患者は8万人を超えてるらしいので、相当数が検査されずに見過ごされてる。
おそらく見過ごされた多くのケースは陽性者数がピークを迎えた(陽性率が8割ぐらいあった)4/15前後に発症したケースだろうけど、それは明らかにconfirmed casesのピークより遅い。
664:132人目の素数さん
20/05/27 00:41:21 SJ9C7hro.net
>>620
5~10人の検体を混ぜて検査して、陽性が出たロットだけ全部検査してるらしい。
URLリンク(www.sankei.com)
陽性はほとんどいないから、1日に50~100万人分検査できる。
665:132人目の素数さん
20/05/27 00:42:18.53 VNGePIH1.net
>>627
4月の初め頃の検査対象はその1週間前に感染してんだから、
まさに専門家委員会が示したconfirmed casesの感染者数の
ピークの頃だよ。
666:132人目の素数さん
20/05/27 01:15:53.98 sG8aLkL9.net
>>629
confermed casesのピークはもっと遅い4/15前後だよ。
その前と後に二つの最大のピークがある。
いずれにせよ、検査拒否の陽性率の最大がそのあたりにあって、どのくらいの見逃しがどのくらいあったのか科学的に推し量る方法などない。
その当時どんなコールセンターへの相談があり、どの程度怪しいケースを弾いていたのかなどコールセンターの資料をツブサに調べていくしかない。
そんなもんここで議論するような話ではない永遠の水かけ論にしかならない。
667:132人目の素数さん
20/05/27 04:32:30.99 DONHjyrT.net
>>624
収束する時期は再生産数だけじゃでは計算できないのではという疑問。
668:132人目の素数さん
20/05/27 07:13:32.08 DONHjyrT.net
>>628
有病率を10万分の3として、何人の検体を混ぜるのが一番効率がいいんだろ?
10万を3でわった3万3千人くらいかな?
669:132人目の素数さん
20/05/27 08:58:32.23 olFI7/IU.net
>>632
n/k+n/k(1-(1-p)^k)kを最小にするkだから、k=2
670:Productlog(-0.5√-log(1-p))/log(1-p)だね。 p=3/100000を代入してk=183。 ちなみにk=10となるのはp=0.0111の時。そんなに陽性率が高いと見積もったわけでは無いだろうから、10ぐらいが混ぜて検査の限界なのだろう。 もっと究極的に検査回数を少なくすると>>419 の方法に行き着くと思う。
671:132人目の素数さん
20/05/27 09:20:13.89 DONHjyrT.net
>>633
早速のレスありがとうございました。
672:132人目の素数さん
20/05/27 12:14:38 VNGePIH1.net
>>630
だ、か、ら、検査結果の判明した日付では4/15頃がピークだけど、検査の
待ち時間や発症までの潜伏期間を含めると、感染したのはその2週間以上
前になるっていうのが、専門家委員会の見積もり。
URLリンク(www.mhlw.go.jp)
673:132人目の素数さん
20/05/27 12:23:58 cpzgnD1W.net
>>635
confirmed cases の罹患→発症の平均時間と
all cases の罹患→発症の平均時間にはズレが出る。
confirmed cases のそれが2週間以上でそのピークが4月より前でも
all cases のそれはもっと小さいのでそのピークはもっと後ろになる。
674:132人目の素数さん
20/05/27 12:48:12.43 0C2sk63u.net
具体例で実験してみればいい。
山がある曲線かく。
山をy軸方向に0.7倍したもの(軽症段階で相談した人)と0.3倍したもの(重篤化して認知されたもの)を作り、後者はx軸反転する。
前者は右に1週間、後者は左手に一週間ずらす。
この二つの曲線の差がその日に検査要請がかかった件数。
しかし検査リソースには限界があるのでx軸より下の重症者は全部検査されたとして、そこから一定幅より上の部分は検査拒否されたと考える、つまりy軸より下の部分を検査リソースの限界分だけ上に平行移動したものより下が実際に検査された軽症者の人数。
もとまった検査された軽症者の曲線を改めて一週間前にずらし、重症者のカステラの曲線と足してみる、コレがconfirmed casesに限った推定発症日の曲線。
元の山とできた山のピーク比べてみる。
ズレてるから。
675:132人目の素数さん
20/05/27 13:01:39.14 VNGePIH1.net
>>636
だ、か、ら、>>627で検査が滞って隠れ感染者が相対的に増えてたと
君がいう4月上旬の検査対象は3月下旬の感染者なんだから、全感染
者数のピーク時期はconfirmed casesの4/1頃のピークの前にこそなれ、
後ろにはならんでしょ?
676:132人目の素数さん
20/05/27 13:04:06.21 Rn3481n9.net
>>637
なるよ。
>>635の実験やってみた?
必ずconfirmed casesのピークはall casesのピークより前にズレる。
つまりall casesのピークはconfirmed casesのピークより後ろにズレる。
677:132人目の素数さん
20/05/27 14:10:34 VNGePIH1.net
>>637
前提に問題がありすぎ。検査数は逐次増えてて、感染者のピーク前後では
ほぼ検査数に比例して陽性者数も増えてる(陽性率は十数%前後で大きな
変化はない)。キャパ一定で推移してるわけではない。
678:132人目の素数さん
20/05/27 14:36:45.45 m+sqB0p7.net
>>640
前にも書いたけどその話をしだすとココでは絶対答えが出ない水掛け論にしかならない。
結局症状が出てても検査を断られる4月頭時点での検査体制では、実際どれくらいのズレが発生したのかはハッキリとは言えない。
それは後年の調査である程度はわかるかもしれないけど。
何せ1日数万件もあった相談と検査拒否の実態を掴むのは容易ではない。
いずれにせよ、実際の感染のピークが
confirmed casesのピーク日
-conformed cases内の(確定日-推定罹患日)の平均
より後ろにズレるのは確実。
何故ならどの程度の検査拒否があったにせよ、この相談日-罹患日の値が小さいグループ(症状の軽いグループ)の方が検査拒否された割合が有意に高いので。
まぁ実際confirmed casesのピーク日-(xxx)
のxxxに入れるべき数値は2週間よりはずっと小さい。
679:132人目の素数さん
20/05/27 18:01:10.48 DONHjyrT.net
職場で最初に発症した人が感染源と決めつけてはならないことを
数学的には確認。
あるクリニックで院長が新コロナを発症。
翌日2人の看護師が発症、その次の日に3人の看護師が発症。
各人が最初に感染していた確率を計算せよ。
こういう計算ができると、誰が移したとか責めたりせずにすむ。
(春節ウェルカムした安倍が悪い、で職員の心が一つになるw
計算に必要な数値は
#--- incubation period ---
# URLリンク(www.nejm.org)
# Li et al NEJM 2020
# 潜伏期間は対数正規分布でパラメータは
ln_par1 = 1.434065
ln_par2 = 0.6612
680:132人目の素数さん
20/05/27 18:03:06.39 DONHjyrT.net
RとStanでやってみた。
> data.frame(p=round(sapply(1:n,fi),2))
p
1 0.26
2 0.18
3 0.18
4 0.13
5 0.13
6 0.13
コードはここ
スレリンク(hosp板:199番)
681:132人目の素数さん
20/05/27 18:05:18.29 1E963DQR.net
>>632
ウイルスを検出できる最低限度の濃度とかあるんじゃないかな
制約付きで何人分を混ぜるかを最大化する問題になると思う
682:132人目の素数さん
20/05/27 19:07:41.79 VNGePIH1.net
>>641
しつこいな。どこからそんな式が出てくるんだよw
現状で分かってる事実から推測して全感染者数の
ピークが後ろにくる理由はないよ。むしろ前にくるほうが自然。
683:132人目の素数さん
20/05/27 19:13:02 VNGePIH1.net
>>642
発症前から感染力があり、潜伏期間にも幅があるんだから、
その情報だけでだれが感染源かなんて断定できるわけない
のは当たり前だろ。それでも最初の発症者が一番怪しい
ってことに変わりはない。
常識で考えろ。
684:132人目の素数さん
20/05/27 19:21:49 v/kXgPR4.net
>>645
>>637の実験やってみた?
685:132人目の素数さん
20/05/27 19:34:58.61 DONHjyrT.net
>>646
院長と3日めの発症した看護師とどれくらい確率が違うかは
常識では出せないだろ。
こういう計算には数値化が必要。
ある開業医が新型コロナ肺炎に罹患したとする。
行動調査によって発症前にキャバクラに行っており接客したキャバ嬢が開業医発症の2日後に発症していたことがわかった。
キャバ嬢は開業医から移されたと主張して1億円の賠償を求めている。
潜伏期間には幅がありキャバ嬢から移された可能性もあると主張してその確率を計算して賠償金を値切りたい。
いくら値切れるか計算せよ。
686:132人目の素数さん
20/05/27 20:06:50 olFI7/IU.net
>>642
Mathematicaだと
cond = Distributed[{a, b, c, d, e, f},ProductDistribution[{LogNormalDistribution[1.434065, 0.6612], 6}]];
NProbability[a > Max[b - 1, c - 1, d - 2, e - 2, f - 2], cond]
NProbability[b - 1 > Max[a, c - 1, d - 2, e - 2, f - 2], cond]
NProbability[d - 2 > Max[a, b - 1, c - 1, e - 2, f - 2], cond]
>0.257392
>0.178947
>0.128264
687:132人目の素数さん
20/05/27 20:50:23 DONHjyrT.net
>>649
レスありがとうございます。
有効数字2桁で同じ結果なので自分のコードの検証になりました。
688:132人目の素数さん
20/05/28 18:53:42 9QoKXLHk.net
中国湖北省武漢市(人口約1100万人)が今月中旬から全市民を対象に実施していたPCR検査(遺伝子検査)がおおむね終了した。
地元紙「湖北日報」(電子版)によると、直近に検査を済ませた人や乳児を除く900万人以上から検体を採取。
武漢では1日に100万人以上の検査が可能で、24日までに約650万人の検査が終わり、無症状感染者が218人見つかった。
事前分布に有病率は一様分布、感度は40-60%、特異度は90-100%のベータ分布を設定してStanでMCMCしてみた。
mean se_mean sd 2.5% 50% 97.5% n_eff Rhat
spc 0.999977 0.000000 0.000008 0.999965 0.999976 0.999994 12593 1.00001
sen 0.452612 0.002116 0.220226 0.073638 0.444200 0.871391 10834 1.00000
prev 0.000041 0.000001 0.000118 0.000001 0.000023 0.000183 8206 1.00004
p 0.000034 0.000000 0.000002 0.000030 0.000034 0.000039 36412 0.99998
spc:特異度、sen:感度 prev:有病率 p:陽性率
900万人での陽性者数の予想
最頻値 306.15
95%信頼区間
lower upper
266.46 346.70
1100万人のうちの有病者数予想
> summary(ms$prev*11e6) ; MODE(ms$prev*11e6)[1] ; hdi(ms$prev*11e6)[1:2]
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 108 251 449 483 137796
x
179.24
lower upper
0.020213 1360.523395
689:132人目の素数さん
20/05/29 17:18:00.15 OOwyRgpM.net
岩田健太郎 Kentaro Iwata
@georgebest1969
日本が第一波をかなりうまく乗り切ろうとしているのだけど、最大の功労者の一人は西浦博先生だよ。それは絶対に間違いない。
午後5:44 2020年5月20日
690:132人目の素数さん
20/05/29 17:34:00 2wb0CO5Y.net
>>652
俺は志村けんとフィリピンパブ親父だと思う。
691:132人目の素数さん
20/05/29 19:29:59 7LO8JYfk.net
政府:「接触8割減を目指して下さい。」
マスコミ:「今朝の○○駅の映像をご覧下さい。人出8割減にはほど遠いですね...」
政府広報:
「接触8割減には、(1-x)^2=1-0.8 → x=0.552786 だから 人出55%減でいいんだけど、
馬○なマスコミが、勝手に目標を上げてくれてる。あえて指摘する必要ないよね...」
692:132人目の素数さん
20/05/29 19:53:22.15 iNWKoruo.net
>>653
藤浪も仲間に入れてやって。
岡江久美子も5月10日前後の感染急減には貢献したかも。
しかし、岩田健太郎に擁護されてもむしろ逆効果でお気の毒>8割おじさん
693:132人目の素数さん
20/05/29 19:56:02.55 iNWKoruo.net
>>648
賠償金ゼロまで値切れる。
俺じゃない可能性が十分あるのならそれでいい。
期待値で賠償金を計算されちゃかなわん。
694:132人目の素数さん
20/05/29 21:32:01 2wb0CO5Y.net
>>656
期待値を求めよ、では食いつきが悪いと思って金の問題にアレンジして開業医スレに書いてみたんだが、
答られる開業医は0だったよ。
695:132人目の素数さん
20/05/29 21:33:11 2wb0CO5Y.net
>>655
石田と志村の順が逆だったら、自粛は捗らなかったのではと思うな。
696:132人目の素数さん
20/05/29 21:44:18 2wb0CO5Y.net
潜伏期間が従うとされる対数正規分布(パラメータは、ln_par1 = 1.434065 ln_par2 = 0.6612)で乱数発生させて
その差が2以上になる割合を求めれば数値解は出せるけど、これって解析解は可能だのだろうか?
パラメータが同じ対数正規分布の差の分布は数式で表せるのだろうか?引き算したら0になってしまう気がする。
697:132人目の素数さん
20/05/29 21:51:25.78 2wb0CO5Y.net
>>654
感染の起こりうる濃厚接触するときの人数って期待値はどれくらいで、どんな分布に従うんだろうね?
698:132人目の素数さん
20/05/30 10:10:43.57 oTxR9Gdg.net
>>659(自己解決)
mu = 1.434065
sg = 0.6612
pdf1 <- function(x) dlnorm(x,mu,sg)
pdf2 <- function(y) dlnorm(y,mu,sg)
f <- function(x,y) pdf1(x+y)*pdf2(y)
vf=Vectorize(f,vectorize.args = 'y')
pdf <- function(x) integrate(function(y) vf(x,y),-Inf,Inf)$value
pdf=Vectorize(pdf)
curve(pdf(x),-30,30)
699:132人目の素数さん
20/06/05 09:35:47.94 a3w5V/C1.net
COVID19関連での分布とそのパラメータ
Distributional fits to key COVID-19 distributions.
URLリンク(i.imgur.com)
URLリンク(www.medrxiv.org)