r中的关联矩阵

时间:2017-05-19 13:02:13

标签: r associations correlation categorical-data r-corrplot

corrplot允许您在R

中绘制相关矩阵的方式

我知道如何在R中绘制关联矩阵 关联方法使用任何用户指定的方法,如Cramer的V

3 个答案:

答案 0 :(得分:1)

您的问题的答案很大程度上取决于您获得的数据和特定的相关方法。我假设你有一堆名义变量,并希望看看它们是否在相关图上使用Cramer的V相关。在这种情况下,一种方法是:

  1. 计算每对的Cramer V相关系数 变量。我使用vcd库,因为它有计算Cramer的V的方法。
  2. 将这些系数放在一起,基本上得到相关矩阵
  3. 可视化矩阵
  4. 丑陋但下面列出了执行此操作的代码。我玩了outer - 使用行和列索引的最清晰,最精确的方法,但是使用来自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)
    

    corrplot for cramer's V

答案 1 :(得分:1)

以Alexey Knorre的示例为基础:

xAxis: {
    data: xAxisData,
    axisLabel: {
        formatter: function (value) {
        return "{<a href='https://www.google.com'>" + value + "</a>}";
    }
}    

答案 2 :(得分:0)

library(vcd)
library(corrplot)

我建议corrplot(PairApply(df, cramerV),diag = F,is.corr = F)将色标从-1,1(is.corr = T)更改为0.1(is.corr = F)。