我很惊讶没有人提出明显的解决方案:
#generate completely separated data
library(robustbase)
set.seed(123)
x<-rnorm(200)
x[1:40]<-x[1:40]+10
x[41:80]<-x[41:80]-10
Rob<-ltsReg(x~1,nsamp="best")
#all the good guys
which(Rob$raw.weights==1)
现在解释一下:ltsReg
package 中的函数robustbase
,当使用选项调用时
nsamp="best"
产生单变量(精确)MCD 权重。(这些是存储在$raw.weights
对象中的 n 向量 0-1 权重。识别它们的算法是 MCD 估计器 (1))。
简而言之,对于子集的成员,这些权重为 1h=⌈(n+2)/2⌉最集中的观察。
在第一维中,它首先对所有观察进行排序,然后计算所有连续子集的度量h观察:表示
x(i)这ith排序观察向量的条目,它计算
(例如(x(1),...,x(h+1))然后(x(2),...,x(h+2))
依此类推...)然后保留具有较小度量的那个。
该算法假设您的兴趣组占原始样本的严格多数,并且它具有对称分布(但没有关于剩余样本分布的假设
n−h观察)。
(1) PJ 卢梭 (1984)。平方回归的最小中位数,美国统计协会杂志。