如何在小鼠多重插补后创建相关矩阵
Posted
技术标签:
【中文标题】如何在小鼠多重插补后创建相关矩阵【英文标题】: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) 的输出。谁能帮忙?
【问题讨论】:
【参考方案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))。
【讨论】:
以上是关于如何在小鼠多重插补后创建相关矩阵的主要内容,如果未能解决你的问题,请参考以下文章