R是否有类似于Mathematica中TransformedDistribution的功能?

3

我有一个随机变量X和一个转换f,我想知道f(X)的概率分布函数,至少是近似的。在Mathematica中有TransformedDistribution,但我在R中找不到类似的东西。正如我所说,某种程度上的近似解决方案也可以。

1个回答

3

您可以查看 distr 包。例如,假设 y = x^2+2x+1,其中 x 正态分布的均值为 2,标准差为 5。您可以:

require(distr)
x<-Norm(2,5)
y<-x^2+2*x+1
#y@r gives random samples. We make an histogram.
hist(y@r(10000))
#y@d and y@p are the density and the cumulative functions
y@d(80)
#[1] 0.002452403
y@p(80)
#[1] 0.8891796

看起来不错。但是我得到了 y@p(-1) = 0.08723655,这很奇怪,因为 y 永远不应该是负数... - frank
1
我研究了一下,似乎表达式 x^2+2*x+1 被解释为 独立 随机变量的和,即 x^22*x 分别被单独处理。如果你定义 y<-(x+1)^2,就可以得到正确的结果。我猜这需要 distr 维护者的关注。 - nicola
1
太棒了,感谢你的所有工作。尽管有个小错误,但这正是我想要的。 - frank
2
实际上,如果您查看distrARITH(),就会讨论这个问题。因此,这是预期的行为(请查看“表达式中的多个实例和独立性”部分)。 - nicola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接