この記事はまだ書きかけです.

はじめに

ここでは,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)),]
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS