Cutting Edge on My Life

社会心理学者の筆者が切り取った日常[Academic Life/Social Life/IT Life]を書き溜めます.

Rでコレスポンデンス分析~実践編(2)

2010-12-13 12:17:05 | Academic Life

以前に書いた準備編実践編(1)を参考のこと.

Rでコレスポンデンス分析を行う話の続き.カテゴリー・ウェイト行列では直感的な理解とならないので,やはりこういった分析の時にはプロットをしましょう,というのが今回のお題.

結果のプロット

> postscript(file="plot_mca.eps",family="Japan1GothicBBB")# 日本語を表示
> plot(out.mca$cs[,1], out.mca$cs[,2], pch=".",
+       xlab="成分1", ylab="成分2",
+       main="タイトル")
> text(out.mca$cs[,1], out.mca$cs[,2], rownames(out.mca$cs)) # アイテム-カテゴリー名を表示
> dev.off()

当方はlinux上で分析しているので,図の出力はEPSにした.他のOSの方は適当な出力デバイスを開いてください.family="Japan1GothicBBB"という引数を追加しているのは,自分の環境では日本語フォントが化けないようにするため.

デフォルトで2成分しか値を求めていないなら関数biplot()が簡単でいいです.今回は3成分なので少し変える.

結果のオブジェクトはデータフレームになっていて,列データを表すcsもデータフレームである.なので,変数名や列番号を駆使して,プロットに必要なデータを指示してあげればよい.成分1と成分3のプロットなども,これを応用するだけである.

ここでは,関数plot()は,xlab, ylab, mainなどの引数を入力して,それぞれ横軸ラベル,縦軸ラベル,図のタイトルを指定した(上の関数plot()は3行で1つの関数となっている.カッコの対応関係に注意.関数は数行にわたって書いてもいいので,長ったらしい場合は複数行に分けて書くことを積極的に薦める.見やすさが全然違うから,後で再利用する際にも便利).残った引数pchでは,プロットに用いる記号を指定している.今回のように pch="." としておくと,プロット記号が目立たなくなるので,変数ラベルを表示させたい時には便利だ.覚えておくとよい引数の一つである.

変数ラベルを表示するために,関数text()を追加した.3つの引数は,順に,ラベル表示位置のx座標,ラベル表示位置のy座標,表示するテキスト,である.

関数plot()の引数fileで,出力はファイルに保存するようにしたが,この引数がなければ別ウィンドウが開いて図が表示されるはずである.最後はdev.off()とし,出力デバイスを忘れずに閉じておいたほうがいいようだ.



1 コメント

コメント日が  古い順  |   新しい順
データフレームの構造を知る (kfsk)
2010-12-13 13:59:06
関数str()を使うとデータフレームの構造が表示されます.
分析結果の利用の仕方が分からなくなったとき,どんなデータが,どんな形式で格納されているかを知ることができると,それが突破口になるかもしれません.
返信する

コメントを投稿