가우스 copula에서 시뮬레이션하는 방법?


16

시뮬레이션 할 수 있는 두 개의 일 변량 한계 분포 (예 : G) 가 있다고 가정합니다 . 이제 C ( F , G ; Σ) 로 표시 되는 가우스 copula를 사용하여 관절 분포를 구성하십시오 .FG. 모든 매개 변수가 알려져 있습니다.C(F,G;Σ)

이 copula에서 시뮬레이션하기위한 비 MCMC 방법이 있습니까?


8
물론 i = 1 , 2에 대해 이라고 가정하면 : ( X , Y ) ~ N ( 0 , Σ )을 생성하십시오 . F - 1 ( Φ ( X ) )G - 1 ( Φ ( Y ) )을 취하십시오 . 다 했어요 Σii=1i=1,2(X,Y)N(0,Σ)F1(Φ(X))G1(Φ(Y))
추기경

1
R에는 또한 "copula"라는 패키지가 있으며 대부분의 표준 copulas를 시뮬레이션 할 수 있습니다.
semibruin

답변:


21

다변량 정규 분포와 가우스 copula의 정의를 기반으로하는 Gaussian copula에서 시뮬레이션하는 매우 간단한 방법이 있습니다.

다변량 정규 분포에 필요한 정의와 특성을 제공하고 가우스 copula를 시작한 다음 Gauss copula에서 시뮬레이션 할 알고리즘을 제공합니다.

다변량 정규 분포
랜덤 벡터 갖는 다변량 정규 분포 경우 X의 (D) = μ + Z , Z는 A는 K 독립적 표준 정규 확률 변수의 차원 벡터, μ는 인 상수의 d- 차원 벡터이며, Ad x k 상수의 행렬입니다. 표기법 d =X=(X1,,Xd)

X=dμ+AZ,
ZkμdAd×k=d 분포의 동등성을 나타냅니다. X의 각 성분은X 필수적이며 독립 표준 정규 확률 변수의 가중치 합.
평균 벡터와 공분산 행렬의 속성에서 우리는 E(X)=μ 가지며 , Σ = A A ' 이므로 자연 표기법 X N d ( μ , Σ )cov(X)=ΣΣ=AAXNd(μ,Σ) .

가우스 접합부 가우스 접합부가 있는 다 변수 정규 분포로부터 묵시적으로 정의는 가우스 접합부는 다변량 정규 분포와 연관된 접합부이다. 구체적으로 Sklar의 정리 에서 가우스 copula는 C P ( u 1 , , u d ) = Φ P ( Φ - 1 ( u 1 ) , , Φ - 1 ( u d ) )입니다 . 여기서 Φ

CP(u1,,ud)=ΦP(Φ1(u1),,Φ1(ud)),
ΦΦP 이 각 마진에 적용되는 입니다.


PΣAΣ

따라서 를 시뮬레이션하는 알고리즘n

  1. 의 hole 레 스키 분해 수행, 설정 결과적으로 낮은 삼각 행렬로 나타납니다.
  2. 다음 단계를 반복하십시오 타임스.
    1. 벡터 생성 =(1,,)' 독립 표준 정규 변량.
    2. 세트 엑스=
    3. 반환 =(Φ(엑스1),,Φ(엑스))'.


R을 사용한이 알고리즘의 예제 구현에서 다음 코드는 다음과 같습니다.

## 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)))}))

다음 차트는 위의 R 코드에서 생성 된 데이터를 보여줍니다.

enter image description here


그 후에 F와 G가 나타나는 곳은 어디입니까?
lcrmorin

@Were_cat, 무슨 뜻인가요?
QuantIbex

원래 질문에는 두 개의 일 변량 분포 인 F와 G에 대한 언급이 있습니다. 어떻게 F와 G 마진을 가지고 copulas에서 rv로 가나 요?
lcrmorin

@ Were_cat, 좋아 당신은 변환하고 싶다 12 균일 한 분포를 가진 (0,1) 말하자면 와이1와이2 각각의 분포를 따르는 에프. 그렇게하려면 간단히 설정하십시오와이1=에프1(1)와이2=1(2), 어디 에프11 의 역함수를 나타내 다 에프.
QuantIbex

2
@Were_cat, to quote the wikipedia copula page: "a copula is a multivariate probability distribution for which the marginal probability distribution of each variable is uniform. Copulas are used to describe the dependence between random variables."
QuantIbex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.