読者です 読者をやめる 読者になる 読者になる

対応分析の結果に重み付けをする

 最近、対応分析の次元得点に固有値平方根(特異値)をかけるという話題を目にしました。*1 今回は、それをRで行ってみることにします。分析データは、MASSパッケージのcaithを使います。*2
 まずは、対応分析の結果を普通に視覚化してみましょう。

# パッケージの読み込み
library(MASS)
# 対応分析
ca <- corresp(caith, nf = nrow(caith) - 1)
# 視覚化
biplot(ca)

 上記のスクリプトを実行すると、以下のようなバイプロットが作成されます。

f:id:langstat:20150110141356p:plain

 次に、次元得点に固有値平方根をかけた結果を視覚化してみましょう。*3

# 重み付け(対応分析の結果を上書き)
ca$rscore <- t(t(ca$rscore) * ca$cor)
ca$cscore <- t(t(ca$cscore) * ca$cor)
# 視覚化
biplot(ca)

 上記のスクリプトを実行すると、以下のようなバイプロットが作成されます。固有値の大きい次元(=横軸)の方向に図形が引き延ばされていることが分かります。

f:id:langstat:20150110141407p:plain

*1:詳しくは、こちらを参照してください。

*2:このデータは、スコットランドのケイスネスという地方に住む人を対象に、目の色と髪の色を調査したものです。

*3:こちらで呟いたように、2回も転置しないで計算する方法があるような気がします。