У меня есть фрейм данных с большим количеством переменных, представленных в виде столбцов, которые меняются со временем в качестве индекса для них. Я хотел бы получить наборы сильно ковариирующих переменных.
data <- data.frame(time_series=c(1,2,3),
score1=c(0.5, 0.4, 0.6),
score2=c(0.3, 0.2, 0.1),
score3=c(0.1, 0.4, 0.5),
score4=c(0.5, 0.2, 0.4),
score5=c(0.1, 0.1, 0.2))
Две функции, которые должны давать одинаковые результаты:
library(stats)
#autocorrelation function with lag 0 over a data frame
acf_results <- acf(data[2:length(names(data))], plot = FALSE, lag.max = 0)
#simple Pearson correlation function.
cor_results <- cor(data[2:length(names(data))], method = "pearson")
Можно было бы отфильтровать результаты с помощью простого (X_results > 0.6)
, но при этом, похоже, теряются имена переменных.
Я пытаюсь извлечь наборы переменных, которые соответствуют порогу, из большого фрейма данных. Я ожидаю, что мне не хватает некоторых простых встроенных функций. Любые советы о том, как это можно сделать?
Редактировать: я понял, что функция Спирмена будет абсолютно неправильной для этого, так как она будет ранжировать и значения, а не только временные рамки.