幫助設置蒙特卡羅模擬
我正在嘗試複製 Barras、Scaillet、Wermer(2010) 論文的步驟以進行蒙地卡羅模擬。更具體地說,是附錄 B.1(附圖)中的步驟。到目前為止,我已經對所有基金進行了回歸,抽樣了 1,400 只基金,並像作者一樣調整了 alpha。但我無法理解兩件事(我對此很陌生,抱歉)
- 我只是不明白他們的意思:‘我們代理$$ \Sigma_{F} $$由其經驗對應物’(以黃色突出顯示)如何獲得該共變異數矩陣?
- 當他們在最後一段中說他們隨機抽取$$ \epsilon_t $$384 次,它只是來自於放置 Normal(0,0.021) 的任何值,因為它們對所有情況均給予 sigma?
在繼續進行蒙特卡羅模擬之前,我想了解這一點,這是我以前從未做過的。此外,如果這不是合適的論壇,或者您推薦其他內容,我非常感謝您的幫助。
在統計學中進行蒙特卡羅模擬有三個原因。第一個,如本文所用,是在不存在解析解時測試估計器的性能。第二個是為未來建構場景,以確定估計器的擬合程度。第三是在貝氏統計中,通過用蒙特卡羅方法代替解析積分來確定貝氏規則中分母的值。貝氏版本需要額外的步驟,因為繪製需要是馬爾可夫。
想像一下,您確定地知道您是從一個以零為中心且具有單位變異數的高斯分佈中繪製的。您可以抽取大小為 N 的樣本來估計一些統計數據的分佈,例如樣本均值、變異數、中位數、第 23 個四分位數等。
如果您要執行足夠多的採樣,您最終會得到某個估計器與其真實值相距一段距離的機率估計值。
虛擬碼可能如下所示:
initialize x[30] Real; initialize y[1000] Real; for i=1:1000; j=1:30; x[j]=random_normal(0,1); next j; y[i]=average(x[1:30]) next i;
輸出將收斂到 z 分數為 $ i $ 變得足夠大。
那是蒙地卡羅模擬。
在 R 程式碼中,雖然圖形不優雅,但它是:
rows<-30 columns<-100000 x<-matrix(rnorm(rows*columns),nrow = rows) y<-apply(x,2,mean) z<-apply(x,2,median) plot(density(y),main = "Solid Line Average, Dotted Line Median Sampling Distribution Estimate") lines(density(z),type = "p") print(summary(as.vector(x))) print(summary(y)) print(summary(z))
對不起,它不優雅,但它可以讓你看到他們在做什麼,但在一維的情況下。上圖顯示了樣本量為 30 的樣本均值的分佈與樣本中位數的分佈。
當然,這兩者都有解析解。本質上就是 z 表,除了$$ \sigma_{median}=1.253\frac{\sigma}{\sqrt{n}}, $$因為它的估算器效率較低。
所以他們在模擬中所做的是 $ \Sigma_F $ 精確地等於樣本統計量。然後他們從多維正態分佈中隨機抽取數百個樣本。如果他們在樣本均值為零的情況下這樣做,那麼這將是零假設下分佈的經驗估計。
您可以通過使用樣本統計量估計分量來獲得經驗共變異數矩陣。在 R 中,它是用 cov() 函式估計的,除非你正在做回歸,否則它是作為函式的實現出現的。它的語言因工具而異。
至於為什麼他們在後來的處理中統一使用手段,他們必須將觀察到的手段視為單一現象,而不是每隻基金都具有獨特的特徵。如果沒有閱讀整篇文章,我不確定他們為什麼這樣做。