R
計算截斷法線的期望值
使用米爾斯比結果,讓 X∼N(μ,σ2) , 然後
E(X|X<α)=μ−σϕ(a−μσ)Φ(a−μσ)
但是,在 R 中計算它時,我沒有得到正確的結果
> mu <- 1 > sigma <- 2 > a <- 3 > x <- rnorm(1000000, mu, sigma) > x <- x[x < a] > mean(x) [1] 0.4254786 > > mu - sigma * dnorm(a, mu, sigma) / pnorm(a, mu, sigma) [1] 0.7124
我究竟做錯了什麼?
您的公式實現是錯誤的,因為, ϕ(x−μσ)=1√2πe−12(x−μσ)2≠fX,μ,σ(x)=1√2πσe−12(x−μσ)2
如您所見,我們有一個額外的 σ 在分母中 fX,μ,σ(x) ,產生: ϕ(x−μσ)=σfX,μ,σ(x)dnorm
方法給你 fX,μ,σ(x) , 你需要將它與 σ 獲得 ϕ . 由於您的 σ=2 ,這實際上可以通過再次減去第二項來完成,即 1−0.7124=0.2876 : 1−0.2876−0.2876=0.4247這接近您的估計。