::Free Statistics and Forecasting Software::

v1.1.23-r7
Secure website (SSL) | Donate to wessa.net

:: Kernel Density Estimation - Free Statistics Software (Calculator) ::

All rights reserved. The non-commercial (academic) use of this software is free of charge. The only thing that is asked in return is to cite this software when results are used in publications.

This free online software (calculator) performs the Kernel Density Estimation for any data series according to the following Kernels: Gaussian, Epanechnikov, Rectangular, Triangular, Biweight, Cosine, and Optcosine. The result is displayed in a series of images.

Enter (or paste) your data delimited by hard returns.

 Send output to: Browser Blue - Charts White Browser Black/White CSV MS Excel MS Word Data (click to load default data) 149 139 135 130 127 122 117 112 113 149 157 157 147 137 132 125 123 117 114 111 112 144 150 149 134 123 116 117 111 105 102 95 93 124 130 124 115 106 105 105 101 95 93 84 87 116 120 117 109 105 107 109 109 108 107 99 103 131 137 135 Sample Range:(leave blank to include all observations) From: To: Smoothing Bandwidth (leave zero for default) Display values (?) noyes Number of density points (?) Chart options Width: Height: Label y-axis: Label x-axis:

 Source code of R module if (par1 == "0") bw <- "nrd0" if (par1 != "0") bw <- as.numeric(par1) par3 <- as.numeric(par3) mydensity <- array(NA, dim=c(par3,8)) bitmap(file="density1.png") mydensity1<-density(x,bw=bw,kernel="gaussian",na.rm=TRUE) mydensity[,8] = signif(mydensity1\$x,3) mydensity[,1] = signif(mydensity1\$y,3) plot(mydensity1,main="Gaussian Kernel",xlab=xlab,ylab=ylab) grid() dev.off() mydensity1 bitmap(file="density2.png") mydensity2<-density(x,bw=bw,kernel="epanechnikov",na.rm=TRUE) mydensity[,2] = signif(mydensity2\$y,3) plot(mydensity2,main="Epanechnikov Kernel",xlab=xlab,ylab=ylab) grid() dev.off() bitmap(file="density3.png") mydensity3<-density(x,bw=bw,kernel="rectangular",na.rm=TRUE) mydensity[,3] = signif(mydensity3\$y,3) plot(mydensity3,main="Rectangular Kernel",xlab=xlab,ylab=ylab) grid() dev.off() bitmap(file="density4.png") mydensity4<-density(x,bw=bw,kernel="triangular",na.rm=TRUE) mydensity[,4] = signif(mydensity4\$y,3) plot(mydensity4,main="Triangular Kernel",xlab=xlab,ylab=ylab) grid() dev.off() bitmap(file="density5.png") mydensity5<-density(x,bw=bw,kernel="biweight",na.rm=TRUE) mydensity[,5] = signif(mydensity5\$y,3) plot(mydensity5,main="Biweight Kernel",xlab=xlab,ylab=ylab) grid() dev.off() bitmap(file="density6.png") mydensity6<-density(x,bw=bw,kernel="cosine",na.rm=TRUE) mydensity[,6] = signif(mydensity6\$y,3) plot(mydensity6,main="Cosine Kernel",xlab=xlab,ylab=ylab) grid() dev.off() bitmap(file="density7.png") mydensity7<-density(x,bw=bw,kernel="optcosine",na.rm=TRUE) mydensity[,7] = signif(mydensity7\$y,3) plot(mydensity7,main="Optcosine Kernel",xlab=xlab,ylab=ylab) grid() dev.off() load(file="createtable") a<-table.start() a<-table.row.start(a) a<-table.element(a,"Properties of Density Trace",2,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Bandwidth",header=TRUE) a<-table.element(a,mydensity1\$bw) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"#Observations",header=TRUE) a<-table.element(a,mydensity1\$n) a<-table.row.end(a) a<-table.end(a) table.save(a,file="mytable.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a,"Maximum Density Values",3,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Kernel",1,TRUE) a<-table.element(a,"x-value",1,TRUE) a<-table.element(a,"max. density",1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Gaussian",1,TRUE) a<-table.element(a,mydensity1\$x[mydensity1\$y==max(mydensity1\$y)],1) a<-table.element(a,mydensity1\$y[mydensity1\$y==max(mydensity1\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Epanechnikov",1,TRUE) a<-table.element(a,mydensity2\$x[mydensity2\$y==max(mydensity2\$y)],1) a<-table.element(a,mydensity2\$y[mydensity2\$y==max(mydensity2\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Rectangular",1,TRUE) a<-table.element(a,mydensity3\$x[mydensity3\$y==max(mydensity3\$y)],1) a<-table.element(a,mydensity3\$y[mydensity3\$y==max(mydensity3\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Triangular",1,TRUE) a<-table.element(a,mydensity4\$x[mydensity4\$y==max(mydensity4\$y)],1) a<-table.element(a,mydensity4\$y[mydensity4\$y==max(mydensity4\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Biweight",1,TRUE) a<-table.element(a,mydensity5\$x[mydensity5\$y==max(mydensity5\$y)],1) a<-table.element(a,mydensity5\$y[mydensity5\$y==max(mydensity5\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Cosine",1,TRUE) a<-table.element(a,mydensity6\$x[mydensity6\$y==max(mydensity6\$y)],1) a<-table.element(a,mydensity6\$y[mydensity6\$y==max(mydensity6\$y)],1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"Optcosine",1,TRUE) a<-table.element(a,mydensity7\$x[mydensity7\$y==max(mydensity7\$y)],1) a<-table.element(a,mydensity7\$y[mydensity7\$y==max(mydensity7\$y)],1) a<-table.row.end(a) a<-table.end(a) table.save(a,file="mytable2.tab") if (par2=="yes") { a<-table.start() a<-table.row.start(a) a<-table.element(a,"Kernel Density Values",8,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,"x-value",1,TRUE) a<-table.element(a,"Gaussian",1,TRUE) a<-table.element(a,"Epanechnikov",1,TRUE) a<-table.element(a,"Rectangular",1,TRUE) a<-table.element(a,"Triangular",1,TRUE) a<-table.element(a,"Biweight",1,TRUE) a<-table.element(a,"Cosine",1,TRUE) a<-table.element(a,"Optcosine",1,TRUE) a<-table.row.end(a) for(i in 1:par3) { a<-table.row.start(a) a<-table.element(a,mydensity[i,8],1,TRUE) for(j in 1:7) { a<-table.element(a,mydensity[i,j],1) } a<-table.row.end(a) } a<-table.end(a) table.save(a,file="mytable1.tab") }
 Top | Output | Charts | References | History | Feedback

 Cite this software as: Wessa, P. (2012), Kernel Density Estimation (v1.0.11) in Free Statistics Software (v1.1.23-r7), Office for Research Development and Education, URL http://www.wessa.net/rwasp_density.wasp/ The R code is based on : Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988), The New S Language, Wadsworth & Brooks/Cole (for S version) Scott, D. W. (1992), Multivariate Density Estimation. Theory, Practice and Visualization, New York: Wiley. Sheather, S. J. and Jones M. C. (1991), A reliable data-based bandwidth selection method for kernel density estimation., J. Roy. Statist. Soc. B, 683-690. Silverman, B. W. (1986), Density Estimation, London: Chapman and Hall. Venables, W. N. and Ripley, B. D. (2002), Modern Applied Statistics with S, New York: Springer.
 Top | Output | Charts | References | History | Feedback
 Top | Output | Charts | References | History | Feedback