0

我正在通过 Nick Psaris 的 Funq 工作,但需要一个 null 感知函数来制作协方差矩阵。我将使用它来创建一个马氏距离矩阵。他提供了一些 null 感知功能:

navg = null 感知平均值

nvar null 感知 var

nsvar = null 感知样本 var

有什么建议么?

4

1 回答 1

0

这是我想出的:

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);
 };

我找到相关矩阵并将其转换为协方差矩阵,方法是获取每个变量的标准差,用 sd 制作对角矩阵,并将其与相关矩阵相乘两次。虽然远未优化

于 2021-01-16T00:26:44.680 回答