与无序分类变量的相关性

机器算法验证 r 相关性 分类数据 连续数据 混合类型数据
2022-01-29 12:56:19

我有一个包含许多观察结果和许多变量的数据框。其中一些是分类的(无序的),另一些是数字的。

我正在寻找这些变量之间的关联。我已经能够计算数值变量的相关性(Spearman 相关性)但是:

  • 我不知道如何衡量无序分类变量之间的相关性。
  • 我不知道如何衡量无序分类变量和数值变量之间的相关性。

有谁知道如何做到这一点?如果是这样,是否有实现这些方法的 R 函数?

4个回答

这取决于您想要什么样的相关性。当您运行典型的 Pearson 乘积矩相关性时,您会得到关联强度的度量,并得到关联重要性的检验。然而,更典型的是,显着性检验效应大小的测量是不同的。

显着性测试:

影响大小(关联强度):

我之前看过以下链接的备忘单:

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

它可能对你有用。它甚至有指向特定 R 库的链接。

如果您想要分类变量的相关矩阵,可以使用以下包装函数(需要“vcd”包):

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

在哪里:

vars是要关联的分类变量的字符串向量

dat是一个包含变量的data.frame

结果是一个 Cramer 的 V 矩阵。

取决于你想要达到什么。X是连续的数值变量,并且K(无序的)分类变量。然后一种可能的方法是分配数字分数ti对每个可能的值K,i=1,,p. 一种可能的标准是最大化X和分数ti. 只有一个连续变量和一个分类变量,这可能不是很有帮助,因为最大相关性总是一个(为了证明这一点,并找到一些这样的分数,是使用拉格朗日乘数的练习!对于多个变量,我们尝试找到分类变量的折衷分数,也许试图最大化多重相关性R2. 那么各个相关性将不会更多(除了非常特殊的情况!)等于一。

这种分析可以看作是多重对应分析的概括,并且以许多名称而闻名,例如典型相关分析、同质性分析等。R 中的一个实现在homals包中(在 CRAN 上)。谷歌搜索其中一些名称会提供丰富的信息,有一本完整的书:Albert Gifi,“Nonlinear Multivariate Analysis”。祝你好运!