【问题标题】:Association matrix in rr中的关联矩阵
【发布时间】:2017-10-19 15:09:18
【问题描述】:

corrplot 允许您在 R 中绘制相关矩阵的方式

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

【问题讨论】:

  • 你试过corrplotis.corr=FALSE吗?

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


【解决方案1】:
library(vcd)
library(corrplot)

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

【讨论】:

    【解决方案2】:

    以 Alexey Knorre 的示例为基础:

    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))
    

    【讨论】:

      【解决方案3】:

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

      1. 计算每对的 Cramer's V 相关系数 变量。我使用了vcd 库,因为它有计算Cramer's V 的方法。
      2. 把这些系数放在一起,基本上就得到了相关矩阵
      3. 可视化矩阵

      下面列出了执行此操作的丑陋但有效的代码。我玩过outer - 使用行和列索引的最清晰和最精确的方法,但是在使用m 的行和列索引对df 中的列进行索引时遇到了问题:出于某种原因,它只是不想从 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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-15
        • 2016-10-19
        • 2013-01-06
        • 1970-01-01
        • 2019-12-07
        • 1970-01-01
        • 2017-04-15
        • 2013-06-15
        相关资源
        最近更新 更多