第4章: ICAによるアーティファクト除去¶
第3章 — 前処理 — フィルタリングと再基準化からの続きです。
フィルタリングと再基準化は、広範囲で予測可能なノイズを扱います。独立成分分析(ICA)は、実際の脳信号と周波数が重なるアーティファクト — 主に瞬き、眼球運動、筋活動 — を扱います。これはMNE-PythonトラックのICAによるアーティファクト除去の章でコードとして取り組んでいるのと同じ問題です。
ICAを実行する¶
Process → Run ICA... は記録データを統計的に独立な成分へと分解します。アルゴリズムは選択可能で、FastICA、Infomax、PICARD のいずれもサポートされており、これはコードで mne.preprocessing.ICA() に指定できるのと同じアルゴリズムの選択肢に対応します。アルゴリズムとデータ量によって、数秒から数分程度かかります。
成分を眺める¶
ICAが完了したら、どの成分がアーティファクトで、どれが脳信号なのかを見分けるために、2つのプロットコマンドが役立ちます:
- Plot → Plot ICA Components は成分ごとの頭皮上のトポグラフィーを表示します。瞬きの成分は通常、前頭部の電極上にはっきりとした左右対称のパターンを示します。
- Plot → Plot ICA Sources は各成分の時間経過を並べて表示するので、大きくまばらなスパイクを目視できる瞬きと突き合わせたり、心拍のようなリズミカルなパターンを確認したりできます。
分類器に助けてもらう: ICLabel¶
すべての成分を目視で判断することは可能ですが、遅く、人によってばらつきが出ます。Process → Label ICs... は自動分類器 ICLabel をすべての成分に対して実行し、それぞれに Brain、Eye、Muscle、Heart、Line Noise、Channel Noise、Other のラベルと信頼度スコアを付けます。これにより「これは瞬きらしく見えるか」という判断が、記録データ間で一貫して閾値を設定できる数値に変わります。
アーティファクト成分を除去する¶
除外する成分を(目視、ICLabel、あるいはその両方で)決めたら、Process → Apply ICA はまさにそれらの成分の寄与だけを差し引き、クリーンな記録データを再構成します — コードでの ica.apply() と同じ「無視するのではなく除去する」というアプローチです。Process → Import/Export ICA... を使うと、フィットした分解を保存して別の記録データで再利用したり、逆に読み込んだりできます。
次へ: 第5章 — イベントとエポック化