“>cmatrix = covRob(X,corr=TRUE)”
CovOgk(data, control = CovControlOgk(smrob = "s_mad", svrob = "qc")) 中的错误:在 C 函数 covOPW 中遇到带有零刻度的列
当我尝试运行 X、55x534 数据矩阵时,我收到了上述错误消息。它对另一组类似的数据有效,但对我正在处理的这组数据无效。这很奇怪,因为这是我第一次看到这个错误。有人知道错误消息指向什么吗?
答案1
covOPW
没有足够的数据来计算尺度参数,这就是为什么尺度为零(对于稳健分析,尺度相当于正常数据中的方差,MAD 就是稳健尺度参数的一个例子)。你可以看看源代码 复制OPW文件
如果您仔细研究该CovOgk
算法(或其他稳健算法),您会发现它们通常会随机或分层抽取原始数据的 50% 以上大小的样本,以排除异常值。在某些情况下,可能只是数据不足或数据为零/NA。
在一些稳健估计器中,您可以指定不含异常值的部分的期望。例如,您可以设置或CovMcd
而不是默认值。这样样本的大小就会更大,您就可以避免这个问题。CovMve
alpha = 0.9
alpha = 0.5