Gauss kopula'sından nasıl taklit edilir?


16

Diyelim ki simüle edebileceğim ve gibi iki tek değişkenli marjinal dağılımım var . Şimdi, adlandırılan bir Gauss kopula kullanarak ortak dağıtımlarını oluşturun . Tüm parametreler bilinir.G C ( F , G ; Σ )FGC(F,G;Σ)

Bu kopuladan benzetim yapmak için MCMC olmayan bir yöntem var mı?


8
için varsayarsak , elbette: üretir . Al ve . Hepsi tamam. i = 1 , 2 ( X , Y ) N ( 0 , Σ ) F - 1 ( Φ ( X ) ) G - 1 ( Φ ( Y ) )Σbenben=1i=1,2(X,Y)N(0,Σ)F1(Φ(X))G1(Φ(Y))
kardinal

1
R ayrıca standart copulaların çoğunu simüle edebilen "copula" adlı bir pakete sahiptir.
semibruin

Yanıtlar:


21

Çok değişkenli normal dağılım ve Gauss kopula tanımlarına dayanan Gauss kopuladan simüle etmek için çok basit bir yöntem vardır.

Çok değişkenli normal dağılımın gerekli tanımını ve özelliklerini, ardından Gaussian kopula'yı sağlayarak başlayacağım ve sonra Gauss kopula'sından simüle etmek için algoritmayı sağlayacağım.

Çok değişkenli normal dağılım
bir rasgele vektör X=(X1,,Xd) a sahip çok değişkenli normal dağılım halinde bir boyutlu vektör bağımsız standart normal rastgele değişkenlerin, a, sabitleri boyutlu vektörü ve a, sabitleri matrisi. notasyonu eşitliği ifade eder. Yani, her bileşeniZ k μ d A d × k d = X

X=dμ+AZ,
ZkμdAd×k=dXaslında bağımsız standart normal rasgele değişkenlerin ağırlıklı toplamıdır.
Ortalama vektörlerin ve kovaryans matrislerinin özelliklerinden, ve , , .c o v ( X ) = Σ Σ = A A X N d ( μ , Σ )E(X)=μcov(X)=ΣΣ=AAXNd(μ,Σ)

Gauss bağ Gauss bağ olan çok değişkenli normal dağılım gelen metotunun tanımlandığı Gauss bağ çok değişkenli bir normal dağılım ile ilişkili bağ olduğu. Özellikle, Sklar teoreminden Gauss burada standart normal dağılım işlevini belirtir ve , korelasyon matrisi P ile çok değişkenli standart normal dağıtım işlevini belirtir. Dolayısıyla, Gauss kopula, olasılık integralinin dönüştürüldüğü standart bir çok değişkenli normal dağılımdır. her kenar boşluğuna uygulanır.
Φ Φ P

CP(u1,,ud)=ΦP(Φ1(u1),,Φ1(ud)),
ΦΦP

Simülasyon algoritması
Yukarıdakilerin ışığında, Gauss kopuladan simüle etmek için doğal bir yaklaşım, uygun bir korelasyon matrisi ile çok değişkenli standart normal dağılımdan simüle etmek ve standart marj dağılım fonksiyonu ile olasılık integrali dönüşümünü kullanarak her bir marjı dönüştürmektir. Kovaryans matrisi ile çok değişkenli bir normal dağılımdan simüle edilirken, esas olarak "ağırlık" matrisi kovaryans matrisinin Cholesky ayrışmasıyla elde edilebildiği ağırlıklı olarak bağımsız standart normal rastgele değişkenlerin ağırlıklı bir toplamını yapmak için aşağı iner .Σ A ΣPΣAΣ

Bu nedenle, Gauss kopula'sından numuneyi korelasyon matrisi ile simüle etmek için bir algoritma :PnP

  1. Cholesky ayrışmasını gerçekleştirin ve sonuçta ortaya çıkan alt üçgen matris olarak ayarlayın.APA
  2. Aşağıdaki adımları kez tekrarlayın . n
    1. Bağımsız standart normal değişkenlerden oluşan vektörü oluşturun .Z=(Z1,,Zd)
    2. SetX=AZ
    3. Dönüş .U=(Φ(X1),,Φ(Xd))


R kullanarak bu algoritmanın örnek uygulamasında aşağıdaki kod:

## Initialization and parameters 
set.seed(123)
P <- matrix(c(1, 0.1, 0.8,               # Correlation matrix
              0.1, 1, 0.4,
              0.8, 0.4, 1), nrow = 3)
d <- nrow(P)                             # Dimension
n <- 200                                 # Number of samples

## Simulation (non-vectorized version)
A <- t(chol(P))
U <- matrix(nrow = n, ncol = d)
for (i in 1:n){
    Z      <- rnorm(d)
    X      <- A%*%Z
    U[i, ] <- pnorm(X)
}

## Simulation (compact vectorized version) 
U <- pnorm(matrix(rnorm(n*d), ncol = d) %*% chol(P))

## Visualization
pairs(U, pch = 16,
      labels = sapply(1:d, function(i){as.expression(substitute(U[k], list(k = i)))}))

Aşağıdaki grafik, yukarıdaki R kodundan elde edilen verileri göstermektedir.

resim açıklamasını buraya girin


Bundan sonra F ve G nerede görünür?
lcrmorin

@Were_cat, ne demek istiyorsun?
QuantIbex

Orijinal soruda, iki tek değişkenli dağılım olan F ve G'den bahsedilmektedir. Copulas'tan F ve G marjlarıyla rv'ye nasıl gidersiniz?
lcrmorin

@Were_cat, dönüştürmek istediğiniz yani Tamam ve üzerinde tekdüze dağılımlarına sahip için, diyelim ki, ve dağılımları sırasıyla izleyin ve . Bunu yapmak için ve ; burada ve , karşılıklı işlevlerini gösterir ve . U1U2(0,1)Y1Y2FGY1=F1(U1)Y2=G1(U2)F1G1FG
QuantIbex

2
@Were_cat, wikipedia alıntı copula sayfasını: "Bir bağ her bir değişkenin marjinal olasılık dağılımı üniform Kapulalar rastgele değişkenler arasındaki bağımlılığı tanımlamak için kullanılır olduğu bir çok değişkenli olasılık dağılımıdır.."
QuantIbex
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.