R_biplot
2008年4月24日の日録にも書いたが
R の biplot 関数なのだが,この出力の x 軸,y 軸それぞれの数値は何を意味しているのか? さて 垂水先生や青木先生のサイトの情報を横目に見つつ,R の実装を確認してみよう.
例えば
x <- princomp(USArrests) biplot(x)
とすると,Hawaiiが右下,上側 X 軸が 400 のあたり,右側 Y 軸が -500 あたりにプロットされているのだが,
> x$scores[rownames(x$scores) == "Hawaii"] [1] 123.536106 -24.291208 3.724443 3.472849
と関係ない数値である.loadings の方もグラフのメモリと一致していない.では何なのか?
> caith.ca <- corresp(caith, nf = 4) > biplot ( caith.ca) > caith.ca
これも黒髪のスコアはblack 2.45 1.651 で,グラフ上にはちゃんとプロットされているのだが,グラフの目盛のどこを見ても 2 を越える範囲はない.
そういう場合は,関数の定義を確認しよう!
> getS3method("biplot", "default") > getS3method("biplot", "princomp") > getS3method("biplot", "correspondence")
すると,解決する.
> t(t(USA$scores[, 1:2])/ (USA$sdev[1:2] * sqrt(USA$n.obs)) ) > t(t(USA$loadings[, 1:2]) * (USA$sdev[1:2] * sqrt(USA$n.obs)) )
によって生成される得点による各州の座標は,下の X 軸,左の Y 軸と一致している.
Link: Rの備忘録(3953d)
Last-modified: 2008-05-31 (土) 18:29:02 (5979d)