如何检查两个变量之间的水平相关性?

时间:2017-11-19 17:43:36

标签: r correlation

我有两个专栏,A& B,在一个名为X的数据框中.A有38个级别,B有3个。

如何检查A 38级别和B级别3级别之间的相关性?感谢。

2 个答案:

答案 0 :(得分:2)

如果订购A和B,那么我们可以计算他们的等级相关性(即他们的等级的相关性):

dd <- data.frame(A = c("a", "a", "b", "b", "c", "c"), 
                 B = c("x", "x", "x", "y", "y", "y")) # test data
with(dd, cor(rank(A), rank(B)))
## [1] 0.8164966

如果没有,那么我们可以计算每对水平之间的相关性:

mA <- model.matrix(~ A - 1, dd)
mB <- model.matrix(~ B - 1, dd)
cor(mA, mB)
##            Bx         By
## Aa  0.7071068 -0.7071068
## Ab  0.0000000  0.0000000
## Ac -0.7071068  0.7071068

在后一种情况下,如果我们想要一个数字,我们可以看一下规范相关性,这是两组变量的线性函数之间的最高相关性。 (我们也可以忽略排序,然后将其应用于第一种情况。)

cancor(mA, mB)$cor
## [1] 0.8164966

答案 1 :(得分:1)

术语&#34;相关性&#34;用于字符数字的变量。如果您正在检查两个分类变量的联合关系(使用因子级别,那么您可以使用table查看交叉列表:

AB.tbl <- with(X, table, A,B))
AB.tbl

要查看这是否合理地是非随机​​关联,您可以使用chisq.test来进行关联的整体测试:

chisq.test(AB.tbl)