如何在R中绘制这个复杂的积分?

时间:2012-09-10 10:21:41

标签: r

我目前正在努力处理一个复杂的函数,我想在R中绘制。基本上它是分布和其他相关概率的组合,所以我必须修改正态分布。

最终的公式看起来像这样:

integral

如何在R中绘制?

2 个答案:

答案 0 :(得分:5)

由于积分是正态分布的累积PDF(缺失的归一化因子除外),您可以使用pnorm计算它。

sf <- 1
mf <- 0
f <- function(x) 1/(2*sf^2*pi)*exp(-.5*((x-mf)/sf)^2) *
                 (1 - sf*sqrt(2*pi)*pnorm(x, mf, sf))
curve(f, from=-2, to=2)

sf*sqrt(2*pi)因子是为了弥补缺失的标准化。我不是100%肯定我的数学是正确的,所以请自己验证。

修改Ben Bolker指出f的第一部分可以使用dnorm进行简化,使代码更具可读性。

f <- function(x) dnorm(x, mf, sf)/(sqrt(2*pi)*sf) *
                 (1 - sf*sqrt(2*pi)*pnorm(x, mf, sf))

curve

答案 1 :(得分:3)

您有等式,因此请使用stats::integrate计算f(x)定义中的定积分项。然后,作为示例:plot(0:1000, f(0:1000),t='l')