如何计算r中二元变量之间的相关矩阵?

如何计算r中二元变量之间的相关矩阵?,r,correlation,R,Correlation,我有10个二进制变量的数据帧,如下所示: V1 V2 V3... 0 1 1 1 1 0 1 0 1 0 0 1 我需要得到相关矩阵,然后才能进行因子分析。 psych::corr.test可以计算相关矩阵,但只有person,spearman,kendall方法,不用于二进制数据。 那么,如何计算该数据帧的相关矩阵呢?Correl方法适用于连续数据 你能试试非参数方法吗 您仍然可以实现因子分析,计算%match并删除变量匹配>x%。这样可以删除数据的维度。Correl方法

我有10个二进制变量的数据帧,如下所示:

V1 V2 V3...
0  1  1
1  1  0
1  0  1
0  0  1  
我需要得到相关矩阵,然后才能进行因子分析。
psych::corr.test
可以计算相关矩阵,但只有
person
spearman
kendall
方法,不用于二进制数据。

那么,如何计算该数据帧的相关矩阵呢?

Correl方法适用于连续数据

你能试试非参数方法吗


您仍然可以实现因子分析,计算%match并删除变量匹配>x%。这样可以删除数据的维度。

Correl方法适用于连续数据

# create data
m <- matrix(sample(x = 0:1,size = 200,replace = T),ncol = 10)
colnames(m) <- LETTERS[1:10]
m
# create cor matrix
res <- data.frame()
for(i in seq(ncol(m))){
  z <- m[,i]
  z <- apply(m,2,function(x){sum(x==z)/length(z)})
  res <- rbind(res,z)
}
colnames(res) <- colnames(m)
rownames(res) <- colnames(m)
res <- as.matrix(res)
res
你能试试非参数方法吗

您仍然可以实现因子分析,计算%match并删除变量匹配>x%。这样可以删除数据的维度。

#创建数据
# create data
m <- matrix(sample(x = 0:1,size = 200,replace = T),ncol = 10)
colnames(m) <- LETTERS[1:10]
m
# create cor matrix
res <- data.frame()
for(i in seq(ncol(m))){
  z <- m[,i]
  z <- apply(m,2,function(x){sum(x==z)/length(z)})
  res <- rbind(res,z)
}
colnames(res) <- colnames(m)
rownames(res) <- colnames(m)
res <- as.matrix(res)
res
m
#创建数据

m您可以对列使用分层聚类

hclus(x)

或者更好的是,您可以从“ward.D”、“ward.D2”、“single”、“complete”中选择一种聚类方法。。。


另一个解决方案是将二进制矩阵可视化为热图,这是一个具有共同特征的类似变量

您可以对列使用分层聚类

hclus(x)

或者更好的是,您可以从“ward.D”、“ward.D2”、“single”、“complete”中选择一种聚类方法。。。


另一个解决方案是将二进制矩阵可视化为热图,这是一个具有共同特征的类似变量

实际上,您也可以对二进制变量使用皮尔逊相关系数。请看,与其计算相关性,不如使用类似系数/指标,如Jaccard。这还取决于变量表示的内容。如果它们可能是一个潜在的正态分布变量的指标,你可以使用四射相关。四射相关是一种人的相关系数吗?我只知道那个人,斯皮尔曼,肯德尔的相关系数。@WhiteGirl;不,这是一个不同的相关性度量。比如说,一个二元变量感到内疚,用是/否来衡量。它真的是二分法的吗?可能不是因为你合理地假设进一步的有序分类,例如非常内疚,有点内疚,不在allguilty。事实上,可以合理地认为存在一个潜在/潜在的连续因素,该因素由测量的是/否变量表示。在四色相关计算中,该因子假定为正态分布。实际上,您也可以对二元变量使用皮尔逊相关系数。请看,与其计算相关性,不如使用类似系数/指标,如Jaccard。这还取决于变量表示的内容。如果它们可能是一个潜在的正态分布变量的指标,你可以使用四射相关。四射相关是一种人的相关系数吗?我只知道那个人,斯皮尔曼,肯德尔的相关系数。@WhiteGirl;不,这是一个不同的相关性度量。比如说,一个二元变量感到内疚,用是/否来衡量。它真的是二分法的吗?可能不是因为你合理地假设进一步的有序分类,例如非常内疚,有点内疚,不在allguilty。事实上,可以合理地认为存在一个潜在/潜在的连续因素,该因素由测量的是/否变量表示。在四色相关计算中,假设该因子为正态分布,那么该因子计算出的比例是否一致?(
all.equal((crossprod(m)+crossprod(!m))/nrow(m),res)
)我更倾向于准确度这个词,但我想可以这样称呼它,所以这计算出一致的比例?(
all.equal((crossprod(m)+crossprod(!m))/nrow(m),res)
)我更倾向于术语准确性,但我想它可以这样称呼