特徵函數能夠唯一確定隨機變量的概率分布,如果隨機變量的概率密度函數$f(x)$存在,特徵函數相當於 $f(x)$的傅立葉變換。
如果隨機變量分布的矩母函數存在,那麼矩母函數和特徵函數之間存在關係。
可以使用蒙特卡洛模擬來計算矩生成函數函數,
> F=function(x) ifelse(x<0,0,1-exp(-x)/3)> Finv=function(u) uniroot(function(x) F(x)-u,c(-1e-9,1e4))$root或
> Finv=function(u) ifelse(3*u>1,0,uniroot(function(x)+ F(x)-u,c(-1e-9,1e4))$root))
> plot(u,v,type="b",col='blue')> lines(u,Mtheo(u),col="red")
可以計算
有限總和始終可以通過數字計算。就算在這裡 不存在。就像Cauhy樣本的平均值一樣,即使期望值不存在,我也總是可以計算出來
> mean(rcauchy(1000000))[1] 0.006069028這些生成函數在存在時會很有趣。也許使用特徵函數是一個更好的主意。
當我們處理獨立隨機變量的總和時,特徵函數很有趣,因為總和的特徵函數是特徵函數的乘積。考慮計算Gamma隨機變量複合和的99.5%分位數的問題,即
策略是分散損失金額,
然後,要計算的代碼 , 我們用
99.5%分位數
考慮以下損失金額
> print(X[1:5])[1] 75.51818 118.16428 14.57067 13.97953 43.60686讓我們擬合一個伽瑪分布。我們可以用
shape rate1.309020256 0.013090411(0.117430137) (0.001419982)
> alpha[1] 1.308995> beta[1] 0.01309016無論如何,我們都有個人損失的Gamma分布參數。並假設泊松計數變量的均值為
同樣,可以使用蒙特卡洛模擬。我們可以使用以下通用代碼:首先,我們需要函數來生成兩種感興趣的變量,
如果我們生成一百萬個變量,我們可以得到分位數的估算,
> set.seed(1)> quantile(rcpd4(1e6),.995)99.5%13651.64另一個想法是記住Gamma分布的比例:獨立Gamma分布的總和仍然是Gamma(在參數上有附加假設,但在此我們考慮相同的Gamma分布)。因此,可以計算複合和的累積分布函數,
如果我們求解那個函數,我們得到分位數
> uniroot()$root[1] 13654.43這與我們的蒙特卡洛計算一致。現在,我們也可以在此處使用快速傅立葉變換,
> sum(cumsum(f)<.995)[1] 13654讓我們比較獲得這三個輸出的計算時間
> system.timeuser system elapsed2.453 0.106 2.611> system.timeuser system elapsed0.041 0.012 0.361> system.timeuser system elapsed0.527 0.020 0.560更多內容,請點擊左下角「閱讀原文」查看報告全文
關注我們
案例精選、技術乾貨 第一時間與您分享
長按二維碼加關注
更多內容,請點擊左下角「閱讀原文」查看報告全文