我想在两个矩阵之间执行正则化的规范相关,其中的变量比观察值多(相同的主题),其中一个非常大(~18000 列)。唯一可以处理矩阵维度的 r 包是 PMA(尝试过 mixOmics、RGCCA ...)。
问题是函数 CCA 的输出只给出了规范变量和相关性,以及规范权重。为了更好地解释结果,规范分数是必要的,但这(奇怪地)不是由 CCA 功能提供的。我对矩阵代数(以及一般的统计数据)不是很精通,我不确定如何计算它。
包文档中的示例:
### create matrices
> u <- matrix(c(rep(1,25),rep(0,75)),ncol=1)
> v1 <- matrix(c(rep(1,50),rep(0,450)),ncol=1)
> v2 <- matrix(c(rep(0,50),rep(1,50),rep(0,900)),ncol=1)
> x <- u%*%t(v1) + matrix(rnorm(100*500),ncol=500)
> z <- u%*%t(v2) + matrix(rnorm(100*1000),ncol=1000)
### perform canonical correlation (3 canonical variates)
> out <- CCA(x,z,typex="standard",typez="standard",K=3)
> print(out,verbose=TRUE)
Call: CCA(x = x, z = z, typex = "standard", typez = "standard", K = 3)
Num non-zeros u's: 59 88 75
Num non-zeros v's: 180 154 164
Type of x: standard
Type of z: standard
Penalty for x: L1 bound is 0.3
Penalty for z: L1 bound is 0.3
Cor(Xu,Zv): 0.9578624 0.93371 0.9418701
Component 1 :
Row Feature Name Row Feature Weight
1 1 0.112
2 2 0.080
3 3 0.124
4 4 0.165
5 5 0.087
........
........
Column Feature Name Column Feature Weight
1 10 0.006
2 15 -0.027
3 25 -0.025
4 28 0.030
5 35 0.035
........
........
组件 2 和 3 类似。
另一个疑问是关于结果的重要性:给定的非零变量是否已经计算为“与 0 显着不同”?虽然没有询问显着性阈值。