Я хотел бы генерировать N
число случайных величин, каждое из которых имеет фиксированную корреляцию p
друг с другом.Генерировать коррелированные случайные величины со специфическими стандартными отклонениями
Переменные должны иметь mean = 1
и std = 5
N=10 #number of variables
mu <- rep(1,N) #means
p=0.7 #correlation
Sigma <- matrix(p,ncol=N,nrow=N) #variance covariance matrix
diag(Sigma) <- 5 #standard deviations
library(MASS)
set.seed(12)
data <- mvrnorm(10000,mu,Sigma)
Однако полученные стандартные отклонения не 5.
apply(data,2,sd)
[1] 2.264853 2.219811 2.224703 2.245595 2.216712 2.236484 2.240794 2.220532 2.227445
[10] 2.247943
Существует систематический способ, в котором я мог изменять стандартные отклонения в то время как сохранить остальные параметры?
Я уверен, что Sigma - это матрица дисперсии-ковариации, поэтому, если вам нужны стандартные отклонения 5, вы должны кормить ее 'diag (Sigma) <- 25'. Обратите внимание, что '2.264853^2' составляет 5.129559, что довольно близко к 5 ... – lmo