问题标签 [kernel-density]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - KDE 以两点失败?
下面的简单示例返回一个奇异矩阵。为什么?有什么办法克服吗?
python - 2D kernel density e. in python - x axis crowded and shrinked
I have a x,y
distribution of points for which I obtain the KDE through scipy.stats.gaussian_kde.
Both kms
and mins
are a list with float values representing the time needed to cover the amount of kilometres.
The values are distributed between:
mins
: [3.48996296296 - 317.678638298]kms
: [0.180707205317 - 8086.94362983]
In the result I will get a high and narrow line -- the y values are shown normally, but the x-axis is very narrow and shrunken (the ticks are overlapping). Can somebody point out how the x axis can be more stretched?
Here is my code to generate the plot:
And here is the plot itself:
r - 如何从 geom_density/stat_density 显示 AUC 的值
我使用 ggplot2 和 stat_density 制作了一些密度图。我的同事提到他不相信每条曲线下的面积总和为 1。所以,我开始计算曲线下的面积,我想知道是否有比我所做的更好的方法。
这是我所做的一个例子:
结果:
它似乎工作得很好,但我想知道是否有更好的方法来做到这一点。特别是,我对间隔(即 dx,我想)的计算似乎可能是一个问题,特别是如果不同的密度曲线使用不同的间隔。
r - 参考R中不同大小的间隔重新组织数据
我有以下数据集,其数量被称为(不同大小的)间隔:
我想获得一个(近似的)数据集,如下所示:
为此,我尝试了以下方法:首先,我使用sample(6000:7500, 704790, replace=TRUE)
每一行并连接结果来创建rpop
生成观察的向量。然后,我应用了函数density
(我尝试了不同的参数值bw
来平滑分布)
d$x
给出所需的收入水平,而数量与d$y
但是,我想知道是否有更好(更直接或更优雅)的方法来获得相同的结果。
r - 未找到 LSCV.density 对象 myWin
我正在尝试执行 LSCV.density 函数(它取代了先前版本中的 CV.sm 函数)作为 sparr 包中二元核密度估计的一部分。
own <- readOGR(".", "caseControlOWIN2") myWin <- owin(poly=list( x = rev(own@polygons[[1]]@Polygons[[1]]@coords[-1,1]) , y = rev(own@polygons[[1]]@Polygons[[1]]@coords[-1,2]))) plot(myWin) data.sp <- spTransform(data.sp, CRS("+ proj=lonlat +datum=WGS84") + 点(data.sp) 点(data.sp) 坐标(data.sp) data.sp$finalid == "STY" which(data.sp$finalid == "STY" ) 长度(其中(data.sp$finalid == "STY")) 绘图(myWin) 点数(data.sp[data.sp$finalid == "STY",]) 点数(data.sp[data.sp$ finalid == "NEG",]) plot(myWin) plot(myWin, main = "cases") axis(1) axis(2) n1 <- length(which(data.sp$finalid == "STY")) n2 <- 长度(其中(data.sp$finalid == "NEG")) LSCV.density(数据,hlim=NULL,res=128,edge=TRUE,WIN=myWIN,quick=FALSE,comment=TRUE) 正在初始化... LSCV.density 中的错误(数据,hlim = NULL,res = 128,edge = TRUE,WIN = myWIN,:对象 'myWIN' 不是成立
那么它不应该从我之前输入的内容中识别出 myWin 吗?我在这里做错了什么?
r - 在 R 中为 2D 核密度估计实现不同的核
我正在寻找一些帮助来理解如何实现二维核密度方法,具有各向同性方差和二元正态核,但不是使用典型的距离,因为数据在表面上地球,我需要使用大圆距离。
我想在 R 中复制它,但我不知道如何为任何内置估计器使用简单欧几里得距离以外的距离度量,并且因为它使用复杂的卷积方法来添加内核. 有没有人有办法编写任意内核?
python - sklearn 中的 2D KDE 带宽与 scipy 中的带宽之间的关系
我正在尝试比较二维数组的sklearn.neighbors.KernelDensity与scipy.stats.gaussian_kde的性能。
从这篇文章中,我看到带宽(bw)在每个函数中的处理方式不同。这篇文章提供了一个设置正确 bw in 的方法,scipy
因此它将等同于sklearn
. 基本上它将 bw 除以样本标准偏差。结果是这样的:
x
我用来获取 KDE 的示例数组在哪里。这在 1D 中工作得很好,但我不能让它在 2D 中工作。
这MWE
是我得到的:
(iso2
显示为指数,因为sklearn
返回对数值)
我得到的结果iso1
是iso2
不同的,我不知道应该如何影响带宽(在任一函数中)以使它们相等(因为它们应该)。
添加
sklearn
聊天室(由 ep)建议我应该在计算内核之前缩放值,以便(x,y)
获得scipy
与sklearn
.
所以这就是我所做的:
即:我在获取内核之前缩放了两个维度,scipy
同时保持获取内核的行sklearn
保持不变。
这给出了更好的结果,但获得的内核仍然存在差异:
其中红点是(x1,y1)
代码中的点。因此可以看出,密度估计的形状仍然存在差异,尽管非常小。也许这是可以实现的最好的?
r - 有谁知道如何在 R 的 ks 包中使用 kde 来运行 4 维或更大的问题
我正在尝试使用kskde
包中的函数获取四维数据集的 kde ,但没有成功。我正在运行以下代码:
哪里m
是一个n x 4
矩阵。我的数据集中有 n 个具有 4 个不同变量的特征。我试过用n x 3
矩阵运行这个函数,这个函数效果很好,返回一个 3 维数组内核密度估计。当我使用四维数据矩阵运行它时,它说我必须提供评估点(这很奇怪,因为文档说我只需要在 d > 4 时这样做)。
因此,我最终创建了一个新的评估点矩阵,其大小为 n.grid x 4,其中 n.grid 与原始数据矩阵 m 等距点。但是,当我运行它时,它会返回给我一个 1 维估计数组,而不是 4 维数组。
有谁知道如何正确运行大于 3 的 kde?
r - R中的概率密度函数用于预测事件的下一个值
我需要在 R 中对以下数据进行概率密度预测:
是 R 中的 data.frame,如:
目标和想法是基于几年做出预测,并对可用数据的最后一年进行“预测”。
我是 R 新手,因此欢迎提出任何建议、建议等。提前致谢。
python - python中matplotlib的seaborn内核密度估计下限
我有一组测量的树直径,并试图绘制一个直方图,其中核密度估计叠加在 python 的顶部。seaborn 模块让我可以很简单地做到这一点,但我无法指定负数的 kde 应该为零(因为树不能有负的树直径)。
我目前得到的是:
我查看了 seaborn.kdeplot 这是 distplot 调用但找不到任何有用的函数。有谁知道这是否可以用 seaborn 完成,如果不能,是否可以更普遍地用 matplotlib 完成?
我才开始使用 seaborn,因为我不知道如何用 pyplot.hist() 覆盖 kde pyplot.plot()。