Multivariate Kernel Density Estimationの練習

Tsukuba.Rで3次元のplotは練習しておいたから楽勝。とりあえず、MASSパッケージのkde2d関数を自前で実装することに挑戦するのが今の課題。

#2変数のガウス分布のplot
double_gaussian <- function(x1,x2,sigma=1,mu1=0,mu2=0){
  return(1 / (2*pi*sigma^2) * exp(- ((x1-mu1)^2 + (x2-mu2)^2) / (2 * sigma^2)))
}

#普通にplot
x <- seq(-3,3,length=50)
y <- x
z <- outer(x,y,double_gaussian)
persp(x,y,z,theta=30,phi=30,expand=0.5,col=rainbow(50))

install.packages("misc3d")
library(misc3d)
library(MASS)

#独立な確率変数があって、それらはそれぞれ正規分布に従う
#それの密度関数のplotをした
#RのMASSパッケージに付属のkde2d関数を使用
persp(kde2d(rnorm(1000),rnorm(1000)),col=rainbow(50),theta=30)


f:id:syou6162:20161113003733p:plain