Как сгенерировать случайную ковариационную матрицу из расстановки Wishart - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужно сгенерировать nxn, положительно определенную ковариационную матрицу для проекта.Рекомендуется рисовать из дистрибутива Wishart.Как я генерирую случайную ковариационную матрицу в R, в идеале также используя Распределение Желаний.Я попытался rwishart (), чтобы получить значения, но нужна дополнительная помощь.Спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Пожалуйста, смотрите документацию по функции, запустив ?rWishart.

Как вы можете прочитать, вам нужно предоставить нужное количество выборок n (т. Е. n случайных матриц), степени свободы df и параметр Sigma,Кроме того, вам также необходимо определить размер требуемой случайной матрицы.

# Set parameters
n <- 1  # Number of matrices
p <- 5  # Dimension
df <- 10  # Degrees of freedom
Sigma <- toeplitz((p:1)/p)  # the matrix parameter of the distribution

# Draw n Wishart distributed matrices
rwish <- drop(rWishart(n, df, Sigma))
print(rwish)

Функция генерирует массив 1 xpxp (фактически, матрицу), но мы отбрасываем ненужное измерение.

Вы можете сгенерировать распределенную матрицу wishart «вручную» с помощью

library("mvtnorm")
rgaus <- rmvnorm(n = df, mean = rep(0, p), sigma = Sigma)
rwish2 <- crossprod(rgaus) # crossprod is the same as "t(rgaus) %*% rgaus"

, что должно помочь вам лучше понять, что на самом деле представляет собой распределение Wishart.Это распределение так называемой матрицы рассеяния df выборок из многомерного нормального распределения с нулевым средним с дисперсией Sigma.

...