欠損した値を推定する事をimputationという
欠損値に関する方法論について
古典的な統計学の方法
欠損値のメカニズムの分類 : MAR(Missing at random), MCAR(Missing completely at random), MNAR(Missing not at random)
対策
- そのまま
- 削除 : リストワイズ除去、ペアワイズ除去
- 補完 : 平均値代入、回帰代入、Hot-deck代入(似たデータから補完)、Cold-deck代入(同じデータの違う状況下でのデータから補完)、Average the available items, Last observation carried forward, Stochastic回帰代入
- 欠損メカニズムをモデル化
- 最近の方法 : Full Information maximum likelehood(FIML)、多重代入法
遺伝学的な方法
- referenceにするデータは、HapMapから手にいれるらしい(人種を気にする)
- LD(連鎖不平衡)ブロックで相関が高いSNPを参考に推定する
- MAF(マイナーアレル頻度)が合うように値を推定する(EMアルゴリズム)
- HMM(隠れマルコフモデル)を使うらしい
- 有名なソフトとして、IMPUTE1/2, BEAGLE, MACH, BIM-BAM, fastPHASE
transciptome研究での方法
- 最初は、データを削除、0/平均値を入れるなどしていたらしい
- referenceはStanford Microarray Databaseを利用した論文がある
- 遺伝学的な方法と同様に、相関が高い遺伝子の発現量を参考に推定する
- referenceを利用せず、データセット内で相関が高い遺伝子のデータを利用する場合が多い(この場合、ある程度のサンプルサイズが無いと相関が見れないはず)
- 推定したい遺伝子と類似する遺伝子を見つけるのにk近傍法が広く利用されている(kは10 - 20くらいのイメージ)
- 異なる実験条件での寄せ集めデータをreferenceにする中で、q個のクラスター(数10個くらい)に実験条件が分かれるとして、次元を削減して利用する場合が多い(クラスタリング手法がここで多用される)
- 手法の検証の仕方は、完全データにランダムに欠損値を発生させ、どれだけ適切な値を入れられるか、元データとのRMSE値で競う
- 定番手法がなさそうだが、Rパッケージは多い(kNNベースは引用が比較的多い)
[参考]