Lin*_* Ma 1 statistics r kernel-density scikit-learn probability-density
核密度估计器用于估计特定的概率密度函数(请参阅mvstat.net和sckit-learn docs以获取参考)
我的困惑是关于究竟做了kde2d()什么?它是否估计了下面例子中两个随机变量f(a,b)的联合分布概率密度函数?颜色是什么意思?
这是我所指的代码示例.
b <- log10(rgamma(1000, 6, 3))
a <- log10((rweibull(1000, 8, 2)))
density <- kde2d(a, b, n=100)
colour_flow <- colorRampPalette(c('white', 'blue', 'yellow', 'red', 'darkred'))
filled.contour(density, color.palette=colour_flow)
Run Code Online (Sandbox Code Playgroud)
什么是内核密度估算器? 基本上它在数据的每个点(正常密度的中心就是那个点)上拟合一点正常密度曲线,然后将所有小的正常密度加到核密度估计器上.
为了便于说明,我将从您的一个链接添加一维内核密度估算器的图像. 
二维内核密度怎么样?
# library(MASS)
b <- log10(rgamma(1000, 6, 3))
a <- log10((rweibull(1000, 8, 2)))
# a and b contain 1000 values each.
density <- kde2d(a,b,n=100)
Run Code Online (Sandbox Code Playgroud)
这个功能可以从创建一个网格min(a),以max(a)从min(b)到max(b).相反,在装修上的每个值一个很小的1D正常密度的a还是b,kde2d现在套在网格中的每一点微小的2D正常密度.就像在1维情况下的内核密度一样,它然后将所有密度值相加.
颜色是什么意思?
正如@cel在评论中指出的那样:估计的概率取决于两个变量,因此我们现在有三个轴(a,b和estimated probability).可视化3个轴的一种方法是使用等概率轮廓.这听起来很奇特,但它与我们从天气预报中得知的高/低压图像基本相同.
您正在使用
filled.contour(density,
color.palette = colorRampPalette(c('white', 'blue', 'yellow', 'red', 'darkred')))))
Run Code Online (Sandbox Code Playgroud)
因此,从低到高,该地块将被着色white,blue,yellow,red并最终darkred用于估计概率最高值.这导致以下情节: