[英]How to extract values between adjacent variables in a correlation matrix in R?
[英]How to calculate correlation matrix between binary variables in r?
我有 10 個二進制變量的數據框,如下所示:
V1 V2 V3...
0 1 1
1 1 0
1 0 1
0 0 1
我需要得到相關矩陣,然后才能進行因子分析。
psych::corr.test
可以計算相關矩陣,但只有person
、 spearman
、 kendall
方法,不用於二進制數據。
那么,如何計算這個數據幀的相關矩陣呢?
相關方法適用於連續數據。 https://www.quora.com/Is-it-possible-to-calculate-correlations-between-binary-variables
你能試試非參數方法嗎http://www.cedar.buffalo.edu/papers/articles/CVPRIP03_propbina.pdf
您仍然可以實現因子分析,計算匹配百分比並刪除變量匹配>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
您可以在列上使用層次聚類
hclus(x)
或者更好的是,您可以從“ward.D”、“ward.D2”、“單一”、“完整”中選擇一種聚類方法... https://www.rdocumentation.org/packages/stats/versions/3.6。 2/主題/hclust
另一種解決方案是將您的二進制矩陣可視化為熱圖,這是一個具有共同特征的類似變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.