2013-09-11 5 views
1

Скажем, я хочу создать 1000 переменных с заранее заданными корреляциями.Создать таблицу корреляции для большого числа переменных

Я хотел бы начать с создания корреляционной матрицы следующего вида:

a<-matrix(c(1,.8,.8,.8,1,.8,.8,.8,1),3) 

Очевидно, что это может быть ручной кодируются 3 переменных, но как я могу легко создать то же самое для 1000 переменных? каждая из корреляций должна быть одинаковой (т. е. 8)?

ответ

3
example <- matrix(rep(0.8,25),5,5) 

Или, как @Vincent отметил, matrix(0.8,5,5) гораздо лучше.

diag(example) <- 1 

> example 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 1.0 0.8 0.8 0.8 0.8 
[2,] 0.8 1.0 0.8 0.8 0.8 
[3,] 0.8 0.8 1.0 0.8 0.8 
[4,] 0.8 0.8 0.8 1.0 0.8 
[5,] 0.8 0.8 0.8 0.8 1.0 

Тогда вы можете просто масштабировать его до такого размера, насколько вам нужно. В вашем случае:

mat2 <- matrix(0.8,1000,1000) 
+2

Вы можете написать первую строку еще более кратко: 'example <- matrix (.8,5,5)'. –

+1

@VincentZoonekynd Спасибо. Я только что проснулся. – dayne

+0

+1 (nb, вы забыли инструкцию 'diag (mat2) <- 1' для случая OP) – gung

Смежные вопросы