主成分分析、ロバスト主成分分析、ICAの実行結果例
事前準備
# 主成分分析 install.packages("pca3d") # ロバスト主成分分析 install.packages("ppPCA") # ICA install.packages("fastICA")
fastICA パッケージの ICA 実行
◆ テストデータ
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(fastICA) plot( fastICA( R, 2, method="C")$S )
◆ Iris データセット
require(fastICA) plot( fastICA( iris[,c(1:4)], 2, method="C")$S, col=iris[,5] )
◆ ランダム分布データ
require(mvtnorm) T <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) require(fastICA) plot( fastICA( T, 2, method="C")$S, col=(T[,2]>10)+1 )
主成分分析の実行
◆ テストデータ
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) pca2d( princomp(R, cor=FALSE) )
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) pca2d( princomp(R, cor=TRUE) )
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) pca3d( princomp(R, cor=FALSE) )
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) pca3d( princomp(R, cor=TRUE) )
◆ Iris データセット
require(pca3d) pca2d( princomp(iris[,c(1:4)], cor=TRUE), col=iris[,5] )
require(pca3d) pca3d( princomp(iris[,c(1:4)], cor=TRUE), col=as.numeric(iris[,5]) )
◆ ランダム分布データ
require(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) require(pca3d) pca2d( princomp(x, cor=TRUE), col=(x[,2]>10)+1 )
require(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) require(pca3d) pca3d( princomp(x, cor=TRUE), col=(x[,2]>10)+1 )
ロバスト主成分分析の実行
◆ テストデータ
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) require(pcaPP) pca2d( PCAgrid(R, cor=TRUE) )
require(data.table) R <- data.table( x=c(2,0,1,1,1,1), y=c(1,1,2,0,1,1), z=c(1,1,1,1,2,0) ) require(pca3d) require(pcaPP) pca3d( PCAgrid(R, cor=TRUE, k=3 ) )
◆ Iris データセット
require(pca3d) require(pcaPP) pca2d( PCAgrid(iris[,c(1:4)], cor=TRUE), col=iris[,5] )
require(pca3d) require(pcaPP) pca3d( PCAgrid(iris[,c(1:4)], cor=TRUE, k=3), col=as.numeric(iris[,5]) )
◆ ランダム分布データ
require(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) require(pca3d) require(pcaPP) pca2d( PCAgrid(x, cor=TRUE), col=(x[,2]>10)+1 )
require(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) require(pca3d) require(pcaPP) pca3d( PCAgrid(x, cor=TRUE, k=3), col=(x[,2]>10)+1 )
(参考) plot( iris[,c(1:2)], col=iris[,5] ) の実行結果例