- ここで平滑化をしている
- 間を埋めたい
- 補間という方法がある(Rでこんな)
means <- c(0,50)
sds <- c(1,5)
ratio <- c(0.2,0.8)
N.pt <- 100
X <- c(rnorm(N.pt*ratio[1],means[1],sds[1]),rnorm(N.pt*ratio[2],means[2],sds[2]))
true.Dens <- ratio[1] * dnorm(X,means[1],sds[1])+ratio[2]*dnorm(X,means[2],sds[2])
X <- matrix(X,ncol=1)
Y <- rep(1,length(X[,1]))
r <- 0.1
RW.Mx <- my.rw.density.mx(X,Y,n,r)
Z <- RW.Mx %*% Y
D.out <- my.delaunay.rw.density(X,n,r)
Z.d <- D.out$Y.post
dens.X <- density(X,bw = "SJ-ste")
xx <- seq(from=min(X),to=max(X),length=500)
Y.xx <- rep(0,length(xx))
for(i in 1:length(xx)){
Y.xx[i] <- my.linear.delaunay(xx[i],X,D.out$delaunay.X,D.out$Y.post)
}
plot(dens.X,lwd=3)
ord <- order(X)
points(X[ord],Z[ord]/max(Z)*max(dens.X[[2]]),pch=20,col=2,type="p")
points(X[ord],Z.d[ord]/max(Z.d)*max(dens.X[[2]]),pch=20,col=3,type="p")
points(X[ord],true.Dens[ord]/max(true.Dens)*max(dens.X[[2]]),pch=20,col=4,type="l",lwd=3)
library(pracma)
yc<-interp1(c(X[ord]),c(Z.d[ord]),xx,method="spline")
yc[which(yc<0)] <- 0
points(xx,yc/max(yc)*max(dens.X[[2]]),pch=20,col=5)