R演習 : 主成分分析

潜在的意味分析

テキストデータからBoW形式データへ

データを読み込んで中身を確認する.これは単なるテキストデータである.

テキストデータからコーパスを作成する.

各文章へのアクセスにはcontentを使う.

意味のない単語を削除する.大文字を小文字へ,数字を削除,ストップワードを削除など.

削除後の文章は以下のようになる.

BoW形式へのデータへ変換する.wordLengthsを指定することで単語の長さを制限できる.下記の場合は単語長が2~20のものに限定している.

中身を確認すると,各行(文章)における出現単語(列)の有無が0 or 1で与えられている.

2つ以上の文で出現する単語のみ取得することもoptionで可能.

特異値分解(SVD)による行列の近似

任意の実$n\times p$行列$X$は$X=UDV^{T}$のように分解が可能である.ここで,$D={\rm diag}(d_{1},\dots, d_{r}), d_{j} > 0, r={\rm rank}(X)$であり, $U^{T}U=V^{T}V=I$である.

特異値分解をR上で実行する.

例えば特異値$d_{j}$を取得するためには以下のように行えばよい.

対角行列$D$のサイズを$r$から$k (<r)$に変更することで,元の行列$X$を近似することができる.

$k=r$ならばもちろん等しい.

行列$V$の中身を解釈することで各文章がどのトピックに属しているかを解釈することができる.

おそらく2つのトピックが存在しているので,$UD$の第1列と第2列で散布図を描く.

主成分分析

データサイエンスコンソーシアムの民力データ(http://datascience.jp/tutorial.html) を読み込む.

24変数を合成して新しい変数を作っていく.

PCAの実行.

第2主成分スコアまで計算してプロットする.

主成分スコアの性質 : 主成分スコアは平均0で互いに相関しない.

主成分スコアの分散,すなわち上記行列の対角成分は固有値である.

biplotによる主成分スコアの解釈

主成分数の選択については,寄与率がひとつの尺度となる.累積寄与率が一定の値以上になるように主成分数を選択する.