【问题标题】:How to create correlation matrix after mice multiple imputation如何在小鼠多重插补后创建相关矩阵
【发布时间】:2021-05-06 19:56:44
【问题描述】:

我正在使用mice 包来创建多个插补。我想创建一个相关矩阵(以及相关系数的 p 值矩阵。我使用miceadds::micombine.cor 来执行此操作。但这会给出一个数据框,其中包含变量的第一列,然后是一些包含 r、p、t 值等的列。

我正在寻找一种方法将此数据框转换为“旧”矩阵,其中 x 和 y 在位置 [x,y] 之间的相关系数,以及具有 p 值的矩阵有没有人有一个简单的方法这样做?

这里有一些代码可以重现:

data <- mtcars
mt.mis <- prodNA(mtcars, noNA = 0.1)
imputed     <-mice(iris.mis, m = 5, maxit = 5, method = "pmm")
correlations<- miceadds::micombine.cor(mi.res=iris.mis, variables = c(1:3))

我正在寻找类似于 cor(mtcars) 的输出。谁能帮忙?

【问题讨论】:

    标签: r correlation imputation r-mice


    【解决方案1】:

    我最终编写了自己的函数。可能可以更有效地完成,但这是我所做的。

    cormatrix <- function(r, N){
      x <- 1
      cormatrix <- matrix(nrow = N, ncol = N)  # create empty matrix
      for (i in 1:N) {
      for (j in i:N) {
        if(j>i){
        cormatrix[i,j] <- r[x]
        cormatrix[j,i] <- r[x]
        x <- x + 1
        }
      }
    }
    diag(cormatrix) <- 1
    cormatrix
    }
    

    您可以使用 micombine.cor 的输出和模型中的变量数作为参数来调用它。例如 cormatrix(correlations$r,ncol(df))。

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 1970-01-01
      • 2019-08-04
      • 2012-05-27
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多