我正在通过 Nick Psaris 的 Funq 工作,但需要一个 null 感知函数来制作协方差矩阵。我将使用它来创建一个马氏距离矩阵。他提供了一些 null 感知功能:
navg = null 感知平均值
nvar null 感知 var
nsvar = null 感知样本 var
有什么建议么?
我正在通过 Nick Psaris 的 Funq 工作,但需要一个 null 感知函数来制作协方差矩阵。我将使用它来创建一个马氏距离矩阵。他提供了一些 null 感知功能:
navg = null 感知平均值
nvar null 感知 var
nsvar = null 感知样本 var
有什么建议么?
这是我想出的:
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 制作对角矩阵,并将其与相关矩阵相乘两次。虽然远未优化