【问题标题】:multivariate density calculations in RR中的多元密度计算
【发布时间】:2018-04-10 11:52:26
【问题描述】:

我有一个包含许多数值变量的数据框。有没有一种方法可以计算(不绘制)比其他密度低的全局密度区域?换句话说,有没有一种方法可以定位超空间中数据点非常稀疏的区域?

【问题讨论】:

    标签: r probability-density multivariate-partition


    【解决方案1】:

    假设您的数据框看起来像这样

    df <- data.frame(x = c(rnorm(100,0,3),rnorm(100,12,1),rnorm(100,20,3)), 
                     y = c(rnorm(75,5,2),rnorm(75,-5,3),rnorm(140,10,2),rnorm(10,25,10)))
    

    您可以将每个密度存储在一个向量中

    dsx <- density(df$x)
    dsy <- density(df$y)
    

    现在看看dsx 的结果。你会看到我们得到一个列表,其中包含:

    • dsx$x 评估密度的坐标

    • dsx$y 这些坐标处的估计密度

    如果要查找人口稀少地区的坐标,只需检索低密度对应的坐标即可。

    dsx$x[which(dsx$y) < 0.03] # returns coordinates for which density(x) < 0.03
    

    要结合所有坐标(此处为 xy),我将创建一个包含坐标及其密度的数据框,并根据密度值对其进行过滤。

    df_ds <- data.frame(dsx$x, dsy$x, dsx$y, dsy$y)
    df_ds[which((df_ds$dsx.y < 0.03) & (df_ds$dsy.y < 0.01)), c("dsx.x","dsy.x")]
    

    默认情况下,每个坐标您将获得512density。您可能希望通过在density 中设置n 来增加此步骤。确保在每个坐标上设置相同的值。

    dsx <- density(df$x, n=2048)
    

    【讨论】:

    • 这对于 1-2D 案例来说是一个不错的选择,但我需要一个多元估计,其中多元分布是未知的
    猜你喜欢
    • 2017-02-11
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 2021-05-01
    • 2014-03-17
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多