写了一个程序用这个算法找异常点的,总是有问题,求各位大大指点啊!
DB <- function(x,p,D){<br />
n = length(x)<br />
v = y = k = 1; # v和k都用来计数<br />
for (i in 1:n)<br />
{<br />
v[i] = 0<br />
for (j in 1:n)<br />
{<br />
m.distance = mahalanobis(x[i,],x[j,],cov(x));<br />
if(m.distance < D)<br />
v[i] = v[i]+1;<br />
}<br />
if (v[i] < (1-p)*n) # 若x[i]是离群点,则让x[i]加入y队列<br />
{<br />
y[k] = i<br />
k = k + 1<br />
}<br />
return (y)<br />
}<br />
}<br />
</p>