当前位置: 首页 > news >正文

从0开始学习R语言--Day18--分类变量关联性检验

在平时的分析中,关于分类的问题不仅仅会出现在如何将数据分类,还会体现在要如何去挖掘不同分类指甲呢关系,今天我们来学习分类变量关联性检验的相关方法。

卡方检验

通过观察时间中数据的分布来判断原假设是否成立。假设我们是在判断性别和是否吸烟这两个类别的关系,那么我们可以通过调查吸烟的人群中男性和女性的比例,如果两者无关,那么男性和女性的比例应该会差不多,反之则推翻原假设。

Fisher精确检验

就像它的名字一样,当数据量比较小时,我们可以直接去计算事件发生的概率,就像上面那个吸烟的例子一样,假设样本数量只有10,那么我们可以轻松地通过计算知道性别是否和吸烟有关系。

Cramer's V

这个方法,目的是为了在知道是否有关联的前提下,告诉我们这个关联的程度有多高,0代表无关联,0.1-0.3代表弱关联,0.3-0.5代表中等,0.5以上代表强关联。

以下是一个例子:

# 生成两个分类变量的关联数据(性别 vs 吸烟)
set.seed(123)
n <- 200  # 样本量# 创建有轻度关联的数据
data <- data.frame(gender = sample(c("Male", "Female"), size = n, replace = TRUE, prob = c(0.5, 0.5)),smoke = ifelse(runif(n) > 0.6, "Yes", "No")  # 吸烟比例40%
)# 人为制造关联:男性更可能吸烟
data$smoke[data$gender == "Male"] <- ifelse(runif(sum(data$gender == "Male")) > 0.7, "Yes", "No"  # 男性吸烟比例30%
)# 查看列联表
table(data$gender, data$smoke)chi_test <- chisq.test(data$gender, data$smoke)
print(chi_test)# 输出解读:
# p-value < 0.05 表示显著关联
# Pearson's Chi-squared statistic 是卡方值fisher_test <- fisher.test(data$gender, data$smoke)
print(fisher_test)# 输出解读:
# p-value 和卡方检验类似,但更适合小样本
install.packages("rcompanion",type = "binary")
library(rcompanion)# 计算Cramer's V
cramer_v <- cramerV(data$gender, data$smoke)
print(cramer_v)# 输出示例:
# Cramer V 
# 0.14
# 解释:0.1~0.3表示弱关联library(ggplot2)ggplot(data, aes(x = gender, fill = smoke)) +geom_bar(position = "dodge") +labs(title = "Gender vs Smoking", x = "Gender", y = "Count")

输出:

         No YesFemale 60  43Male   70  27Pearson's Chi-squared test with Yates' continuity correctiondata:  data$gender and data$smoke
X-squared = 3.6607, df = 1, p-value = 0.05571Fisher's Exact Test for Count Datadata:  data$gender and data$smoke
p-value = 0.05349
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:0.2843199 1.0126390
sample estimates:
odds ratio 0.5398822
Cramer V 0.1458

从结果来看,卡方统计量X-squared为3.6607,说明观测值和期望值之间的差异较小;而p大于0.05说明在显著水平下,不能拒绝原假设,即性别和吸烟没有显著联系,但p值在边缘,只比0.05大了一点点,还要仔细验证。fisher检验的p同样大于0.05,只不过它还带来了另一个信息,odds ratio的值为0.5398822,表明男性吸烟的比例比女性低。而Cramer V = 0.1458进一步则进一步说明了吸烟与性别的关联非常弱,三者一起计算,更加确定了这两者无关联的结果的真实性。

http://www.lqws.cn/news/172657.html

相关文章:

  • 【Spark征服之路-2.3-Spark运行架构】
  • 基于cornerstone3D的dicom影像浏览器 第二十九章 自定义菜单组件
  • VUE解决页面请求接口大规模并发的问题(请求队列)
  • 分布式微服务系统架构第144集:FastAPI全栈开发教育系统
  • LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
  • 应用案例 | 设备分布广, 现场维护难? 宏集Cogent DataHub助力分布式锅炉远程运维, 让现场变“透明”
  • 计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点可视化分析
  • 使用MinIO搭建自己的分布式文件存储
  • Git分布式版本控制工具
  • 【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
  • 人机融合智能 | “人智交互”跨学科新领域
  • python中的经典视觉模块:OpenCV(cv2)全面解析
  • 计算机视觉与深度学习 | 基于MATLAB的图像特征提取与匹配算法总结
  • 小白如何在cursor中使用mcp服务——以使用notion的api为例
  • 【 java 集合知识 第二篇 】
  • Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
  • Spark 之 DataFrame 开发
  • 准确--k8s cgroup问题排查
  • http头部注入攻击
  • CVAT标注服务
  • Caliper 配置文件解析:config.yaml 和 fisco-bcos.json 附加在caliper中执行不同的合约方法
  • Ubuntu 基于sdl 音频学习的基础代码
  • 【MATLAB去噪算法】基于ICEEMDAN联合小波阈值去噪算法
  • 【SpringBoot自动化部署】
  • LangChainGo入门指南:Go语言实现与OpenAI/Qwen模型集成实战
  • Matlab实现任意伪彩色图像可视化显示
  • 6.6 day38
  • Web 架构之 CDN 加速原理与落地实践
  • LabVIEW实时系统数据监控与本地存储
  • 保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!