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

Pat*_*tar -3 r

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

最终公式看起来像这样:

积分

我怎样才能在R中绘制它?

Bac*_*lin 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)
Run Code Online (Sandbox Code Playgroud)

sf*sqrt(2*pi)因素是补偿缺少规范化.我不是百分百肯定我的数学是正确的,所以请自己验证一下.

编辑:正如Ben Bolker指出的那样,第一部分f可以简化dnorm,使代码更具可读性.

f <- function(x) dnorm(x, mf, sf)/(sqrt(2*pi)*sf) *
                 (1 - sf*sqrt(2*pi)*pnorm(x, mf, sf))
Run Code Online (Sandbox Code Playgroud)

曲线