问题描述
我正在研究 Nick Psaris 的 Funq,但需要一个空感知函数来制作协方差矩阵。我将用它来创建一个马氏距离矩阵。 他提供了一些空感知函数:
navg = 空感知平均
nvar null 感知 var
nsvar = 空感知样本变量
有什么建议吗?
解决方法
这是我想出的:
nSCovMatrix:{[matrix]
//takes table or array
//null aware Sample Covariance Matrix
$[98h=type matrix;matrix:"f"$(flip matrix[cols matrix]);matrix:"f"$matrix];
corMatrix:u cor/:\:u: flip matrix;
sd:sqrt nsvar[matrix]; //standard dev of each variable
diagMatrix:sd*{x=/:x}til first count each dataSet;
:covMatrix:(diagMatrix) mmu corMatrix mmu (diagMatrix);
};
我找到相关矩阵并将其转换为协方差矩阵,方法是取每个变量的 std dev,用 s.d. 制作一个对角矩阵,然后将其与相关矩阵相乘两次。虽然远未优化