一括表示 |
---|
前田と申します。 |
はじめまして、樋口です。書き込みありがとうございます。 対応分析には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(クラスター化法・距離係数)を確認できます。 |
前田です。 |
「対応分析の座標値を取得する方法」のスレッドでしたので、こちらから質問させて頂きます。 |
こんにちは、樋口です。書き込みありがとうございます。 |
早速お返事頂きましてありがとうございます。 |