Rでコレスポンデンス分析

ちょっとリクエストがあったのでRでコレスポンデンス分析(対応分析)の例。


メジャーなのはMASSパッケージに入っているcorresp関数を使うもので『S-PLUSによる統計解析』『Rによる統計解析』『R言語逆引きハンドブック』などでも紹介されています。金先生のページ(http://mjin.doshisha.ac.jp/R/26/26.html)でも解説されてますね。
でも個人的におすすめなのはcaパッケージのca関数を使う方法。英語の解説はhttp://www.statmethods.net/advstats/ca.html、日本語ではhttp://eau.uijin.com/advstats/ca.html

S‐PLUSによる統計解析

S‐PLUSによる統計解析

Rによる統計解析

Rによる統計解析

R言語逆引きハンドブック

R言語逆引きハンドブック

両方、簡単に実行方法を載せておきます。


まずは分析する分割表の入力。

# 分析するクロス集計表はこちらから拝借
# http://www.geocities.co.jp/WallStreet/7166/correspo/corr_02.html

DAT <- matrix(c(41,23, 5, 5, 2,
                15, 4, 0, 2, 1,
                 7,11, 2, 0, 0,
                 3, 3, 0, 0, 0), 4, byrow=TRUE)
rownames(DAT) <- c("会社員","自営業","学生","その他")
colnames(DAT) <- c("マンション","ハイツ・コーポ","アパート","テラスハウス","一戸建て")


MASSパッケージのcorresp関数を使った例。

library(MASS)
DAT.ca1 <- corresp(DAT, nf=2)
DAT.ca1  # 結果の表示
biplot(DAT.ca1, main="corresp()を使った例")  # 描画


次にcaパッケージのca関数を使った例。

library(ca)
DAT.ca2 <- ca(DAT)
DAT.ca2 # 結果の表示
plot(DAT.ca2, main="ca()を使った例1")
plot(DAT.ca2, mass = TRUE, contrib = "absolute", map ="rowgreen",
     arrows = c(FALSE, TRUE), main="ca()を使った例2")



まあ、大体こんな感じです。