Существует очень простой метод для моделирования с помощью гауссовой связки, который основан на определениях многомерного нормального распределения и гауссовой связки.
Я начну с предоставления требуемого определения и свойств многомерного нормального распределения, за которым следует гауссова связка, а затем я приведу алгоритм для моделирования из гаулы Гаусса.
Многомерное нормальное распределение
Случайный вектор имеет многомерное нормальное распределение, если
X d = μ + A Z ,
где Z - k- мерный вектор независимых стандартных нормальных случайных величин, μ - это d- мерный вектор констант, а A - матрица констант d × k . Обозначение d =X=(X1,…,Xd)′
X=dμ+AZ,
ZkμdAd×k=dобозначает равенство в распределении. Таким образом, каждый компонент
является по существу взвешенной суммой независимых стандартных нормальных случайных величин.
Из свойств средних векторов и ковариационных матриц имеем
E ( X ) = μ и
c o v ( X ) = Σ , причем
Σ = A A ′ , что приводит к естественному обозначению
X ∼ N d ( μ , Σ ) .
XE(X)=μcov(X)=ΣΣ=AA′X∼Nd(μ,Σ)
Гаусс копула Гаусс копула определяются неявным образом из многомерного нормального распределения, то есть, связка Гаусс является копулой связан с многомерным нормальным распределением. В частности, по теореме Склара копула Гаусса имеет вид
C P ( u 1 , … , u d ) = Φ P ( Φ - 1 ( u 1 ) , … , Φ - 1 ( u d ) ) ,
где Φ
CP(u1,…,ud)=ΦP(Φ−1(u1),…,Φ−1(ud)),
Φобозначает стандартную функцию нормального распределения, а
обозначает многовариантную стандартную функцию нормального распределения с корреляционной матрицей P. Таким образом, копула Гаусса является просто стандартным многомерным нормальным распределением, где
интегральное преобразование вероятности применяется к каждому полю.
ΦP
Алгоритм моделирования
В свете вышеизложенного естественным подходом к моделированию из связки Гаусса является моделирование из многомерного стандартного нормального распределения с соответствующей корреляционной матрицей и преобразование каждого запаса с использованием интегрального преобразования вероятности со стандартной функцией нормального распределения. В то время как моделирование из многомерного нормального распределения с ковариационной матрицей Σ по существу сводится к получению взвешенной суммы независимых стандартных нормальных случайных величин, где «весовая» матрица A может быть получена путем разложения Холецкого ковариационной матрицы Σ .PΣAΣ
nP
- PA
- n
- Z=(Z1,…,Zd)′
- X=AZ
- 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.