我有10個二元變量的數據幀,是這樣的:如何計算r中二元變量之間的相關矩陣?
V1 V2 V3...
0 1 1
1 1 0
1 0 1
0 0 1
我需要得到相關矩陣,然後我可以做因素分析。
psych::corr.test
可以計算出相關矩陣,但只有person
,spearman
,kendall
方法,不用於二進制數據。
那麼,如何計算這個數據幀的相關矩陣呢?
我有10個二元變量的數據幀,是這樣的:如何計算r中二元變量之間的相關矩陣?
V1 V2 V3...
0 1 1
1 1 0
1 0 1
0 0 1
我需要得到相關矩陣,然後我可以做因素分析。
psych::corr.test
可以計算出相關矩陣,但只有person
,spearman
,kendall
方法,不用於二進制數據。
那麼,如何計算這個數據幀的相關矩陣呢?
# 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
Correl方法適用於連續數據。 https://www.quora.com/Is-it-possible-to-calculate-correlations-between-binary-variables
ü你可以嘗試非參數方法試圖http://www.cedar.buffalo.edu/papers/articles/CVPRIP03_propbina.pdf
你仍然可以實現因子分析,計算%的比賽,並刪除可變匹配> X%。這樣您可以刪除數據的維度。
實際上,您也可以使用Pearson相關係數來計算二元變量。請參閱https://en.m.wikipedia.org/wiki/Phi_coefficient – sedsiv
而不是計算相關性,我寧願使用像Jaccard這樣的相似性係數/指標。 – Miha
也取決於你的變量代表什麼。如果它們可能是潛在的正態分佈變量的指標,那麼可以使用四分相關。 – user20650