R:是' spatialSign'函数用于识别异常值?

时间:2015-01-28 14:25:11

标签: r outliers

这是我的问题:

" spatialSign"的目的是什么?功能在AppliedPredictiveModeling'包? 我读过一本关于空间符号的书。识别异常值的方法。该函数将变量的值投影到圆圈中,如果存在异常值,则它们应该出现在圆圈内。这是相同的#34;空间符号" R在这个包中使用了吗?

如果是这样,我提交此代码的原因是什么:

plotSubset <- data.frame(scale(zquant1[, c("AGE", "FL")]))
xyplot(AGE ~ FL,
       data = plotSubset,
       auto.key = list(columns = 10))
transformed <- spatialSign(plotSubset)
transformed <- as.data.frame(transformed)
xyplot(AGE ~ FL,
       data = transformed,
       auto.key = list(columns = 2))

看起来我的第一张图片中有异常值,但空间符号方法(第二张图片)无法识别它?

(1st image) http://www.imagesup.net/?di=5142245473711 (2nd image) http://www.imagesup.net/?di=5142245489110

1 个答案:

答案 0 :(得分:6)

不,它无法识别异常值。它只是一种预处理方法,它将异常值带到大多数数据中。

摘自Applied Predictive Modeling book

  

如果模型被认为对异常值敏感,则需要一个数据   可以最小化问题的转换是空间符号   (Serneels等,2006)。此过程投影预测值   在多维球体上。这具有制造所有的效果   从球体中心采样相同的距离。

Serneels,Sven,Evert De Nolf和Pierre J. Van Espen。 “空间符号预处理:为多变量估计器提供中等鲁棒性的简单方法。”化学信息与建模期刊46(3):1402-9。 DOI:10.1021 / ci050498u

set.seed(1)
n <- 10000
tmp <- data.frame(x=c(rnorm(n, 0, 0.02), -1, 1, 0.5),
                  y=c(rnorm(n, 0, 0.2), -1, 1, -2))

plot(tmp, asp=1, col=c(rep(1,n), 2, 3, 4), pch=19)
grid()
plot(spatialSign(tmp), asp=1, col=c(rep(1,n), 2, 3, 4), pch=19)
grid()

spatialSign example