Пожалуйста, смотрите документацию по функции, запустив ?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
.