Меры корреляции для нескольких переменных в R - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь создать функцию в R, чтобы найти коэффициент корреляции для n-мерных переменных с ненулевой дисперсией, используя уравнение, показанное внизу этого изображения: Нажмите здесь

Пока что я только сделал примерный набор данных, с которым я работаю:

a <- c(4, 6, 2, 5)
b <- c(8, 1, 3, 7)
c <- c(6, 3, 1, 3)
d <- c(7, 5, 7, 5)
e <- c(9, 2, 6, 1)
f <- c(4, 6, 4, 5)

al <- data.frame(a, b, c, d, e, f)
al

Но у меня возникают проблемы с включением уравнения в остальную часть моего кода. Я знаю, как сделать корреляциюматрица:

corrmatrix <- cor(al)
head(round(corrmatrix,3))

Но я не знаю, должно ли это быть с того места, с которого я начинаю, или могу ли я работать с исходным набором данных.Я предполагаю, что математика, стоящая за уравнением, сдерживает меняНапример: как мне использовать функцию "det ()"?Есть ли функция для получения стандартизированного вектора переменной?

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, проблема в двойных кавычках вокруг элементов данных в ваших векторах.

 a <- c(4, 6, 2, 5)
 b <- c(8, 1, 3, 7)
 c <- c(6, 3, 1, 3)
 d <- c(7, 5, 7, 5)
 e <- c(9, 2, 6, 1)
 f <- c(4, 6, 4, 5)
 al <- data.frame(a, b, c, d, e, f)
 corrmatrix <- cor(al) 
 head(round(corrmatrix,3))    

результаты

       a      b      c      d      e      f
a  1.000 -0.103  0.355 -0.845 -0.607  0.866
b -0.103  1.000  0.648  0.262  0.368 -0.553
c  0.355  0.648  1.000  0.140  0.459 -0.127
d -0.845  0.262  0.140  1.000  0.937 -0.905
e -0.607  0.368  0.459  0.937  1.000 -0.800
f  0.866 -0.553 -0.127 -0.905 -0.800  1.000
...