Способ corrplot позволяет построить корреляционную матрицу в R
Любая идея, как я могу построить матрицу ассоциации в R, где метод ассоциации использует любой указанный пользователем метод, такой как V Крамера
Способ corrplot позволяет построить корреляционную матрицу в R
Любая идея, как я могу построить матрицу ассоциации в R, где метод ассоциации использует любой указанный пользователем метод, такой как V Крамера
Ответ на ваш вопрос сильно зависит от имеющихся данных и конкретного метода корреляции. Я предполагаю, что у вас есть набор номинальных переменных и вы хотите посмотреть, коррелированы ли они, используя V Крамера на графике корреляции. В этом случае это можно сделать следующим образом:
vcd
библиотеку, так как в ней есть метод для вычисления V.Уродливый, но рабочий код для этого приведен ниже. Я поигрался с внешним - самым ясным и точным способ работы с индексами строк и столбцов, но возникли проблемы с индексированием столбцов в df
с использованием индекса строки и столбца из m
: по какой-то причине он просто не хотел получать переменную из df.
install.packages("vcd")
library(vcd)
# Simulate some data or paste your own
df <- data.frame(x1 = sample(letters[1:5], 20, replace = TRUE),
x2 = sample(letters[1:5], 20, replace = TRUE),
x3 = sample(letters[1:5], 20, replace = TRUE))
# Initialize empty matrix to store coefficients
empty_m <- matrix(ncol = length(df),
nrow = length(df),
dimnames = list(names(df),
names(df)))
# Function that accepts matrix for coefficients and data and returns a correlation matrix
calculate_cramer <- function(m, df) {
for (r in seq(nrow(m))){
for (c in seq(ncol(m))){
m[[r, c]] <- assocstats(table(df[[r]], df[[c]]))$cramer
}
}
return(m)
}
cor_matrix <- calculate_cramer(empty_m ,data)
corrplot(cor_matrix)
На примере Алексея Кнорре:
library(DescTools)
library(corrplot)
# Simulate data
df <- data.frame(x1 = sample(letters[1:5], 20, replace = TRUE),
x2 = sample(letters[1:5], 20, replace = TRUE),
x3 = sample(letters[1:5], 20, replace = TRUE))
# Use CramerV as input for corrplot
corrplot::corrplot(DescTools::PairApply(df, DescTools::CramerV))
library(vcd)
library(corrplot)
Я бы предложил corrplot(PairApply(df, cramerV),diag = F,is.corr = F)
изменить цветовую шкалу с -1,1 (is.corr = T) на 0,1 (is.corr = F).
corrplot
сis.corr=FALSE
? - person G5W   schedule 19.05.2017