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

About connecting the dots.

statistics/machine learning adversaria.

Rで複数変数のサマリをさくっと可視化する

変数の要約をして,だいたいの概要を把握するときって,だいたいboxplotとかみてこんなもんかーって思って,あとは相関表をだして眺めるみたいなことをよくやったりするんですけど,これが案外面倒なので,もう少し楽にできないかなって思ってました.特に相関の部分.

そうしたらTokyo.R 33の@teramonagiさんのLTで紹介されていたパッケージが超便利そうだったので試してみました.パッケージ名は{PerformanceAnalytics}でメソッドはchart.Correlation().インストールしてaircalityデータで試してみましょう.

install.packages("PerformanceAnalytics")
library("PerformanceAnalytics")
chart.Correlation(airquality)

そうしたら,以下のような散布図と回帰直線,ヒストグラム,星付きの相関係数(係数によって文字サイズが変わる)が得られます.

f:id:SAM:20130901103709j:plain

同様のプロットは,{psych}パッケージのpairs.panels()でも得られます.こちらを試すと以下のようになります.

install.packages("psych")
library("psych")
pairs.panels(airquality)

f:id:SAM:20130901103707j:plain

個人的には,相関係数のフォントサイズや有意性がある分,PerformanceAnalytics()のほうが使い勝手がいい感じがします.でも,chart.Correlation()のほうは相関係数に負の表示を出してくれないみたいなので,ちょっと面倒かも.ヘルプみる限り,オプションが見当たらない... ちなみに,サンプル数が多くて描画に時間がかかる場合は,以下のようにpch="."オプションをつけてあげると,早く描画できます.

pairs.panels(airquality, pch=".")
chart.Correlation(airquality, pch=".")