Knockoff 変数によるFDR
- 資料はこれ(基本)とこれ(GWAS等への拡張)
- Rのパッケージはknockoffで、そのgithubがこちら
- 考え方の基本
- FDRをしたい
- Knockoff 変数を使う
- p個の説明変数があるときに、ある方法でp個のKnockoff 変数を設定する。このKnockoff変数は、p個の説明変数のそれぞれに対応する変数として定める
- Knockoff 変数は次のような変数である
- Knockoff 変数p個の相互関係は、オリジナルのp個の変数の相互関係と「同じ」である。同じ、というのは、分散共分散行列が同じという意味で「同じ相互関係」である
- あるKnockoff変数と、対応するオリジナル変数以外のオリジナル変数との関係は、「対応するオリジナル変数とそれ以外のオリジナル変数との関係」と同じである
- あるKnockoff変数と、対応するオリジナル変数との関係は、できるだけ「無関係」である
- このようなKnockoff 変数をどのようにして作成するか、はさておき(その説明はこちらに別掲)、このようなKnockoff 変数があったとき、従属変数と無関係な説明変数とその対応Knockoff 変数とは、どちらも従属変数と無関係であり、従属変数と関係のある説明変数の場合、オリジナルの方は従属変数と関係するが、Knockoff 変数の方は、オリジナル変数と「できるだけ無関係」に取られているわけであり、従属変数とは無関係である
- Knockoff 変数を用いたFDRのコントロール
- オリジナル変数とKnockoff 変数とを合わせて2p個の説明変数で多変量解析をすることを考える
- 無関係なオリジナル変数とそのKnockoff 変数とでは、どちらが「採択的に優先される」かは、等確率と期待される
- 関係のあるオリジナル変数とそのKnockoff 変数とでは、「オリジナルの方」が「採択的に優先される」はずである
- この関係を利用すると、2p個の変数に「採択ルール」を適用し、ある基準を越えたら採択することにする。ただし、オリジナル変数がその対応するKnockoff 変数より「優先」されている場合に限るとすると、結局、p個のオリジナル変数の(添え字の)どれかを採択していることになる
- ただし、このようにして採択された(オリジナル)変数の中には、「たまたま基準を超え」、かつ、「たまたまオリジナルの方が対応するKnockoff 変数より優先されていた」ものが含まれている
- どの(オリジナル)変数が、「たまたま採択された」のかは、不明だが、そのようにして採択される変数の個数は、だいたい合っている。なぜなら、変数の数をpから2pへと倍にして、その上で、「たまたまオリジナルが上という確率0.5」で選択してあるから
- ただし、この「たまたま」の個数はこれだけではわからない。しかしながら、Knockoff 変数が「採択ルール基準を越え」、それがオリジナル変数よりも優先度が高くなっているようなものがどれかはわかるし、その数は数えられる。このようなものの中には、稀に、「本当にオリジナル変数が意味のある変数である」こともあるかもしれないが、基本的には、このようになるのは、従属変数と関係のないオリジナル変数とそのKnockoff 変数のペアに限るし、「たまたまKnockoff の方がオリジナルよりも優先される確率は0.5」なので、この個数がFalse discoveryの個数と同じとみなせる
- したがって、「採択基準を超え、かつ、Knockoff 優先になっている個数」を「採択基準を超え、かつ、オリジナル優先になっている個数」で割った値が、FDR
- どんな「採択ルール・優先度」を使うか
- うまく使えるルール・優先度〜統計量にはある制約があるが、それはおいておいて
- たとえば、LASSOをやったときに、ペナルティの重み変数をどこまで小さくするとモデルに組み込まれるか、という値は、ここで言う「優先度」として使える
- また、Stepwise selectionをするときの、組み込まれる順番も優先度として使える