我正在尝试计算这个积分:
“A”和“Beta”是常数,“PHI”资本是正态定律N(0,1)的边际分布函数,“phi”是正态定律N(0,1)的密度并且P(tau <= t)= 1/2
这是我的实施:
integral <- function(A, beta) {
f <- function(x) {
# We have P(tau <= t) = 1/2
pnorm(qnorm(1/2,0,1) - beta*x / (sqrt(1-(beta^2))), 0, 1)*(1/sqrt(2*pi)*exp(-x^2 / 2)
}
integrate(f,lower=-Inf, upper = A)$value
}
我不太确定qnorm函数..有没有更好的方法来进行计算?
答案 0 :(得分:1)
不是“/”运算符优于“ - ”。意味着在这一行
pnorm(qnorm(1/2,0,1) - beta*x / (sqrt(1-(beta^2))), 0, 1)
你犯了错误。错误是
(qnorm(1/2,0,1) - beta*x)
###not pnorm(qnorm(1/2,0,1)- beta*x.... =>pnorm((qnorm(1/2,0,1) -
###beta*x)....
我使用此代码,我得到了答案
integral <- function(A, beta) {
f <- function(x) {
temp<-(qnorm(1/2,0,1) - beta*x) / (sqrt(1-(beta^2)))
pnorm(temp,0,1)*dnorm(x,0,1)
}
integrate(f,lower=-Inf, upper = A)$value
}
integral(0,0) ##.25
integral(10,.9) ##.5
如果你想要另一种方法来计算任何复杂的集成,你可以使用monte carlo方法或.....