| 一括表示 |
|---|
|
前田と申します。 |
はじめまして、樋口です。書き込みありがとうございます。
対応分析にはRを使っていますので、Rからデータを取り出す形となります。手
順は以下の通りです。
[1] KH Coderで対応分析を実行します。
[2] 「保存」ボタンをクリックして、「R Source」形式で対応分析の結果を保
存します。
[3] kh_coder.exeと同じ場所にあるRgui.batをダブルクリックして、KH Coder
に付属のRを起動します。
[4] Rのコンソール画面に[2]で保存したファイルをドラッグします。※これに
よってR上で、同様の対応分析が実行されます。
[5] 以下のコマンドを実行する(Rのコンソール画面に貼り付けてエンター・
キーを押す)ことで、対応分析の入力となったデータ表がC:\temp0.csvに保存
されます。
#--------------------------------------------------------------------
savefile <- "C:\\temp0.csv"
out_data <- cbind(rownames(d), d)
if (nchar(savefile)) {
write.table(
out_data,
savefile,
sep=",",
quote=F,
row.names=F
)
print( paste("saved: ",savefile) )
}
#--------------------------------------------------------------------
[6] 以下のコマンドを実行する(Rのコンソール画面に貼り付けてエンター・
キーを押す)ことで、プロット作成に必要な座標データ等がC:\temp1.csvに保
存されます。
#--------------------------------------------------------------------
savefile <- "C:\\temp1.csv"
out_data <- cbind(c$cscore[,d_x], c$cscore[,d_y], 1 ) # 語
if ( exists("biplot") ){ # 変数・見出し
if (biplot){
out_data <- rbind(
out_data,
cbind(c$rscore[,d_x], c$rscore[,d_y], 2)
)
}
}
out_data <- cbind(rownames(out_data), out_data) # 仕上げ
colnames(out_data) <- c("label","x","y","type")
if (nchar(savefile)) { # 保存
write.table(
out_data,
savefile,
sep=",",
quote=F,
row.names=F
)
print( paste("saved: ",savefile) )
}
#--------------------------------------------------------------------
なお、[6]についても[7]についても、最初の1行「savefile <- "C:\\temp1.cs
v"」を次の内容に変更すると、GUIで保存ファイル名を決めることができます。
#--------------------------------------------------------------------
savefile <- NULL
require(tcltk)
savefile <- tclvalue(
tkgetSaveFile(
filetypes = "{{CSV Files} {.csv}}",
defaultextension=".txt"
)
)
#--------------------------------------------------------------------
|
樋口です。以下、バブルプロットに関する補足です。 KH Coderの次のバージョンでは、対応分析の結果をバブルプロットであらわす ことができるようになります。あるいは、こちらでひっそり公開しているテス ト版では、すでにサポートされています: http://khcoder.info/cgi-bin/bbs_khn/khcf.cgi?no=805&mode=allread バブルプロットの作成には、座標データだけでなく、バブルの大きさのデータ も必要になります。これも併せて出力するためには、以下のコマンドをお使い 下さい。 #-------------------------------------------------------------------- savefile <- "C:\\temp1.csv" out_data <- cbind(c$cscore[,d_x], c$cscore[,d_y], 1 ) # 語 if ( exists("biplot") ){ # 変数・見出し if (biplot){ out_data <- rbind( out_data, cbind(c$rscore[,d_x], c$rscore[,d_y], 2) ) } } out_data <- cbind(rownames(out_data), out_data) # 仕上げ colnames(out_data) <- c("label","x","y","type") if ( exists("b_size") ){ # バブル対応 if ( exists("biplot") ){ if (biplot){ v_size <- sqrt(n_total); if (std_radius){ # 大小差をデフォルメ v_size <- v_size / sd(v_size) v_size <- v_size - mean(v_size) v_size <- v_size * 5 * bubble_var / 100 + 10 v_size <- neg_to_zero(v_size) } b_size <- c(b_size, v_size) } } out_data <- cbind(out_data, b_size) colnames(out_data) <- c("label","x","y","type","size") } if (nchar(savefile)) { # 保存 write.table( out_data, savefile, sep=",", quote=F, row.names=F ) print( paste("saved: ",savefile) ) } #-------------------------------------------------------------------- |
|
前田です。 |
|
こんにちは、樋口です。 |
|
前田です。 |
|
前田です。 |
|
前田です。 |
|
こんにちは、樋口です。書き込みありがとうございます。 |
|
前田です。 |
|
こんにちは、樋口です。書き込みありがとうございます。 |
|
前田です。 |
|
前田です。 |
こんにちは、樋口です。書き込みありがとうございます。
外部変数の値をクラスタリングするということですね。
もともとR上に存在するデータですから、改めて「座標を入力」する必要はあ
りません。R上で対応分析を行った後(No.825の[4]まで進めた後)、以下のコ
マンドを実行すればクラスター分析を行えるでしょう。
なお、一般的には、対応分析に入力したロー・データを用いてクラスター分析
を行うのが定石だと思います。すなわち、対応分析で圧縮する前の、生のデー
タを用いて分類するということです。この場合のコマンドは以下のようになる
でしょう。
#--------------------------------------------------------------------
library(amap)
plot(
hclust(
Dist(
d,
method="pearson"
),
method="ward"
)
)
#--------------------------------------------------------------------
それに対して、対応分析のプロット座標(成分スコア)をクラスタリングに用
いますと、単に「分類する」というよりも、「対応分析のプロット上で、どの
値とどの値が近くに布置されたのかを分かりやすく示す」という意味合いにな
るでしょう。この場合のコマンドは以下のようになります。
#--------------------------------------------------------------------
library(amap)
plot(
hclust(
Dist(
cbind(c$rscore[,d_x],c$rscore[,d_y]),
method="euclidean"
)^2,
method="ward"
)
)
#--------------------------------------------------------------------
※クラスター化法や距離係数については必要に応じて変更してください。R上
で「help(Dist)」「help(hclust)」のように入力してエンター・キーを押すと、
利用できるmethod(クラスター化法・距離係数)を確認できます。
|
|
前田です。 |
|
「対応分析の座標値を取得する方法」のスレッドでしたので、こちらから質問させて頂きます。 |
|
こんにちは、樋口です。書き込みありがとうございます。 |
|
早速お返事頂きましてありがとうございます。 |