가우스 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,Σ)F−1(Φ(X))G−1(Φ(Y))
— 추기경

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

답변:


21

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

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

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

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

가우스 접합부 가우스 접합부가 있는 다 변수 정규 분포로부터 묵시적으로 정의는 가우스 접합부는 다변량 정규 분포와 연관된 접합부이다. 구체적으로 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, 좋아 당신은 변환하고 싶다 유1 과 유2 균일 한 분포를 가진 (0,1) 말하자면 와이1 과 와이2 각각의 분포를 따르는 에프 과 지. 그렇게하려면 간단히 설정하십시오와이1=에프−1(유1) 과 와이2=지−1(유2), 어디 에프−1 과 지−1 의 역함수를 나타내 다 에프 과 지.
— 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.