[R] sm.density kernel estimation for points

Matěj Plch plchmate at fit.cvut.cz
Mon Mar 26 00:00:34 CEST 2012


Hi!
I have two dimensional dataset which has and I need to decide if a point 
lies in some "confidence level". If a point has low confidence/density 
it can be anomaly which I need to find.

For example:
#load library
library(sm)

#get some data
x.locs = c(74, 74.5, 75, 77,74.5)
y.locs = c(64, 63.5, 63, 61,61.5)
points = cbind(x.locs, y.locs)

#plot it
plot(points)

#get points density
abc=sm.density(points, eval.points=points, eval.grid=FALSE)
#make a matrix from points and estimation
fc=cbind(abc$eval.points,abc$estimate)
#select points upper and lower "confidence" level
fca=subset(fc,fc[,3]>0.08)
fcb=subset(fc,fc[,3]<=0.08)

#show how contours look like with sm "nature" contour function
dens.2 =sm.density(points,display="slice")

#finally plot contour- green points are ok, red are some anomalies
contour(dens.2$eval.points[,1],dens.2$eval.points[,2],dens.2$estimate)
points(fca,col="green")
points(fcb,col="red")

This is OK.

 From some reason I'm not able to use sm.density display="slice" with 
estimation on points. This is first problem.


Second is that when I use it with my dataset which has around 46000 
points the contours are too much rounded- it makes a circle, but data 
has more ellipse shape aproximation. I have tried to work with h 
parametr, but without success.

My best result looks: 
https://github.com/matejuh/doschecker_wiki_images/raw/master/linear_regression/density/sm_density.png

Btw. if you have some advice how to write example upper better or you 
have some suggestion that I can use another library I will appriciate it.

Thanks in advance
Matej Plch



More information about the R-help mailing list