チャーノフの顔グラフ     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

Made with Macintosh