【发布时间】:2020-12-30 00:09:24
【问题描述】:
我正在尝试在 Stata 中使用 10000 个随机样本进行模拟,用于 (i) 带有 pdf 的变量 X
f(x) = 2*x*exp(-x^2), X>0,和 (ii) Y=X^2
我计算出 F 的 cdf 为 1-exp(-x^2),所以 F 的倒数是 sqrt(-ln(1-u).
我在Stata中使用了以下代码:
(1)
clear
set obs 10000
set seed 527665
gen u= runiform()
gen x= sqrt(-ln(1-u))
histogram x
summ x, detail
(mean 0.88, sd 0.46)
(2)
clear
set obs 10000
set seed 527665
gen u= runiform()
gen x= (sqrt(-ln(1-u)))^2
summ x, detail
(mean 0.99, sd 0.99)
(3)
clear
set obs 10000
set seed 527665
gen u= rexponential(1)
gen x= 2*u*exp(-(u^2))
summ x, detail
(mean 0.49, sd 0.28)
(4)
clear
set obs 10000
set seed 527665
gen v= runiform()
gen u=1/v
gen x= 2*u*exp(-(u^2))
histogram x
summ x, detail
(mean 0.22, sd 0.26)
我的查询是:(i)(1)和(2)基于概率积分变换,我遇到过但不明白。如果(1)和(2)是有效的方法,这背后的直觉是什么,(ii)(3)的输出似乎不正确;我不确定我是否正确应用了指数函数,以及比例参数是什么(在 stata 帮助中似乎对此没有解释)(iii)(4)的输出似乎也不正确,我是想知道为什么这种方法有缺陷。
谢谢
【问题讨论】:
标签: random stata exponential-distribution