根据R中的2D密度图计算值的概率

蒂姆

我正在寻找一个函数来计算B和R某种组合的可能性。数据的当前插图如下所示:

ggplot(df, aes(R,B)) +
geom_bin2d(binwidth = c(1,1))

在此处输入图片说明

有没有一种方法可以根据这两个正相关的离散相关变量来计算每种组合的概率(例如R = 23,B = 30)?

可以使用stat_density_2d来解决还是有更好的方法?

谢谢。

乔恩·斯普林

stat_density_2dMASS::kde2d在引擎盖下使用我想有很多方法可以做到这一点,但我们可以将数据输入该函数并将其转换为整洁的数据,以获得该类型估计的平滑版本。

首先,一些像您这样的数据:

library(tidyverse)
set.seed(42)
df <- tibble(
  R = rlnorm(1E4, 0, 0.2) * 100,
  B = R * rnorm(1E4, 1, 0.2)
)

ggplot(df, aes(R,B)) +
  geom_bin2d(binwidth = c(1,1))

在此处输入图片说明

在这里运行密度并转换为与数据具有相同坐标的小标题。(是否有更好的方法可以做到这一点?)

n = 201 # arbitrary grid size, chosen to be 1 more than the range below 
        #   so the breaks are at integers
smooth <- MASS::kde2d(df$R, df$B, lims = c(0, 200, 0, 200),
                      # h = c(20,20),  # could tweak bandwidth here 
                      n = n) 
df_smoothed <- smooth$z %>% 
  as_tibble() %>%
  pivot_longer(cols = everything(), names_to = "col", values_to = "val") %>% 
  mutate(R = rep(smooth$x, each = n), # EDIT: fixed, these were swapped
         B = rep(smooth$y, n))

df_smoothed现在拥有R和B维度中所有从0:200开始的坐标,并具有val中每种组合的概率这些加起来几乎等于1(在这种情况下为99.6%)。我认为剩余的smidgen是超出指定范围的坐标的概率。

sum(df_smoothed$val)
#[1] 0.9960702

任何特定组合的机会都只是该点的密度值。因此,R = 70和B = 100的机会是0.013%。

df_smoothed %>%
  filter(R == 70, B == 100)
## A tibble: 1 x 4
#  col        val     R     B
#  <chr>    <dbl> <int> <int>
#1 V101   0.0000345    70   100

R在50-100之间和B在50-100之间的机会是36.9%:

df_smoothed %>%
  filter(R %>% between(50, 100),
         B %>% between(50, 100)) %>%
  summarize(total_val = sum(val))
## A tibble: 1 x 1
#total_val
#<dbl>
#  1     0.369

以下是平滑数据和原始数据的外观:

ggplot() +
  geom_tile(data = df_smoothed, aes(R, B, alpha = val), fill = "red") +
  geom_point(data = df %>% sample_n(500), aes(R, B), size = 0.2, alpha = 1/5)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中绘制2张图的pdf(概率密度函数)

来自分类Dev

Python 中的 3D 概率密度图

来自分类Dev

计算并生成R?中超出概率的图

来自分类Dev

计算密度图 D

来自分类Dev

R图概率密度函数

来自分类Dev

使用KDE的边缘效果密度2D图

来自分类Dev

R中的条件概率图

来自分类Dev

R中的多维(2D)函数图

来自分类Dev

在XY平面上根据值用颜色绘制2D图

来自分类Dev

计算R编程中的概率

来自分类Dev

计算R中的2D样条曲线

来自分类Dev

R:找到密度图的最大值

来自分类Dev

使用Python绘制2D内核密度估计图

来自分类Dev

根据x轴更改ggplot2中密度图的颜色

来自分类Dev

概率密度函数的理论图

来自分类Dev

ggplot2:覆盖密度图R

来自分类Dev

根据R?中2个栅格之间的土地覆盖类型计算R2值。

来自分类Dev

在R中设计多元密度图

来自分类Dev

R中的密度图-直方图-ggplot

来自分类Dev

如何根据输入值及其概率计算最可能的输出?

来自分类Dev

使用概率包计算R中的条件概率

来自分类Dev

根据精度计算2D信标位置

来自分类Dev

如何将 shapiro 测试 p 值添加到 R 中的密度图

来自分类Dev

如何计算R中的转移概率

来自分类Dev

2d密度面比例

来自分类Dev

如何计算R中的海水密度

来自分类Dev

R中cdplot()的密度计算问题

来自分类Dev

根据R中的值以渐变颜色显示条形图

来自分类Dev

如何制作Matpotlib曲面图的2D Z值?