データ科学 多重検定 2 - 関西学院大学tohhiro/datascience/...benjamini-hochberg法 1...

27
データ科学 多重検定 2 mul%ple test False Discovery Rate 博幸

Upload: others

Post on 31-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

データ科学多重検定 2

mul%pletestFalseDiscoveryRate

藤 博幸

Page 2: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

前回の復習1多くの検定を繰り返す時には、単純に個々の検定を繰り返すだけでは不十分5%有意水準ということは,1000回検定を繰り返すと,50回くらいは帰無仮説が正しいのに、間違って棄却されてすまうじちがあるということex)1万個の遺伝子について、正常細胞とガン細胞で、それぞれの遺伝子の発現に差があるかどうかを検定

Page 3: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

正常細胞 ガン細胞

遺伝子1 1.4 3.1

遺伝子2 4.5 1.5

… …. …

遺伝子3000 2.1 2.3

正常細胞 ガン細胞

遺伝子1 1.2 2.7

遺伝子2 4.5 1.5

… …. …

遺伝子3000 2.1 2.3

正常細胞 ガン細胞

遺伝子1 1.8 2.3

遺伝子2 4.5 1.5

… …. …

遺伝子3000 2.1 2.3

正常細胞 ガン細胞

遺伝子1 2.1 2.9

遺伝子2 4.9 1.5

… …. …

遺伝子3000 2.1 2.3

RNA-seqで発現量を5回計測

正常細胞 ガン細胞

遺伝子1 1.0 3.2

遺伝子2 5.4 1.9

… …

遺伝子3000 2.1 2.3

Page 4: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

前回の復習2

FamilyWiseErrorRate で制御する

1)  Bonferroni法

2)  Holm法

Page 5: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

TN(TrueNega*ve)帰無仮説が正しく、棄却されない

FP(FalsePosi%ve)帰無仮説が正しいのに棄却される

FWER:FP/(FP+TN)を制御

Page 6: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

FWERは厳しすぎる

FP(帰無仮説が正しいのみ、あやまって帰無仮説を棄却すること;正常細胞とガン細胞で、遺伝子Aの発現に差がないのに、棄却してしまうこと)を抑えようとしているが、そのためTP(帰無仮説が間違っていて、帰無仮説が正しく棄却されること;正常細胞とガン細胞で、遺伝子Aの発現に差があり、帰無仮説が棄却されること)であっても棄却されにくい----à発現に差のある遺伝子を検出しにくい   (お金と時間がかかっているのに)

Page 7: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

FDR(FalseDiscoveryRate)

FPが混じっても良いので、TPを増やす。ただし、FPがどれだけ含めれているか(FDR)を推定して、それを新たな基準とするTPをどの程度許可するかの基準を、有意水準のp-値と区別するため、q-値とよぶp-値の分布に仮定を設けてFDRを計算

Page 8: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

FDR=FP/(FP+TP)TP=trueposi%ve:対立仮説が正しく、帰無仮説が棄却FP=falseposi%ve:帰無仮説が正しいのに、帰無仮説が棄却

Page 9: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法1m回の多重検定の場合(1)  p-valueを昇順に並べる(p1<p2<…<pm)(2)  i=mとする(3)  pi<=α×i/mを満たす時、p1~piを有意とする。  そうでなければ、iを i−1にして,上の条件  を確認する。※i=1になっても、条件を満たさない場合は有意なものはないとする。※FWERのHolm法がp1から順次p-valueが大きい方に向かうのに対し、BH法はpmから出発して,p-valueが小さい方に向かうことに注意  

Page 10: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法2p1<p2<…<pi…<pmとするi番目(pi)を検討する。αをfalseposi%veを含む割合とする.m×αは、m回の検定中falseposi%veの期待回数i/mは,m回の検定中i個の占める割合すると,m×α×i/m=α×iはi回の検定の中でfalseposi%veを起こす回数(=棄却されたのに本当は帰無仮説が正しいもの)の期待値FPの上限としてα×iを考える

Page 11: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法 3今、pi以下のp-valueで棄却するするとposi%veとなる検定がi個あるこのi個にはtrueposi%veもfalseposi%veも含まれているとするとFP+TP=iFDR=FP/(FP+TP)=FP/i<α×i/i=αこのようにしてFDRをα以下になるよう制御できる。

Page 12: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法 4pi<=α×i/mを満たす時、p1~piを有意とするこの式を書き直すとpi×m/i<=αを満たす時、p1~piを有意とするqi=pi×m/iをp-valueに対して、q-valueとよぶ

Page 13: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法 5実際に行ってみよう

p-value

Gene1 0.21

Gene2 0.001

Gene3 0.1

Gene4 0.06

Gene5 0.005

p-value

Gene2 0.001

Gene5 0.005

Gene4 0.06

Gene3 0.1

Gene1 0.21

p-値のソート

h_ps://www.slideshare.net/an%plas%cs/dna-21259335より

Page 14: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法 6

p-value

Gene2 0.001

Gene5 0.005

Gene4 0.06

Gene3 0.1

Gene1 0.21

q-値への変換

q-value

0.001x(5/1) 0.005

0.005x(5/2) 0.00125

0.06x(5/3) 0.1

0.1x(5/4) 0.125

0.21x5/5 0.21

Page 15: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法 7

p-value

Gene2 0.001

Gene5 0.005

Gene4 0.06

Gene3 0.1

Gene1 0.21

q-value

0.001x(5/1) 0.005

0.005x(5/2) 0.00125

0.06x(5/3) 0.1

