簡體   English   中英

R中一堆分類變量的相關矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM