标签: kernel-density

如何在直方图上绘制密度估计值?

可能重复:
将密度曲线拟合为R中的直方图

x 是一个免费的数字向量.

我跑:

> hist(x,density(x), prob=TRUE)

Error Message I get:
Error in rank(x, ties.method = "min", na.last = "keep") : 
  unimplemented type 'list' in 'greater'
Run Code Online (Sandbox Code Playgroud)

有人建议我在调用hist时设置prob = TRUE.如果你能解释一下,它会很棒.谢谢.

r histogram kernel-density

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

改变个体密度以匹配ggplot2中的图例

我正在研究覆盖几个密度图以在ggplot2中创建一个图形.假设我在一系列年中每个12月都有数据点(在这种情况下是2004-2012),我想绘制每个12月月+年的密度函数并叠加它们.我想强调一个特定月份的密度线,使其虚线,其他所有密度线都是实心的.我有一个可重复的例子如下:

#Create vector of data for December 
set.seed(12345)
dec_emas = as.matrix(rnorm(496, 122, 250))

#create indicators for Dec04 ... Dec11, then attach to data frame w/ estimates
declab = c('Dec04', 'Dec05', 'Dec06', 'Dec07', 'Dec08', 'Dec09', 'Dec10', 'Dec11')
declabs = rep(declab, 62)

rownames(dec_emas) = declabs
colnames(dec_emas) = 'EMA'

#add in factor ID for the 8 levels 
dec04 = as.numeric(rownames(dec_emas) == 'Dec04')
dec05 = as.numeric(rownames(dec_emas) == 'Dec05')
dec06 = as.numeric(rownames(dec_emas) == 'Dec06')
dec07 = as.numeric(rownames(dec_emas) == 'Dec07')
dec08 = as.numeric(rownames(dec_emas) == 'Dec08')
dec09 …
Run Code Online (Sandbox Code Playgroud)

overlay r ggplot2 kernel-density

3
推荐指数
1
解决办法
1408
查看次数

ggplot2中的geom_density与基础R中的密度之间的差异

我在R中有一个数据如下:

  bag_id location_type            event_ts
2     155        sorter 2012-01-02 17:06:05
3     305       arrival 2012-01-01 07:20:16
1     155      transfer 2012-01-02 15:57:54
4     692       arrival 2012-03-29 09:47:52
10    748      transfer 2012-01-08 17:26:02
11    748        sorter 2012-01-08 17:30:02
12    993       arrival 2012-01-23 08:58:54
13   1019       arrival 2012-01-09 07:17:02
14   1019        sorter 2012-01-09 07:33:15
15   1154      transfer 2012-01-12 21:07:50
Run Code Online (Sandbox Code Playgroud)

class(event_ts)是哪里POSIXct.

我想在不同的时间找到每个位置的袋子密度.

我使用了命令geom_density(ggplot2),我可以很好地绘制它.我想知道density(base)和这个命令之间是否有任何区别.我的意思是他们正在使用的方法或他们正在使用的默认带宽等有任何区别.

我需要将密度添加到我的数据框中.如果我使用过该函数density(base),我知道如何使用该函数approxfun将这些值添加到我的数据框中,但是我想知道它在使用时是否相同geom_density(ggplot2).

r ggplot2 kernel-density density-plot

3
推荐指数
1
解决办法
2083
查看次数

KDE失败了两分?

以下简单示例返回一个奇异矩阵.为什么?有什么方法可以克服它吗?

In: from scipy.stats import gaussian_kde
Out:

In:  points
Out: (array([63, 84]), array([46, 42]))

In:  gaussian_kde(points)
Out: (array([63, 84]), array([46, 42]))

LinAlgError: singular matrix
Run Code Online (Sandbox Code Playgroud)

python numpy scipy kernel-density

3
推荐指数
1
解决办法
1486
查看次数

用pyab中的matplotlib对seaborn进行核密度估计的下限

我有一组测量的树木直径,我试图绘制一个直方图,核心密度估计叠加在python的顶部.seaborn模块让我这么简单,但是我找不到指定kde对负数应该为零的方法(因为树不能有负树直径).

我目前得到的是:

seaborn.distplot(C77_diam, rug=True, hist=True, kde=True)
Run Code Online (Sandbox Code Playgroud)

我查看了seaborn.kdeplot这是distplot调用的函数,但找不到任何有用的函数.有没有人知道这是否可以用seaborn完成,如果没有,是否可以更普遍地使用matplotlib?

我只是开始使用seaborn,因为我无法弄清楚如何用pyplot.hist()覆盖kde pyplot.plot().

python matplotlib kernel-density seaborn

