Існує дуже простий метод імітації копули Гаусса, який заснований на визначеннях багатофакторного нормального розподілу та копули Гаусса.
Почну з надання необхідного визначення та властивостей багатоваріантного нормального розподілу, за ним - копула Гаусса, а потім надам алгоритм моделювання з копули Гаусса.
Багатоваріантний нормальний розподіл
Випадковий вектор має багатоваріантний нормальний розподіл, якщо
X d = μ + A Z ,
де Z - k -вимірний вектор незалежних стандартних нормальних випадкових величин, μ - a d -вимірний вектор констант, а A - матриця d × k констант. Позначення d =Х= ( 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Σ
Отже, алгоритм моделювання вибірок з копули Гаусса з кореляційною матрицею P :nP
- Виконайте розбиття Холеського та встановіть A як отриману нижню трикутну матрицю.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.