【问题标题】:Divide density distributions in R [duplicate]在R中划分密度分布[重复]
【发布时间】:2013-06-26 18:46:29
【问题描述】:

我想在 R 中划分两个密度分布(或两个直方图)。我什至会采用“使用运算符从另一个中减去一个” - 但我没有看到明显的方法来做到这一点,除了采样和减/除很长的路要走。

是否有一个函数/R 包允许人们在不采样的情况下操纵 R 密度?

我是 R 的新手,我是 CERN 的根移植者,如果相关的话。

【问题讨论】:

  • 要明确一点:您有两个随机变量 x、y 的密度分布(最有可能来自样本),并且想要绘制商 x/y 的密度?
  • 如果你想在理论上的发行版上进行操作,有一系列的软件包,都以字母“distr”开头。
  • 里卡多,是的,这正是我想要的。 @DWin,谢谢,我会查看软件包(但是,分发版是实验样本,因此可能不起作用)。

标签: r histogram kernel-density


【解决方案1】:

对两个(或更多)密度进行操作的技巧是将它们的范围设置为相同。那么“x”向量将是相同的,而“y”向量将在通常的算术运算中表现得非常好。

> xx <- rnorm(100)
> yy <- rnorm(100)

> yd <- density(yy, from=-3, to=3)
> xd <- density(xx, from=-3, to=3)

> plot(xd,  col="red")

> str(xd)
List of 7
 $ x        : num [1:512] -3 -2.99 -2.98 -2.96 -2.95 ...
 $ y        : num [1:512] 0.0122 0.0126 0.0131 0.0136 0.0141 ...
 $ bw       : num 0.377
 $ n        : int 100
 $ call     : language density.default(x = xx, from = -3, to = 3)
 $ data.name: chr "xx"
 $ has.na   : logi FALSE
 - attr(*, "class")= chr "density"

> lines(yd$x, yd$y, col="red")
#  difference of the densities
> lines(yd$x, xd$y-yd$y, col="green")

【讨论】:

  • 我好像在重复自己:stackoverflow.com/questions/8808751/…
  • 我不知道这是否是答案。我认为他们想在给定每个随机变量的密度的情况下绘制两个随机变量的商(或差)的密度。
  • OP 要求的是密度比,...而不是一个比值的密度。
  • 我知道,但我对示例内容感到困惑。另外,你为什么要算术划分密度? PS:“OP”是什么意思?
  • 我将 OP 用于“原始海报”。这是万维网之前的 USENET 行话。
猜你喜欢
  • 1970-01-01
  • 2017-11-02
  • 2020-10-08
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多