如何在 R 数据框中测试两个分类列之间的显著关系?


要测试 R 数据框中两个分类列之间比例的显著性,我们首先需要使用这些列找到列联表,然后使用 chisq.test 应用卡方独立性检验。例如,如果我们有一个名为 df 的数据框,其中包含两个分类列,例如 C1 和 C2,那么可以使用命令 chisq.test(table(df$C1,df$C2)) 对显著关系进行检验。

示例

 在线演示

x1<-sample(LETTERS[1:4],20,replace=TRUE)
y1<-sample(letters[1:4],20,replace=TRUE)
df1<-data.frame(x1,y1)
df1

输出

   x1 y1
1  D  a
2  B  d
3  D  d
4  B  d
5  A  a
6  A  b
7  B  c
8  D  d
9  C  d
10 D  c
11 C  a
12 D  c
13 D  a
14 A  a
15 B  d
16 A  c
17 C  d
18 A  d
19 C  b
20 D  a

示例

table(df1$x1,df1$y1)

输出

   a  b  c  d
A  2  1  1  1
B  0  0  1  3
C  1  1  0  2
D  3  0  2  2

查找 df1 中 x1 和 y1 列之间的显著关系 -

示例

chisq.test(table(df1$x1,df1$y1))

输出

   Pearson's Chi-squared test
data: table(df1$x1, df1$y1)
X-squared = 7.4464, df = 9, p-value = 0.5907
Warning message:
In chisq.test(table(df1$x1, df1$y1)) :
Chi-squared approximation may be incorrect

示例

 在线演示

x2<-sample(c("hot","cold"),20,replace=TRUE)
y2<-sample(c("summer","winter","spring"),20,replace=TRUE)
df2<-data.frame(x2,y2)
df2

输出

    x2    y2
1  cold  winter
2  hot   winter
3  hot   winter
4  hot   spring
5  cold  summer
6  cold  summer
7  cold  spring
8  hot   winter
9  cold  summer
10 hot   spring
11 hot   winter
12 cold  winter
13 cold  winter
14 hot   summer
15 hot   winter
16 hot   summer
17 hot   summer
18 cold  summer
19 cold   spring
20 hot   summer

示例

table(df2$x2,df2$y2)

输出

spring summer winter
cold 2 4 3
hot 2 4 5

查找 df2 中 x2 和 y2 列之间的显著关系 -

示例

chisq.test(table(df2$x2,df2$y2))

输出

   Pearson's Chi-squared test
data: table(df2$x2, df2$y2)
X-squared = 0.30303, df = 2, p-value = 0.8594
Warning message:
In chisq.test(table(df2$x2, df2$y2)) :
Chi-squared approximation may be incorrect

更新于: 2021年3月17日

587 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告