我目前正在努力处理一个复杂的函数,我想在R中绘制。基本上它是分布和其他相关概率的组合,所以我必须修改正态分布。
最终的公式看起来像这样:
如何在R中绘制?
答案 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))
答案 1 :(得分:3)
您有等式,因此请使用stats::integrate
计算f(x)
定义中的定积分项。然后,作为示例:plot(0:1000, f(0:1000),t='l')
。