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

対応分析の結果をバブルプロットにする

 今回は、対応分析の結果をバブルプロットで表示する方法を紹介します。バブルの大きさをどう定義するかが問題になりますが、以下の例では、行ないしは列の総和を使っています。*1 分析データは、MASSパッケージのcaithを使います。*2

# パッケージの読み込み
library(MASS)
# 対応分析
ca <- corresp(caith, nf = nrow(caith) - 1)
# バブルの大きさの定義
c <- colSums(caith)
r <- rowSums(caith)
# バブルプロットの描画
par(mfrow = c(1, 2))
symbols(ca$cscore[, 1], ca$cscore[, 2], circle = c, inches = 0.8, fg = "white", bg = "lightblue", xlab = "Dim 1", ylab = "Dim 2")
text(ca$cscore[, 1], ca$cscore[, 2], colnames(caith))
symbols(ca$rscore[, 1], ca$rscore[, 2], circle = r, inches = 0.8, fg = "white", bg = "pink", xlab = "Dim 1", ylab = "Dim 2")
text(ca$rscore[, 1], ca$rscore[, 2], rownames(caith))

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

f:id:langstat:20150109231129p:plain

*1:いろいろとカスタマイズの余地はあると思います。

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