4. 独立成分分析
独立成分分析は、複数の信号が混じっているものを分離するための方法でしたが、攻撃的要素、守備的要素が混じり合った結果としての観測データから、元の攻撃的要素、守備的要素を分離・抽出するという目的で使用できます。
R コード
d_ica <- data.frame(cbind(d$touch, d$keep, d$send, d$recv, d$get, d$contact, d_kmeans$cluster)) colnames(d_ica) <- c("touch", "keep", "send", "recv", "get", "contact", "class") d_ica$name <- d$name library("fastICA") d_ica.ica <- fastICA(d_ica[1:6],2) # 度数法を弧度法に変換 rad <- 80 * pi / 180 cos.angle <- cos(rad) sin.angle <- sin(rad) # 空ベクトルを用意 d_ica$x = numeric(length(d_ica.ica$S[,1])) d_ica$y = numeric(length(d_ica.ica$S[,2])) # 独立成分得点を回転 for (i in 1:length(d_ica.ica$S[,1])) { wk <- ( matrix(c( cos.angle, sin.angle, -sin.angle, cos.angle ), 2,2) %*% c( d_ica.ica$S[i,1], d_ica.ica$S[i,2] ) ) d_ica$x[i] <- wk[1,1] d_ica$y[i] <- wk[2,1] } # 散布図を描画 g <- ggplot( d_ica, aes( x=d_ica$x, y=d_ica$y, label=d_ica$name ) ) g <- g + geom_point( size=3, alpha=0.6, aes( colour=factor(d_ica$class) ) ) g <- g + stat_ellipse( aes( colour=factor(d_ica$class) ), type="t", linetype=2 ) g <- g + xlim(-2, 3) g <- g + ylim(-2, 4) g <- g + geom_text_repel( family="HGKAI" ) # タイトルを変更 g <- g + labs(title="独立成分分析") g <- g + xlab("") g <- g + ylab("") #グループごとの色指定 g <- g + scale_colour_manual(values=c(VIOLET_5, INDIGO_5, BLUE_5, CYAN_5, TEAL_5)) # フォントを指定 g <- g + theme_bw( base_size=12, base_family="HGKAI" ) g <- g + theme( legend.position="none", plot.title=element_text( hjust=0.5 ), axis.text.x=element_text( family="COURIER", size=10 ), axis.text.y=element_text( family="COURIER", size=10 ) ) print(g)