使用卡方检验来测试分类变量之间的关系
介绍
理解和量化分类变量之间的关系是数据科学中最重要的任务之一。这不仅在构建预测模型时有用,而且在数据科学研究工作中也很有用。一种可以做到这一点的统计检验是卡方独立性检验,它用于确定两个或多个分类变量之间是否存在关联。在本指南中,您将学习如何使用 R 执行卡方检验。
数据
在本指南中,我们将使用包含 200 个观测值和 10 个变量的贷款申请人的虚构数据,如下所述:
Marital_status - 申请人是否已婚(“是”)、未婚(“否”)或离婚(“离婚”)
Is_graduate - 申请人是否为毕业生(“是”)或不是(“否”)
收入- 申请人的年收入(美元)
Loan_amount - 提交申请的贷款金额(美元)
Credit_score - 申请人的信用评分是好(“好”)还是不好(“坏”)。
authorization_status - 贷款申请是否被批准(“是”)或未被批准(“否”)。
投资- 申请人申报的股票和共同基金投资(以美元计)
性别- 申请人是“女性”还是“男性”
9. 年龄- 申请人的年龄(岁)
10. Work_exp - 申请人的工作经验(年数)
让我们首先加载所需的库和数据。
library(plyr)
library(readr)
library(ggplot2)
library(GGally)
library(dplyr)
library(mlbench)
dat <- read_csv("data_test.csv")
glimpse(dat)
输出:
Observations: 200
Variables: 10
$ Marital_status <chr> "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes"...
$ Is_graduate <chr> "No", "No", "No", "No", "No", "No", "No", "No", "No", ...
$ Income <int> 72000, 64000, 80000, 76000, 72000, 56000, 48000, 72000...
$ Loan_amount <int> 70500, 70000, 275000, 100500, 51500, 69000, 147000, 61...
$ Credit_score <chr> "Bad", "Bad", "Bad", "Bad", "Bad", "Bad", "Bad", "Bad"...
$ approval_status <chr> "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes"...
$ Investment <int> 117340, 85340, 147100, 65440, 48000, 136640, 160000, 9...
$ gender <chr> "Female", "Female", "Female", "Female", "Female", "Fem...
$ age <int> 34, 34, 33, 34, 33, 34, 33, 33, 33, 33, 34, 33, 33, 33...
$ work_exp <dbl> 8.10, 7.20, 9.00, 8.55, 8.10, 6.30, 5.40, 8.10, 8.10, ...
输出显示数据有五个数值变量(标记为“int”、“dbl”)和五个字符变量(标记为“chr”)。我们将使用下面的代码行将它们转换为因子变量。
names <- c(1,2,5,6,8)
dat[,names] <- lapply(dat[,names] , factor)
glimpse(dat)
输出:
Observations: 200
Variables: 10
$ Marital_status <fct> Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes,...
$ Is_graduate <fct> No, No, No, No, No, No, No, No, No, No, No, No, Yes, Y...
$ Income <int> 72000, 64000, 80000, 76000, 72000, 56000, 48000, 72000...
$ Loan_amount <int> 70500, 70000, 275000, 100500, 51500, 69000, 147000, 61...
$ Credit_score <fct> Bad, Bad, Bad, Bad, Bad, Bad, Bad, Bad, Bad, Bad, Bad,...
$ approval_status <fct> Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes, Yes,...
$ Investment <int> 117340, 85340, 147100, 65440, 48000, 136640, 160000, 9...
$ gender <fct> Female, Female, Female, Female, Female, Female, Female...
$ age <int> 34, 34, 33, 34, 33, 34, 33, 33, 33, 33, 34, 33, 33, 33...
$ work_exp <dbl> 8.10, 7.20, 9.00, 8.55, 8.10, 6.30, 5.40, 8.10, 8.10, ...
频率表
在深入研究卡方检验之前,了解 R 中用作卡方函数输入的频率表或矩阵非常重要。频率表是查找两个分类变量之间依赖关系或不依赖关系的有效方法。它们还提供了变量之间关系的第一级视图。
table ()函数可用于创建变量之间的双向表。在下面的第一行代码中,我们在变量Marital_status和approved_status之间创建双向表。第二行打印频率表,而第三行打印比例表。第四行打印行比例表,而第五行打印列比例表。
# 2 - way table
two_way = table(dat$Marital_status, dat$approval_status)
two_way
prop.table(two_way) # cell percentages
prop.table(two_way, 1) # row percentages
prop.table(two_way, 2) # column percentages
输出:
No Yes
Divorced 31 29
No 66 10
Yes 52 12
No Yes
Divorced 0.155 0.145
No 0.330 0.050
Yes 0.260 0.060
No Yes
Divorced 0.5166667 0.4833333
No 0.8684211 0.1315789
Yes 0.8125000 0.1875000
No Yes
Divorced 0.2080537 0.5686275
No 0.4429530 0.1960784
Yes 0.3489933 0.2352941
百分比总计列的输出显示,与已婚申请人相比,离婚申请人获得贷款批准的概率更高(56.8%)。为了检验这一结论是否具有统计显著性,我们进行了独立性卡方检验。
步骤
我们将使用卡方检验来确定两个分类变量Marital_status和approved_status之间的关联。像所有统计检验一样,我们首先指定零假设和备择假设。
零假设 H0 :婚姻状况 (Marital_status)和认可状况 (approval_status)两个变量彼此独立。
备择假设 H1:两个变量相互关联。
第一步是在研究的变量之间创建一个双向表,这在下面的代码行中完成。
mar_approval <-table(dat$Marital_status, dat$approval_status)
mar_approval
输出:
No Yes
Divorced 31 29
No 66 10
Yes 52 12
下一步是使用 chisq.test ()函数执行卡方检验。此函数的使用非常简单,如下所示,其中上面生成的表作为参数传递给函数,然后生成检验结果。
chisq.test(mar_approval)
输出:
Pearson's Chi-squared test
data: mar_approval
X-squared = 24.095, df = 2, p-value = 0.000005859
解释:由于 p 值小于 0.05,我们拒绝申请人的婚姻状况与批准状态无关的原假设。
使用该函数的另一种方法是直接将研究的变量作为参数传递到chisq.test()函数中,如下所示。
chisq.test(dat$Marital_status, dat$approval_status)
输出:
Pearson's Chi-squared test
data: dat$Marital_status and dat$approval_status
X-squared = 24.095, df = 2, p-value = 0.000005859
正如预期的那样,这产生了类似的测试结果。同样,我们可以测试其他分类特征之间的关系。
结论
在本指南中,您了解了在分类变量数据中查找关系的技术。您还了解了 R 中简单但有效的chisq.test()函数,以及如何使用它来确定两个分类特征之间的关联。
要了解有关使用“R”进行数据科学的更多信息,请参阅以下指南:
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~