主成分分析、ロバスト主成分分析、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] ) の実行結果例