原文鏈接:http://tecdat.cn/?p=6193
copula是將多變量分布函數與其邊際分布函數耦合的函數,通常稱為邊緣或簡單的邊緣。Copula是建模和模擬相關隨機變量的絕佳工具。
Copula的主要吸引力在於,通過使用它們,您可以分別對相關結構和邊緣(即每個隨機變量的分布)進行建模。 例如,在R中,很容易從多元正態分布中生成隨機樣本,但是對於分別其邊緣分別為Beta,Gamma和Student的分布來說,這樣做並不容易。
copulas如何工作
但首先,讓我們試着了解copula的實際工作方式。
現在我們使用cor()
和配對圖檢查樣本相關性。
這是包含在中的新隨機變量的配對圖u
。
現在,作為最后一步,我們只需要選擇邊距並應用它們u
。我選擇了邊緣為Gamma,Beta和Student,並使用下面指定的參數進行分配。
下面是我們模擬數據的3D圖。
這是隨機變量的配對圖:
使用copula
讓我們使用copula復制上面的過程。
現在我們已經通過copula(普通copula)指定了依賴結構並設置了邊緣,該mvdc()
函數生成了所需的分布。然后我們可以使用該rmvdc()
函數生成隨機樣本。
模擬數據當然非常接近之前模擬的數據,並顯示在下面的配對圖中:
一個簡單的應用示例
現在為現實世界的例子。我們將擬合兩個股票 ,並嘗試使用copula模擬 。
讓我們在R中加載
在直接進入copula擬合過程之前,讓我們檢查兩個股票收益之間的相關性並繪制回歸線:
我們可以看到 正相關 :
在上面的第一個例子中,我選擇了一個普通的copula模型而沒有太多思考,但是,當將這些模型應用於實際數據時,應該仔細考慮哪些更適合數據。例如,許多copula更適合建模非對稱相關,其他強調尾部相關性等等。我對股票回報的猜測是,t-copula應該沒問題,但是猜測肯定是不夠的。幸運的是,該 軟件包提供了一個很好的功能,告訴我們應該使用什么copula。本質上, 允許我們通過函數使用BIC和AIC執行copula選擇
擬合算法確實選擇了t-copula(在$family
參考中編碼為2 )並為我們估計了參數。
讓我們嘗試使用copula
包裝擬合建議的模型,並仔細檢查參數擬合。
我們來看看我們剛估計的copula的密度
現在我們只需要建立Copula並從中抽取3965個隨機樣本。
這是載體中包含的樣本的圖u
:
t-copula強調極端結果:它通常適用於在極值(分布的尾部)中存在高度相關性的建模現象。
現在我們正面臨着困難:對邊緣進行建模。為簡單起見,我們將假設正態分布 。因此,我們估計邊際的參數
讓我們根據直方圖繪制配件,以便直觀地了解我們正在做的事情:
兩個直方圖顯示如下
現在我們在函數中應用copula, ()
然后用於 ()
從生成的多變量分布中獲取模擬觀測值。最后,我們將模擬結果與原始數據進行比較。
這是在假設正常邊緣和依賴結構的t-copula的情況下數據的最終散點圖:
正如您所看到的,t-copula導致結果接近實際觀察結果 。
讓我們嘗試df=1
和df=8
顯然,該參數df
對於確定分布的形狀非常重要。隨着df
增加,t-copula傾向於高斯copula。