问题标签 [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.
r - 使用 sm.density.compare 时查找最可能分布的函数
我正在使用“sm”包来研究我的数据集中的分布。对于那些好奇的人,我将招聘实践视为年龄的函数,并试图确定群体的年龄分布是否会因性别或教育等属性而发生变化。
SM 包对我来说是一种新体验,我试图找到一个函数来描述最有可能生成数据集的密度函数,前提是零假设为真(两个密度图都是由从同一分布中抽取的随机样本生成的)。我没有发布图像所需的声誉,但我在 Imgur 上发现了这个也是用 sm.density.compare 生成的。
我们在图像中看到的是两个核密度图和一个青色区域,我理解它是包含真实密度图的 95% 可能性的参考带,前提是两条线是由来自相同分布的数据生成的。
我想找出一种方法来计算一个向量,该向量通过 x 轴上每个值的参考带内最可能的点。根据规则,我当然愿意接受关于我疯了或应该使用另一个包的建议。
r - 用 r 在双峰分布中找到局部最小值
我的数据是经过预处理的图像数据,我想分开两个类。理论上(并希望在实践中)最佳阈值是双峰分布数据中两个峰值之间的局部最小值。
我的测试数据是:http ://www.file-upload.net/download-9365389/data.txt.html
我试图关注这个线程:我绘制了直方图并计算了核密度函数:
但如何继续?
我将计算密度函数的一阶和二阶导数以找到局部极值,特别是局部最小值。但是我不知道如何在 R 中做到这一点,而且density(test)
似乎不是一个正常的功能。因此请帮助我:如何计算导数并找到密度函数中两个峰之间的凹坑的局部最小值density(test)
?
python - 如何使用 matplotlib 在 python 中绘制 3D 密度图
我有一个 (x,y,z) 蛋白质位置的大型数据集,并且想将高占用率区域绘制为热图。理想情况下,输出应该类似于下面的体积可视化,但我不确定如何使用 matplotlib 实现这一点。
我最初的想法是将我的位置显示为 3D 散点图并通过 KDE 为它们的密度着色。我用测试数据将其编码如下:
这很好用!但是,我的真实数据包含数千个数据点,计算 kde 和散点图变得非常缓慢。
我的真实数据的一个小样本:
我的研究表明,更好的选择是在网格上评估高斯 kde。我只是不确定如何在 3D 中做到这一点:
scikit-learn - 为什么 scikit 学习返回对数密度?
sklearn.neighbors.kde.KernelDensity 的函数 score_samples返回密度的对数。与返回它自身的密度相比,它有什么优势?
我知道对数对于介于 0 和 1 之间的概率是有意义的(参见这个问题:为什么在 GaussianNB [scikit-learn] 中使用对数概率估计?)但是为什么你对介于 0 和 1 之间的密度做同样的事情无穷?
有没有办法直接估计对数密度,还是只是从估计的密度中取对数?
r - 在 ggplot2 中组合密度图
我正在尝试改进包含多个密度图的图形。我像这样生成图形:
我不想单独可视化每个密度,而是想将它们组合成一个“平均”密度,并指出每个点的密度有多一致(就像stat_smooth()
函数产生的置信界限一样)。
我实际上尝试过使用stat_smooth()
,但收到此错误:
有没有办法stat_smooth()
在这种情况下使用?
谢谢!
python - gaussian_filter 和 gaussian_kde 中 sigma 和带宽的关系
如果适当地选择了每个函数中的和参数,则在给定的数据集上应用函数scipy.ndimage.filters.gaussian_filter和scipy.stats.gaussian_kde可以得到非常相似的结果。sigma
bw_method
例如,我可以通过sigma=2.
在gaussian_filter
(左图)和(右图)bw_method=sigma/30.
中设置来获得以下图的随机二维点分布gaussian_kde
:
(MWE在问题的底部)
这些参数之间显然存在关系,因为一个对数据应用高斯滤波器,另一个应用高斯核密度估计器。
每个参数的定义是:
sigma : 标量或标量序列 高斯核的标准偏差。每个轴的高斯滤波器的标准偏差作为一个序列或单个数字给出,在这种情况下,它对所有轴都是相等的。
鉴于高斯算子的定义,我可以理解这一点:
- scipy.stats.gaussian_kde,:
bw_method
_
bw_method:str,标量或可调用,可选用于计算估计器带宽的方法。这可以是“scott”、“silverman”、标量常量或可调用对象。如果是标量,这将直接用作 kde.factor。如果是可调用的,它应该将 gaussian_kde 实例作为唯一参数并返回一个标量。如果无(默认),则使用“斯科特”。有关详细信息,请参阅注释。
在这种情况下,我们假设 for 的输入bw_method
是一个标量(浮点数),以便与sigma
. 这是我迷路的地方,因为我在任何地方都找不到有关此kde.factor
参数的信息。
如果可能的话,我想知道的是连接这两个参数(即:以及何时使用浮点数)的精确数学方程。sigma
bw_method
MWE:
statistics - Graphing two cumulative distributions in Stata
I'm trying this code (just below), Stata seems to read it -- it does not show any errors --, but it does not generate any variables. Here it is:
cumul price if dummy==1, gen(cprice1)
cumul price if dummy==0, gen (cprice2)
line cprice1 cprice2 price
Could you guys help me? I could graph two kernel density distributions with a condition of "if" for the dummy, with a similar code, in which I stored the results for latter graphing them -- following the help files in Stata. But I could not do this with the cumulative distributions.
r - 从核密度生成随机样本时的不同结果
最后一个直方图是错误的。我以前用过density
,我发现它对于更复杂的分布是准确的。为什么在这种情况下它表现如此糟糕?谢谢
python - Python - 获取最密集点的坐标
我正在使用 numpy 和 scipy 从 3D 坐标信息生成密度图。我可以通过使用以下代码生成 KDE 来成功生成数据的密度图
但是我如何使用这些信息来找到与密度最大的 3D 点相关联的坐标呢?
我试过了
它返回一个值,然后我可以找到 with 的索引
但后来我打了一个空白,因为我似乎无法使用该索引从 xyz 获取相关坐标,我不确定这是否是正确的方法。
r - ggplot2:在两个密度图上排列 x 限制
我有一系列密度估计值,我想在 ggplot2 中进行比较。到目前为止,我不依附于我选择的任何细节(例如,如果这些都在一个情节上,我是否应该使用 facets、grid.arrange 等)我愿意接受建议:
第一次尝试:
很好,但我希望轴相同,以便它们具有可比性。
我尝试使用设置限制,coord_cartesian(xlim=c(0,5))
但出现错误,例如
我也尝试在中设置限制,scale_x_log10(limits=c(0,5)
但我得到了
有没有更好的方法来排列这些图表,以便它们更容易比较?我愿意接受任何解决方案。
我的数据是这种形式: