Markov-Chain-Montecarlo
從經驗數據生成隨機多元值
我正在研究一個蒙特卡洛函數,用於對具有部分相關回報的幾種資產進行估值。目前,我只是生成一個協方差矩陣並提供給
rmvnorm()
R 中的函數。(生成相關的隨機值。)但是,從資產收益的分佈來看,它不是正態分佈的。
這實際上是一個由兩部分組成的問題:
1)當我所擁有的只是一些沒有已知分佈的真實數據時,我如何估計某種 PDF 或 CDF?
- 我怎樣才能生成像 rmvnorm 這樣的相關值,但是對於這個未知(和非正態)分佈?
謝謝!
這些分佈似乎不適合任何已知分佈。我認為假設一個參數然後將其用於蒙特卡羅估計是非常危險的。
我可以看看某種引導程序或“經驗蒙特卡羅”方法嗎?
(1) 這是生成模擬時間序列所需的 CDF。要構建它,首先將您的價格變化/回報直方圖。從您最左邊的垃圾箱開始計算垃圾箱人口的累積總和。通過除以總箱數來規範化您的新功能。你剩下的是一個CDF。這是一些可以解決問題的numpy代碼:
# Make a histogram of price changes counts,bin_edges = np.histogram(deltas,numbins,normed=False) # numpy histogram # Make a CDF of the price changes n_counts,bin_edges2 = np.histogram(deltas,numbins,normed=True) cdf = np.cumsum(n_counts) # cdf not normalized, despite above scale = 1.0/cdf[-1] ncdf = scale * cdf
(2) 要生成相關選擇,請使用 copula。請參閱我之前關於生成相關時間序列的問題的答案。