R

計算截斷法線的期望值

  • April 23, 2019

使用米爾斯比結果,讓 $ X \sim N(\mu, \sigma^2) $ , 然後

$ E(X| X<\alpha) = \mu - \sigma\frac{\phi(\frac{a- \mu}{\sigma})}{\Phi(\frac{a-\mu}{\sigma})} $

但是,在 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

我究竟做錯了什麼?

您的公式實現是錯誤的,因為, $$ \phi\left(\frac{x-\mu}{\sigma}\right)=\frac{1}{\sqrt{2\pi}}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}\neq f_{X,\mu,\sigma}(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} $$ 如您所見,我們有一個額外的 $ \sigma $ 在分母中 $ f_{X,\mu,\sigma}(x) $ ,產生: $$ \phi\left(\frac{x-\mu}{\sigma}\right)=\sigma f_{X,\mu,\sigma}(x) $$ dnorm方法給你 $ f_{X,\mu,\sigma}(x) $ , 你需要將它與 $ \sigma $ 獲得 $ \phi $ . 由於您的 $ \sigma=2 $ ,這實際上可以通過再次減去第二項來完成,即 $ 1-0.7124=0.2876 $ : $$ 1-0.2876-0.2876=0.4247 $$ 這接近您的估計。

引用自:https://stats.stackexchange.com/questions/404582

comments powered by Disqus