Nothing
## ----data, echo=TRUE----------------------------------------------------------
library("iTensor")
data1 <- iTensor::toyModel("ICA_Type1")
data2 <- iTensor::toyModel("ICA_Type2")
data3 <- iTensor::toyModel("ICA_Type3")
data4 <- iTensor::toyModel("ICA_Type4")
data5 <- iTensor::toyModel("ICA_Type5")
dim(data1$X_observed)
dim(data2$X_observed)
dim(data3$X_observed)
dim(data4$X_observed)
dim(data5$gene) # N < P systems
## ----data2, echo=TRUE, fig.height=4, fig.width=4------------------------------
pairs(data1$X_observed, main="data1")
pairs(data2$X_observed, main="data2")
pairs(data3$X_observed, main="data3")
pairs(data4$X_observed, main="data4")
dim(data5$gene)
## ----setting, echo=TRUE-------------------------------------------------------
allICA <- function(X, J){
# Classic ICA Methods
out.FastICA <- ICA(X=X, J=J, algorithm="FastICA")
out.InfoMax <- ICA(X=X, J=J, algorithm="InfoMax")
out.ExtInfoMax <- ICA(X=X, J=J, algorithm="ExtInfoMax")
# Modern ICA Method
out.JADE <- ICA2(X=X, J=J, algorithm="JADE")
# Output
list(out.FastICA=out.FastICA, out.InfoMax=out.InfoMax,
out.ExtInfoMax=out.ExtInfoMax, out.JADE=out.JADE)
}
CorrIndexAllICA <- function(S, out){
tmp <- lapply(out, function(x, S){CorrIndex(cor(S, Re(x$S)))}, S=S)
Name <- gsub("out.", "", names(tmp))
Value <- round(unlist(tmp), 3)
names(Value) <- NULL
cbind(Name, Value)
tmp <- as.data.frame(cbind(Name, Value))
colnames(tmp) <- c("Method", "CorrIndex")
knitr::kable(tmp)
}
## ----ica1, echo=TRUE----------------------------------------------------------
set.seed(123456)
out1 <- allICA(X=data1$X_observed, J=3)
## ----corrindex1, echo=TRUE----------------------------------------------------
CorrIndexAllICA(data1$S_true, out1)
## ----pairs_ica1, echo=TRUE, fig.height=4, fig.width=4-------------------------
pairs(out1$out.FastICA$S, main="FastICA")
pairs(out1$out.InfoMax$S, main="InfoMax")
pairs(out1$out.ExtInfoMax$S, main="ExtInfoMax")
pairs(Re(out1$out.JADE$S), main="JADE")
## ----ica2, echo=TRUE----------------------------------------------------------
set.seed(123456)
out2 <- allICA(X=data2$X_observed, J=3)
## ----corrindex2, echo=TRUE----------------------------------------------------
CorrIndexAllICA(data2$S_true, out2)
## ----pairs_ica2, echo=TRUE, fig.height=4, fig.width=4-------------------------
pairs(out2$out.FastICA$S, main="FastICA")
pairs(out2$out.InfoMax$S, main="InfoMax")
pairs(out2$out.ExtInfoMax$S, main="ExtInfoMax")
pairs(Re(out2$out.JADE$S), main="JADE")
## ----ica3, echo=TRUE----------------------------------------------------------
set.seed(123456)
out3 <- allICA(X=data3$X_observed, J=3)
## ----corrindex3, echo=TRUE----------------------------------------------------
CorrIndexAllICA(data3$S_true, out3)
## ----pairs_ica3, echo=TRUE, fig.height=4, fig.width=4-------------------------
pairs(out3$out.FastICA$S, main="FastICA")
pairs(out3$out.InfoMax$S, main="InfoMax")
pairs(out3$out.ExtInfoMax$S, main="ExtInfoMax")
pairs(Re(out3$out.JADE$S), main="JADE")
## ----ica4, echo=TRUE----------------------------------------------------------
set.seed(123456)
out4 <- allICA(X=data4$X_observed, J=3)
## ----corrindex4, echo=TRUE----------------------------------------------------
CorrIndexAllICA(data4$S_true, out4)
## ----pairs_ica4, echo=TRUE, fig.height=4, fig.width=4-------------------------
pairs(out4$out.FastICA$S, main="FastICA")
pairs(out4$out.InfoMax$S, main="InfoMax")
pairs(out4$out.ExtInfoMax$S, main="ExtInfoMax")
pairs(Re(out4$out.JADE$S), main="JADE")
## ----ica5, echo=TRUE----------------------------------------------------------
library("mixOmics")
set.seed(123456)
# mixOmics's IPCA
res.ipca <- ipca(data5$gene, ncomp=3, mode="deflation")
# iTensor's IPCA
out5 <- ICA2(X=as.matrix(data5$gene), J=3, algorithm="IPCA")
## ----pairs_ica5, echo=TRUE, fig.height=4, fig.width=4-------------------------
pairs(res.ipca$x, main="IPCA (mixOmics)", col=data5$treatment[,"Treatment.Group"], pch=16)
pairs(out5$S, main="IPCA (iTensor)", col=data5$treatment[,"Treatment.Group"], pch=16)
## ----sessionInfo, echo=FALSE--------------------------------------------------
sessionInfo()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.