0.1x(5/4) 0.125

0.21x5/5 0.21

FDRの閾値を0.05としてp-valueの大きいものから順番に検討

<0.05

<0.05

>0.05

>0.05

>0.05

Gene2とGene5が有意

Page 16: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Rでやってみよう1Gene1~Gene5のp-valueをベクトルとして表現> pv <- c(0.21, 0.001, 0.1, 0.06, 0.005)

pvを昇順にソート> spv <- sort(pv)> spv[1] 0.001 0.005 0.060 0.100 0.210

q-valueを記憶させる空ベクトルを作成> qv <- c()

for文でq-valueに変換> for (i in 1:length(spv)) qv <- c(qv, spv[i]*length(spv)/i) > qv[1] 0.0050 0.0125 0.1000 0.1250 0.2100

前ページの表と同じ結果が得られたことを確認

Page 17: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Rでやってみよう2p.adjust関数を使ってみる

> p.adjust(pv, method="BH", n=length(pv))[1] 0.2100 0.0050 0.1250 0.1000 0.0125> p.adjust(pv, method="BH", n=length(pv)) < 0.05[1] FALSE TRUE FALSE FALSE TRUE

遺伝子の並び順のままで検定を行える

Page 18: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法の問題点1Benjamini-Hochberg法のキモは、q-valueの計算でqi=pi×m/iをp-valueに対して、q-valueとよぶ

piを基準とした時、その時のfalseposi%veの数がpi×mと仮定している点にある。piが一様分布していればこの仮定は正しい。帰無仮説が全て正しい場合(ex.10000個全ての遺伝子で正常細胞とガン細胞における発現量に差はない)、p-valueは一様分布する

Page 19: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

帰無仮説が全て正しい場合におけるp-valueの一様分布の確認

前回の多重検定でのfalseposi%ve生成と同じシミュレーションを実施

> N <- 10000 #サンプル数を10000> p.values <- double(N) # p-valueを格納するベクトル> for(i in 1:N) {+ x <- rnorm(10, mean=0, sd=1)+ y <- rnorm(10, mean=0, sd=1)+ p.values[i] <- t.test(x,y)$p.value+ }  #同じ正規分布から10こずつサンプルして平均値の差の検定#同じ分布からのサンプルなので差はないはず> hist(p.values)# p-valueのヒストグラム作成

Page 20: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

p-valueがほぼ一様分布に従っていることがわかる

Page 21: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

h_ps://sites.google.com/site/scriptocioinforma%cs/maikuroarei-guan-xi/fdr-zhi-yu-r

Benjamini-Hochberg法の問題点 2

Page 22: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

Benjamini-Hochberg法の問題点3実際には、差があるものが含まれるのでp-valueは0に近い方に偏った分布となる。

> N <- 5000> rm1 <- runif(N)*5> rm2 <- runif(N)*5> rs1 <- runif(N)*2> rs2 <- runif(N)*2> p.values <- double(N*2)> # 5000個は同じ分布からサンプリング> for (i in 1:N) { + x <- rnorm(10, mean=0, sd=1)+ y <- rnorm(10, mean=0, sd=1)+ p.values[i] <- t.test(x,y)$p.value+ }> # 残り5000個はランダムに生成した平均と標準偏差を持つ分布からサンプリング

> for (i in 1:N) {  + x <- rnorm(10, mean=rm1[i], sd=rs1[i])+ y <- rnorm(10, mean=rm2[i], sd=rs2[i])+ p.values[N+i] <- t.test(x,y)$p.value+ }> hist(p.values)

Page 23: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

p-valueの一様性は成立していないこの点についてはQ-value法やLocalFDR法などの改良があるが今回は説明を省く。

Page 24: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

帰無仮説の分布と対立仮説の分布の混合分布帰無仮説と対立仮説の密度比が各々π0:1-π0の比だったとする

h_ps://sites.google.com/site/scriptocioinforma%cs/maikuroarei-guan-xi/fdr-zhi-yu-r 

h_ps://www.slideshare.net/yuifu/fdr-kashiwar-3  の記述だともう少し複雑

Page 25: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

ヒストグラムのどの場所で高さをとるかという問題を考えたのがQ-value。Q-valueでは、高さをとる場所をγ、γから推測されるπ0の値をπ0(γ)としてプロットし、このデータを自然スプライン関数で回帰このスプライン関数をγ=0まで外推した値をπ0の予測値とする。p-valueのアナロジーとして使われている小文字のq-valueとは違って、これはQ−valueという手法名である点に注意Q−valueはこのπ0をBH法のq-valueにかける。それ以外の計算手順はBH法と同じなので、先にこのπ0の予測値をかけておいたp-valueをBH法に適用すれば、Q-vakueを求める事ができるRのパッケージ qvalueをインストールするとQ-valueを計算できる

Page 26: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

h_p://strimmerlab.org/notes/fdr.html

Page 27: データ科学 多重検定 2 - 関西学院大学tohhiro/dataScience/...Benjamini-Hochberg法 1 m回の多重検定の場合 (1) p-valueを昇順に並べる (p 1 < p 2 < …< p

h_ps://www.slideshare.net/an%plas%cs/dna-21259335h_ps://www.slideshare.net/yuifu/fdr-kashiwar-3h_ps://sites.google.com/site/scriptocioinforma%cs/maikuroarei-guan-xi/fdr-zhi-yu-rh_p://d.hatena.ne.jp/hoxo_m/20120413/p1h_p://www.med.osaka-u.ac.jp/pub/kid/clinicaljournalclub1.html