- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- バイオ・データ・マイニング/Rで独立成分分析する へ行く。
この記事はまだ書きかけです.
はじめに †
ここでは,Rを使って独立成分分析を行います.
準備 †
Rのインストールについては,次のページを見てください.
独立成分分析は,fastICAパッケージに含まれています. そこで,fastICAパッケージをインストールします. install.packagesコマンドを実行すると,パッケージをダウンロードするサーバーを聞かれますので,リストからJapanのどれかを選択します.
install.packages("fastICA") library(fastICA)
独立成分分析 †
独立成分分析 (Independent Component Analysis, ICA) は,多変量解析の一手法で,高次元の数値データを(独立に生起している)複数の成分に分解する手法です.
[math]n[/math] 個の信号源から発生した [math]n[/math] 個の [math]p[/math] 次元データ [math]s_1, \dots, s_n[/math] があり,観測した [math]m[/math] 個のデータ [math] x_1, \dots, x_m[/math] が次のような線形和で表されるとします. \[ \begin{array}{c@{}c@{}c} x_1 &=& a_{1,1} s_{1} + a_{1,2} s_{2} + \dots + a_{1,n} s_{n} \\ x_2 &=& a_{2,1} s_{1} + a_{2,2} s_{2} + \dots + a_{2,n} s_{n} \\ \vdots & & \\ x_m &=& a_{m,1} s_{1} + a_{m,2} s_{2} + \dots + a_{m,n} s_{n} \end{array} \]
これを [math]\mathbf{x} = A \mathbf{s}[/math] と表すと,[math]A[/math] の逆変換 [math]A^{-1}[/math] を使って [math]\mathbf{s} = A^{-1} \mathbf{x}[/math] と表すことができます. しかし,[math]A[/math] がわからないと [math]A^{-1}[/math] もわかりません. そこで,これを [math]W[/math] として,次のように表します. \[ \begin{array}{c@{}c@{}c} s_1 &=& w_{1,1} x_{1} + w_{1,2} x_{2} + \dots + w_{1,m} x_{m} \\ s_2 &=& w_{2,1} x_{1} + w_{2,2} x_{2} + \dots + w_{2,m} x_{m} \\ \vdots & & \\ s_n &=& w_{n,1} x_{1} + w_{n,2} x_{2} + \dots + w_{n,m} x_{m} \end{array} \]
独立成分分析は,観測した [math]m[/math] 個のデータ [math] x_1, \dots, x_m[/math] から [math]n[/math] 個の(独立な)信号源から発生した [math]n[/math] 個のデータ [math]s_1, \dots, s_n[/math] に復元する係数を求めます.
独立成分分析を行う †
標準で使えるirisデータセットに対して,主成分分析を行ってみましょう.
data(iris)
このデータセットは,アヤメの種類(Species)を花びらの長さ(Sepal.Length),幅(Lepal.Width),がくの長さ(Petal.Length),幅(Petal.Width)によって分類する問題です. 長さと幅は連続値,種類はsetosa, versicolor, virginicaのいずれかをとる離散値です.
このデータセットには,setosa, versicolor, virginicaという3種類のアヤメについて,それぞれ50個ずつ,合計150個のデータが含まれています. ランダムに10個のデータを選択して,見てみましょう.
iris[sort(sample(1:150,10)),]