チャーノフの顔グラフ Last modified: Apr 13, 2004
目的
チャーノフの顔グラフで使用するデータを調整する
使用法
face.data(d, pos=1:18)
引数
d データ行列
pos データ行列の変数を,チャーノフの顔グラフを描くために必要な 18 個のパラメータと対応づける情報
各要素は,下のデータ行列の何列目が対応するかを表す。同じ変数が重複してもよい。
i 番目の要素は,第 i パラメータに割り当てる変数の番号とする。変数を割り当てないパラメータには 0 を指定しておく。
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/face_data.R", encoding="euc-jp")
# チャーノフの顔グラフで使用するデータを調整する
face.data <- function( d, # データ行列
pos=1:18) # 18 個のパーツに対応させるデータ行列の列番号(変数)
{
lo <- c(rep(0.2, 5), 0.1, 0.2, -5, 0.2, 0.1, 0.1, 0.3, 0.1, 0.3, rep(0.1, 4))
hi <- c(0.8, 0.8, 1, 0.8, 0.8, 0.4, 0.8, 5, 0.8, 0.7, 0.9, 0.7, rep(0.9, 4), 1, 0.9)
fx <- c(0.5, 0.5, 1, 0.5, 0.5, 0.2, 0.5, 0, 0.5, 0.4, rep(0.5, 3), 0.6, 0.5, 0.5, 1, 0.5)
n <- nrow(d) # ケース数
min.d <- apply(d, 2, min)
max.d <- apply(d, 2, max)
x <- matrix(0, n, 18)
for (i in 1:18) {
k <- pos[i]
if (k > 0) {
min.dk <- min.d[k]
max.dk <- max.d[k]
if (min.dk == max.dk) { # 全部が同じ値を持つようなとき,
x[,i] <- fx[i] # 平均的なパラメータ
}
else {
x[,i] <- (d[,k]-min.dk)/(max.dk-min.dk)*(hi[i]-lo[i])+lo[i]
}
}
}
return(x)
}
使用例
> nv <- 10 # 10 変数データとする
> d <- matrix(rnorm(12*nv), ncol=nv) # ここではデータを作成して以下の説明をする
# 以下の例は,1番目の変数をパラメータ1に,2番目の変数をパラメータ2に,パラメータ3には変数は割り当てない,パラメータ4には変数3を,パラメータ5と6には変数6を割り当てる等を指示している。
> pos <- c(1, 2, 0, 3, 6, 6, 8, 7, 3, 9, 10, 0, 0, 4, 0, 0, 0, 0)
> x <- face.data(d, pos)
> old <- par(mfrow=c(4, 3))
> for(i in 1:12) {
+ face.plot(x[i,])
+ }
> par(old)
解説ページ
脇本和昌,垂水共之,田中豊編「パソコン統計解析ハンドブック I 基礎統計編」共立出版株式会社株式会社
直前のページへ戻る
E-mail to Shigenobu AOKI