r - R中二维核密度估计的混淆

核密度估计器用于估计特定的概率密度函数(引用 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)

最佳答案

什么是核密度估计器? 本质上,它在数据的每个点(法线密度的中心是该点)上拟合一条小正态密度曲线,然后将所有小正态密度加起来到核密度估计器。

为了便于说明,我将添加来自 one of your links 的一维核密度估计器的图像。 .

二维核密度怎么样?

# 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) 

该函数创建一个从 min(a)max(a) 和从 min(b)max 的网格(b)kde2d 现在不是在 ab 中的每个值上拟合一个微小的 1D 法线密度,而是在每个点上拟合一个微小的 2D 法线密度网格。就像在一维情况下的核密度一样,它然后将所有密度值相加。

颜色代表什么意思? 正如@cel 在评论中指出的那样:估计概率取决于两个变量,所以我们现在有三个轴(abestimated probability).一种可视化 3 轴的方法是使用 等概率图。这听起来很花哨,但它与我们从天气预报中了解到的高/低压图像基本相同。

您正在使用

filled.contour(density, 
    color.palette = colorRampPalette(c('white', 'blue', 'yellow', 'red', 'darkred')))))

所以从低到高,绘图将着色为白色蓝色黄色红色和最终 darkred 表示估计概率的最高值。这导致以下情节:

https://stackoverflow.com/questions/38761453/

相关文章:

oracle - 更新分区键,不允许行移动

php - 上传文件在php中不起作用

java - 将 List> 转换为 int[][]

scala - 为什么 For Comprehension 生成器会抑制 Option 类型?

django - 不可散列类型 : 'list' error when trying to add

c# - 如何在装饰器中定义事件和属性

php - 使用 cronjob 运行 php 文件中的函数

php - 如何过滤此 PHP 数组对象中的唯一对象

string - 如何在 go 模板中连接两个字符串?

laravel - 为什么在 Laravel 中注销路由不起作用?