2

我正在尝试验证一个函数是否为 pdf,即它具有以下属性: 1) f(x) 从 -infinity 到 infinity 的积分是 1, 2) 对于所有 x,f(x) > 0。此外,我还试图绘制一个 cdf 函数。

这是我在 R 脚本中的函数:

f <- function(x) ifelse(x>=-1 & x<=1, 1-abs(x), 0)
curve(f, -5, 5)

我尝试了各种方法来找到密度,但似乎无法编写一个脚本来告诉我 1)概率 X 等于 1,以及 2)所有值都 > 0。我尝试编写一些“ d" 此页面上的功能 ( http://ww2.coastal.edu/kingw/statistics/R-tutorials/prob.html ) 但无法正确格式化它们。有什么建议么?

4

1 回答 1

4

除非在少数特殊情况下,否则您将无法验证函数是否完全是 pdf。但是,如果您很好地了解函数的支持是什么(即函数非零或接近非零的值的集合),您可以大致做到这一点。

例如,取dnorm函数,即标准法线pdf。这在 -40 和 +40 之外实际上为零。您可以创建一个包含 10,000 个点的示例域,方法是

> xs <- seq(-40, 40, len=10000)

然后检查所有值是否大于或等于零就像

> all(dnorm(xs) >= 0)
TRUE

要检查函数是否集成到(大约)1,您可以执行

> integral <- integrate(dnorm, lower=-40, upper=40)
> abs(integral$value - 1) < 1e-10
TRUE

因此,您可以确信该函数dnorm描述了范围 (-40, 40) 上的概率分布。

要检查您在问题中定义的功能,显然范围是 (-1, 1) 所以您可以这样做

> xs <- seq(-1, 1, len=10000)
> all(f(xs) >= 0)
TRUE
> integral <- integrate(f, lower=-1, upper=1)
> abs(integral$value - 1) < 1e-10
TRUE

所以你的函数看起来很可能是pdf。

于 2013-10-27T23:10:01.033 回答