[英]correlation matrix of a bunch of categorical variables in R
我有大約 20 個關於不同城市的變量,標記為“Y”或“N”並且是因子。 變量就像“有合作社”之類的。 我想找到一些相關性,並可能使用 corrplot 包來顯示所有這些變量之間的聯系。 但出於某種原因,我無法強制變量,以便以corrplot
甚至cor()
喜歡的方式讀取它們,以便我可以將它們放入矩陣中。 我試過:
M <- cor(model.matrix(~.-1,data=mydata[c(25:44)]))
但是 corrplot 的結果真的很奇怪。 有沒有人可以快速將一堆 Y/N 答案轉換為相關矩陣? 謝謝!
您可以使用sjp.corr
函數或sjt.corr
函數進行sjPlot-package的圖形或表格輸出。
DF <- data.frame(v1 = sample(c("Y","N"), 100, T),
v2 = sample(c("Y","N"), 100, T),
v3 = sample(c("Y","N"), 100, T),
v4 = sample(c("Y","N"), 100, T),
v5 = sample(c("Y","N"), 100, T))
DF[] <- lapply(DF,as.integer)
library(sjPlot)
sjp.corr(DF)
sjt.corr(DF)
劇情:
該表(在RStudio查看器窗格中):
您可以使用許多參數來修改繪圖或表格的外觀,請參閱此處的一些示例。
對於二進制變量,您可以考慮交叉 table
(R中的table
函數)。
但是,獲取相關矩陣非常簡單:
# example data
set.seed(1)
DF <- data.frame(x=sample(c("Y","N"),100,T),y=sample(c("Y","N"),100,T))
# how to get correlation
DF[] <- lapply(DF,as.integer)
cor(DF)
# x y
# x 1.0000000 -0.0369479
# y -0.0369479 1.0000000
# visualize it
library(corrplot)
corrplot(cor(DF))
在此示例中轉換為整數時, "N"
為1
, "Y"
為2
。 我不確定這是否一般(對於R的存儲因素)。 要查看數據的映射,請在轉換為整數之前嘗試lapply(DF,levels)
。
對我而言,情節是有道理的。 如果您對此相關的統計解釋有疑問,請考慮查看http://stats.stackexchange.com
我想問一下關於這種方法的澄清...... sjp.corr(DF) 是否只進行正常的 Pearson 相關性,這對於分類變量(因子)是不合適的?
函數描述指出:“corr.method = 可能是“pearson”(默認)、“spearman”或“kendall”之一。可能是縮寫。
據我所知,對於分類(無序)變量,您需要使用 Pearson 的卡方檢驗,或 Cramer's V 或 Contingency Coefficient C( https://rpubs.com/hoanganhngo610/558925 )。
許多無序二分變量的最佳多重成對相關方法是什么(對於每個變量:存在/不存在編碼為是/否或使用 fastdummies 包進行虛擬編碼)? 以及如何在 R 中做到這一點?
非常感謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.