我目前正在努力解决我想在 R 中绘制的复杂函数。基本上它是分布和其他相关概率的组合,所以我必须修改正态分布。
最终公式将如下所示:
我怎样才能在R中绘制它?
由于积分是正态分布的累积 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))
你有方程,所以用它来计算你定义stats::integrate
中的定积分项。f(x)
然后,作为一个例子: plot(0:1000, f(0:1000),t='l')
.