标签: kernel-density

如何在R中执行加权的2d核密度估计?

我想在R中产生一个核密度估计,并且在所有不同的软件包中都有一些问题.我需要能够:

  1. 指定权重
  2. 指定带宽大小
  3. 指定箱尺寸

你会怎么做?代码段的奖励积分.

r kernel-density

5
推荐指数
1
解决办法
4648
查看次数

R ggplot2 - 简单绘图 - 不能指定对数轴限制

我正在尝试在ggplot2中的R中创建一个简单的密度图.这是我的代码很好用.

d <-  ggplot(result, aes(x=result$baseMeanA)) 
d + geom_density(colour="darkgreen", size=2, fill="darkgreen") + 
scale_x_log10() + scale_y_continuous(limits = c(0, 0.45))
Run Code Online (Sandbox Code Playgroud)

问题是我不能像我想的那样将x轴调整为负数.

scale_x_log10(limits= c(1, 10000))
Run Code Online (Sandbox Code Playgroud)

效果很好,但是

scale_x_log10(limits= c(-1, 10000))
Run Code Online (Sandbox Code Playgroud)

根本不起作用!它给了我这个错误:

if(zero_range(range)){:缺少值需要TRUE/FALSE时出错

请帮忙!

r ggplot2 kernel-density

5
推荐指数
2
解决办法
1万
查看次数

在python中实现基于FFT的基于FFT的核密度估计器,并将其与SciPy实现进行比较

我需要代码来做二维核密度估计(KDE),我发现SciPy实现太慢了.所以,我已经编写了一个基于FFT的实现,但有些事情让我很困惑.(FFT实现还强制执行周期性边界条件,这就是我想要的.)

该实现基于从样本创建简单的直方图,然后使用高斯进行卷积.这是执行此操作的代码,并将其与SciPy结果进行比较.

from numpy import *
from scipy.stats import *
from numpy.fft import *
from matplotlib.pyplot import *
from time import clock

ion()

#PARAMETERS
N   = 512   #number of histogram bins; want 2^n for maximum FFT speed?
nSamp   = 1000  #number of samples if using the ranom variable
h   = 0.1   #width of gaussian
wh  = 1.0   #width and height of square domain

#VARIABLES FROM PARAMETERS
rv  = uniform(loc=-wh,scale=2*wh)   #random variable that can generate samples
xyBnds  = linspace(-1.0, 1.0, N+1) …
Run Code Online (Sandbox Code Playgroud)

python numpy fft scipy kernel-density

5
推荐指数
1
解决办法
1911
查看次数

用透明颜色填充密度曲线

我有一个数据框,想要根据两列做一个叠加密度图.我希望颜色是透明的.我使用填充选项完成了此操作,并且基本上将填充分配为因子列.如果默认情况下有一个因子列,则所有填充都将是透明的.

但在这样的情况下,没有因素我们如何用透明填充它.

library("ggplot2")
vec1 <- data.frame(x=rnorm(2000, 0, 1))
vec2 <- data.frame(x=rnorm(3000, 1, 1.5))

ggplot() + geom_density(aes(x=x), fill="red", data=vec1) + 
  geom_density(aes(x=x), fill="blue", data=vec2)
Run Code Online (Sandbox Code Playgroud)

我尝试添加,geom_density(alpha=0.4)但它没有任何好处. 在此输入图像描述

r ggplot2 kernel-density density-plot

5
推荐指数
1
解决办法
8315
查看次数

使用kde2d(R)和ksdensity2d(Matlab)生成的2D KDE的差异

尝试将一些代码从Matlab移植到RI时遇到了问题.代码的要点是产生2D核密度估计,然后使用估计进行一些简单的计算.在Matlab中,使用函数ksdensity2d.m完成KDE计算.在R中,KDE计算使用MASS包中的kde2d完成.所以我想说我想计算KDE并只是添加值(这不是我打算做的,但它可以达到这个目的).在R中,这可以通过

    library(MASS)
    set.seed(1009)
    x <- sample(seq(1000, 2000), 100, replace=TRUE)
    y <- sample(seq(-12, 12), 100, replace=TRUE)
    kk <- kde2d(x, y, h=c(30, 1.5), n=100, lims=c(1000, 2000, -12, 12))
    sum(kk$z)
Run Code Online (Sandbox Code Playgroud)

给出答案0.3932732.在Matlab中使用ksdensity2d时,使用相同的确切数据和条件,答案为0.3768.从查看kde2d的代码,我注意到带宽除以4

    kde2d <- function (x, y, h, n = 25, lims = c(range(x), range(y))) 
    {
    nx <- length(x)
    if (length(y) != nx) 
     stop("data vectors must be the same length")
    if (any(!is.finite(x)) || any(!is.finite(y))) 
     stop("missing or infinite values in the data are not allowed")
    if (any(!is.finite(lims))) 
     stop("only finite values are allowed in …
Run Code Online (Sandbox Code Playgroud)

matlab r kernel-density

5
推荐指数
1
解决办法
1652
查看次数

自适应带宽内核密度估计

似乎有很多信息和工具可用于实现标准的多变量或单变量内核密度估计。但是,我目前正在使用的离散地理数据特别稀疏,并且倾向于聚集在人口密度高的地区。

也就是说,我在地图上有许多点(经度和纬度),并且我想根据这些点估计概率密度,但是我需要以某种方式对人口密度进行归一化。从环顾四周来看,似乎这类问题的适当方法将是为内核估计实现某种最邻近的自适应带宽。但是,似乎stats.gaussian_kde不支持自适应带宽。有谁知道我自己可能如何实现这一目标,或者是否有适用于自适应带宽KDE的软件包?

python kernel-density

5
推荐指数
1
解决办法
1080
查看次数

在Julia中估计概率分布并从中抽样

我试图使用Julia估计使用N个观察数据点(存储为Float64数字数组)的连续单变量分布,然后从该估计分布中进行采样.我没有先前的知识限制对某些发行家族的关注.

我正在考虑使用KernelDensity包来估计分布,但我不确定如何从结果输出中进行采样.

任何帮助/提示将不胜感激.

distribution kernel-density julia

5
推荐指数
1
解决办法
326
查看次数

rpy2 传递 python 保留关键字参数

我试图通过 python 使用 r 的密度函数,并且必须将“from”、“to”参数传递给密度函数。然而,由于“from”这个词是Python中的保留关键字,我该如何实现这一点呢?谢谢。这是到目前为止的代码。

r_density=robjects.r('density')
f_a = robject.FloatVector(a)
r_a = r_density(f_a, bw='SJ', n=1024) ## Here I need to add 'from' and 'to' arguments
Run Code Online (Sandbox Code Playgroud)

python r rpy2 kernel-density

5
推荐指数
1
解决办法
761
查看次数

限制海洋分布图KDE估计中x的范围

假设我们有一个数字在0到1之间的数组:

arr=np.array([ 0.        ,  0.        ,  0.        ,  0.        ,  0.6934264 ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.        ,  0.6934264 ,  0.        ,  0.6934264 ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.251463  ,
               0.        ,  0.        ,  0.        ,  0.87104906,  0.251463  ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.48419626,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        , …
Run Code Online (Sandbox Code Playgroud)

python kernel-density seaborn

5
推荐指数
2
解决办法
6970
查看次数

获取 Seaborn 联合图的最大密度坐标

给出以下示例脚本:

import seaborn as sns
import pandas as pd
import numpy as np
# Generate some random multivariate data
x, y = np.random.RandomState(8).multivariate_normal([0, 0], [(1, 0), (0, 1)], 1000).T
# Add to a dataframe
df = pd.DataFrame({"x":x,"y":y})
# Plot
p = sns.jointplot(data=df,x='x', y='y',kind='kde')
Run Code Online (Sandbox Code Playgroud)

...给出以下情节:

在此输入图像描述

我如何找到 x 轴和 y 轴上密度最大的位置?

我想注释中心图最密集的区域,并花了一段时间搜索每个图的属性,但似乎没有什么突出的。我认为这可能就像获取顶部 KDE 图的最大 y 轴值和右侧 KDE 图的最大 x 轴值一样简单,但到目前为止还不容易找到。

python kernel-density seaborn

5
推荐指数
0
解决办法
459
查看次数

标签 统计

kernel-density ×10

python ×5

r ×5

ggplot2 ×2

seaborn ×2

density-plot ×1

distribution ×1

fft ×1

julia ×1

matlab ×1

numpy ×1

rpy2 ×1

scipy ×1