Dear R users,
I'm trying to determine local population centers in a region through kernel
smoothing. What I have is population density in each neighborhood, which
can be presented as point density. So in my data set pop, I have three
columns for about 1000 neighborhoods: x (x coordinate), y (y coordinate),
and z (population density at xy). I searched R documentations and found
that the "kde" function in the "ks" package might be the one I'm looking
for.
To illustrate what I have done, I use the elevation data in GeoR:
##### Kernel smooth ####
require(geoR)
data(elevation)
elev.df <- data.frame(x = 50 * elevation$coords[,"x"], y = 50 *
elevation$coords[,"y"], z = 10 * elevation$data)
H<-Hpi(elev.df)
popcnt<-kde(elev.df,H=H)
plot(popcnt, axes=TRUE, box=TRUE, drawpoints=TRUE)
#### To confirm this is what I want, I also created Loess density surface
####
require(geoR)
data(elevation)
elev.df <- data.frame(x = 50 * elevation$coords[,"x"], y = 50 *
elevation$coords[,"y"], z = 10 * elevation$data)
elev.loess <- loess(z ~ x + y, data = elev.df, degree = 2, span = 0.15)
grid.x <- seq(10, 300, 1)
grid.y <- seq(10, 300, 1)
grid.mar <- list(x=grid.x, y=grid.y)
elev.fit<-expand.grid(grid.mar)
z.pred <- predict(elev.loess, newdata = elev.fit)
persp(seq(10, 300, 1), seq(10, 300, 1), z.pred, phi = 45, theta = 45)
#####
After comparing the two, I felt I did something wrong with the kernel
smooth, but could not figure out the right way to do it. Your help would be
greatly appreciated!
Thanks.
Gary
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.