如何从高斯copula模拟?


16

假设我有两个单变量边际分布,即FG,可以从中进行模拟。现在,使用表示为C F G ; Σ 高斯copula构造它们的联合分布。所有参数都是已知的。C(F,G;Σ)

是否有非MCMC方法可以从此系动中模拟出来?


8
假定Σii=1i=1,2,当然:生成(X,Y)N(0,Σ)。取F1(Φ(X))G1(Φ(Y))。全做完了。
主教

1
R也有一个称为“ copula”的软件包,它可以模拟大多数标准copula。
semibruin

Answers:


21

有一个非常简单的方法可以从高斯copula进行模拟,该方法基于多元正态分布和Gauss copula的定义。

我将首先提供所需的多元正态分布的定义和属性,然后是高斯copula,然后提供从高斯copula进行仿真的算法。

多元正态分布如果X d = μ + A Z
随机向量具有多元正态分布 其中Z是独立标准正态随机变量的k维向量,μ为a 常数的d维向量,A是常数的d × k矩阵。记号d =X=(X1,,Xd)

X=dμ+AZ,
ZkμdAd×k=d表示分配相等。因此,每个分量本质上是独立标准正态随机变量的加权和。 从均值向量和协方差矩阵的性质,我们有 ÈX = μÇ ö vX = Σ,其中Σ = ',导致自然符号X Ñ dμ Σ X
E(X)=μcov(X)=ΣΣ=AAXNd(μ,Σ)

高斯连接函数
高斯系词从多元正态分布,即隐含定义的,高斯系动词是具有多元正态分布相关联的连接函数。具体地,从斯克拉定理高斯连接函数是 其中Φ

CP(u1,,ud)=ΦP(Φ1(u1),,Φ1(ud)),
Φ表示标准正态分布函数,和表示具有相关矩阵P.所以多元标准正态分布函数,高斯连接函数是一个简单的标准多元正态分布,其中概率积分变换被应用到每个余量。ΦP

仿真算法
鉴于上述情况,从高斯系数进行仿真的自然方法是从具有适当相关矩阵的多元标准正态分布进行仿真,并使用具有标准正态分布函数的概率积分变换来转换每个余量。从具有协方差矩阵Σ的多元正态分布进行模拟时,本质上可以得到独立标准正态随机变量的加权和,其中“权重”矩阵A可通过协方差矩阵ΣCholesky分解获得。PΣAΣ

因此,用相关矩阵P模拟高斯copula的样本的算法是:nP

  1. 执行的Cholesky分解,并将A设置为所得的下三角矩阵。PA
  2. 重复以下步骤次。 n
    1. 生成独立标准正态变量的向量Z=(Z1,,Zd)
    2. 设置X=AZ
    3. 返回U=(Φ(X1),,Φ(Xd))


以下代码在使用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代码产生的数据。

在此处输入图片说明


之后F和G出现在哪里?
lcrmorin 2015年

@Were_cat,你是什么意思?
QuantIbex 2015年

在最初的问题中,提到了F和G这两个单变量分布。您如何从系骨到具有F和G边缘的rv?
lcrmorin

U1U2(0,1)Y1Y2FGY1=F1(U1)Y2=G1(U2)F1G1FG

2
@Were_cat引用Wikipedia copula页面:“ copula是一个多变量概率分布,每个变量的边际概率分布是均匀的。Copula用于描述随机变量之间的依赖性。”
QuantIbex 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.