3
推荐指数
1
解决办法
5583
查看次数

用r找到双峰分布的局部最小值

我的数据是预处理的图像数据,我想分开两个类.在理论上(并且希望在实践中),最佳阈值是双峰分布数据中两个峰值之间的局部最小值.

我的testdata是:http://www.file-upload.net/download-9365389/data.txt.html

我试着遵循这个线程:我绘制了直方图并计算了核密度函数:

datafile <- read.table("....txt")
data <- data$V1
hist(data)

d <- density(data) # returns the density data with defaults
hist(data,prob=TRUE)
lines(d) # plots the results
Run Code Online (Sandbox Code Playgroud)

但是如何继续?

我将计算密度函数的第一和第二导数,以找到局部极值,特别是局部最小值.但是我不知道如何在R中执行此操作并且density(test)似乎不是正常的功能.因此,请帮助我:如何计算导数并找到密度函数中两个峰之间的凹坑的局部最小值density(test)

statistics kernel r distribution kernel-density

3
推荐指数
1
解决办法
4563
查看次数

pandas.DataFrame.resample的高斯核密度平滑?

pandas.DataFrame.resample用来重新采样随机事件到1小时的时间间隔,我看到非常随机的结果,如果我将间隔增加到2或4小时似乎没有消失.这让我想知道Pandas是否有任何类型的方法来生成平滑密度内核,如高斯核密度方法,带有可调节带宽来控制平滑.我没有在文档中看到任何内容,但我想在发布到开发人员列表服务器之前发布这里,因为这是他们的偏好.Scikit-Learn 正是我想要的高斯核密度函数,所以我会尝试使用它,但它会成为Pandas的绝佳补充.

任何帮助是极大的赞赏!

hourly[0][344:468].plot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python time-series resampling kernel-density pandas

3
推荐指数
2
解决办法
3977
查看次数

如何使用scikit规范化核密度估计?

我正在使用KDE进行多类分类.我正在使用scikit实现它.如网站上所述,点x的KDE定义为,

我应该在比较不同类别的不同内核密度估计值时对结果进行标准化吗?

KDE的链接:http:
//scikit-learn.org/stable/modules/density.html#kernel-density-estimation

python machine-learning kernel-density scikit-learn

3
推荐指数
1
解决办法
1423
查看次数

R - 模拟从核密度估计获得的概率密度分布的数据

首先,我不完全确定这是否是发布此内容的正确位置,因为它可能会出现在更加统计数据的论坛中.但是,由于我打算用R实现这个,我认为最好在这里发布.如果我错了,请道歉.

所以,我想要做的是以下内容.我想模拟总共250,000个观测值的数据,根据经验数据(离散)得出的核密度估计值分配连续(非整数)值,原始值范围从-5到+5.这是我想要使用的分布图.

在此输入图像描述

对我来说非常重要的是我不会根据离散概率模拟新数据,而是连续模拟新数据,因为一个值可以说是2.89而不是3或2是非常重要的.所以新值将基于图中描绘的概率.模拟数据中最常见的值约为+2,而-4和+5附近的值则相当罕见.

我已经做了很多关于在R中模拟数据以及内核密度估计如何工作的阅读,但我真的没有向前发展.所以我的问题基本上需要两个步骤 - 我如何模拟数据(1)以及如何使用这个特定的概率分布模拟数据(2)?

在此先感谢,我希望你们可以帮助我解决这个问题.

simulation r kernel-density

3
推荐指数
1
解决办法
1440
查看次数

Scipy Gaussian KDE:矩阵不是正定的

我试图使用 scipy 来估计数据集在某些点的密度。

from scipy.stats import gaussian_kde
import numpy as np
Run Code Online (Sandbox Code Playgroud)

我有一个A3D 点数据集(这只是一个最小的例子。我的实际数据有更多维度和更多样本)

A = np.array([[0.078377  , 0.76737392, 0.45038174],
       [0.65990129, 0.13154658, 0.30770917],
       [0.46068406, 0.22751313, 0.28122463]])
Run Code Online (Sandbox Code Playgroud)

以及我想要估计密度的点

B = np.array([[0.40209377, 0.21063273, 0.75885516],
       [0.91709997, 0.79303252, 0.65156937]])

Run Code Online (Sandbox Code Playgroud)

但我似乎无法使用该gaussian_kde功能,因为

result = gaussian_kde(A.T)(B.T)
Run Code Online (Sandbox Code Playgroud)

回报

LinAlgError: Matrix is not positive definite
Run Code Online (Sandbox Code Playgroud)

我该如何修复这个错误?如何获得样品的密度?

python scipy kernel-density

3
推荐指数
1
解决办法
1635
查看次数