分类变量与二分类变量相关性分析:求训练营与就业关联的正确R代码
训练营类型与工作岗位相关性分析的R实现方案
从你提供的数据截图来看,数据集包含两列核心分类变量:
Bootcamp:训练营类型(如软件工程、数据科学)Job_Field:最终从事的工作领域(如软件相关、数据相关)
你当前的代码存在冗余和方向偏差问题:重复执行NA过滤、不必要的格式转换、错误地将分类变量转为数值型,这些操作对分类变量间的相关性分析没有帮助。以下是针对性的正确代码方案:
1. 数据清洗(仅需一次NA过滤)
假设数据已加载到data对象中,先过滤含缺失值的行:
# 过滤含缺失值的行 data_clean <- data[complete.cases(data), ]
2. 确认数据结构与分布
先查看变量类型和分类频数,确保数据符合分析要求:
# 查看数据结构 str(data_clean) # 生成训练营-工作领域的交叉频数表 table(data_clean$Bootcamp, data_clean$Job_Field)
3. 统计检验:卡方检验
用卡方检验判断两类变量是否存在显著关联:
# 构建列联表 cross_tab <- table(data_clean$Bootcamp, data_clean$Job_Field) # 执行卡方检验 chi_test <- chisq.test(cross_tab) # 输出检验结果 print(chi_test)
若检验的p值小于0.05,说明训练营类型和工作岗位存在显著关联。
4. 量化关联强度:Cramer's V系数
卡方检验仅能判断是否关联,Cramer's V可量化关联强度(取值0-1,越接近1关联越强):
# 计算Cramer's V系数 cramer_v <- sqrt(chi_test$statistic / (nrow(data_clean) * (min(dim(cross_tab)) - 1))) cat("Cramer's V系数:", cramer_v, "\n")
5. 可视化关联关系
用堆叠条形图直观展示不同训练营对应的工作领域分布:
# 若未安装ggplot2先执行:install.packages("ggplot2") library(ggplot2) ggplot(data_clean, aes(x = Bootcamp, fill = Job_Field)) + geom_bar(position = "fill") + labs(title = "不同训练营学员的工作领域占比", x = "训练营类型", y = "占比", fill = "工作领域") + theme(axis.text.x = element_text(angle = 45, hjust = 1))
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

