从0开始学习R语言--Day26--因果推断

很多时候我们在探讨数据的相关性问题时,很容易会忽略到底是数据本身的特点还是真的是因为特征的区分导致的不同,从而误以为是特征起的效果比较大。

这就好比测试一款新药是否真的能治病,假如吃药的患者康复的更快,那到底是因为药物本身的效果好,还是因为患者本身更健康,平时有控制饮食合理作息与运动,从而在患病后更快地凭借自身免疫力战胜病毒。这需要我们意识到对照试验还需要人为地补足某些条件,也就是探讨是否真的是X导致了Y。

以下是一个例子:

# 加载必要包
library(tidyverse)
library(broom)# 生成模拟数据集(1000名患者)
set.seed(123)
data <- tibble(# 年龄影响病情严重程度和治疗选择age = rnorm(1000, mean = 50, sd = 10),# 病情严重程度(年龄越大病情越重)severity = 0.3 * age + rnorm(1000, sd = 5),# 治疗选择(病情越重越可能接受治疗)treatment = rbinom(1000, 1, plogis(-2 + 0.05 * severity)),# 康复时间(治疗有效,但病情越重康复越慢)recovery_time = 30 - 5 * treatment + 0.5 * severity + rnorm(1000, sd = 3)
)# 查看前几行数据
head(data)data1 <- data
data1 %>% group_by(treatment) %>% summarise(mean_recovery = mean(recovery_time))
# 会发现治疗组康复时间更长!(因为治疗组病情更重)model <- lm(recovery_time ~ treatment + severity + age, data = data)
tidy(model) %>% filter(term == "treatment")
# 现在能看到治疗真实效果(约减少5天)library(MatchIt)# 计算倾向得分(基于年龄和病情)
match_model <- matchit(treatment ~ age + severity,data = data,method = "nearest"
)# 匹配后的数据
matched_data <- match.data(match_model)# 分析匹配后的数据
lm(recovery_time ~ treatment, data = matched_data) %>% tidy()ggplot(data, aes(x = severity, y = recovery_time, color = factor(treatment))) +geom_point(alpha = 0.5) +geom_smooth(method = "lm") +labs(title = "康复时间 vs 病情严重程度",subtitle = "控制病情后,治疗组(红色)康复更快",color = "是否治疗")

输出:

  treatment mean_recovery<int>         <dbl>
1         0          37.5
2         1          33.0term      estimate std.error statistic  p.value<chr>        <dbl>     <dbl>     <dbl>    <dbl>
1 treatment    -5.43     0.238     -22.8 3.69e-93term        estimate std.error statistic  p.value<chr>          <dbl>     <dbl>     <dbl>    <dbl>
1 (Intercept)    38.3      0.295     130.  0       
2 treatment      -5.36     0.418     -12.8 7.49e-32
`geom_smooth()` using formula = 'y ~ x'

从结果可以看到,单纯的比较康复时间,会隐藏在背后的很多原因,比如患者本身的病情,患者年龄较大,免疫力低等。进一步看线性回归控制变量,控制了相同的病情和年龄去看康复时间,治疗的方案会减少5天多,用倾向得分模拟的随机试验的得到的结果跟控制变量得到的结果差不多,加强了结果的可信度。而从图像来看,治疗组始终低于对照组,也就是说不管怎样,治疗组总是康复得更快,这也暗含了一种因果关系,只是以图像的形式表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910079.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 中布尔值的使用:掌握逻辑判断的核心

在 Python 中&#xff0c;布尔值&#xff08;bool&#xff09;是进行逻辑判断的基础。布尔值只有两个可能的值&#xff1a;True 和 False。通过布尔值&#xff0c;你可以实现条件判断、循环控制以及其他逻辑操作。今天&#xff0c;就让我们一起深入探讨如何在 Python 中使用布尔…

IDEA 中 Tomcat 部署 Java Web 项目(Maven 多模块 非 Maven 通用版)(linux+windows)

引言 Java Web 开发中&#xff0c;Tomcat 是最常用的 Servlet 容器&#xff0c;而项目类型通常分为 Maven 管理&#xff08;依赖自动处理、多模块聚合&#xff09; 和 非 Maven 纯手工管理&#xff08;手动引入 jar 包、配置项目结构&#xff09;。本文覆盖 两种项目类型 的 T…

使用 React Native Web 实现三端统一开发

使用 React Native Web 实现三端统一开发 关键点 React Native Web 简介&#xff1a;React Native Web 是一个允许开发者使用 React Native 组件和 API 构建 Web 应用的库&#xff0c;支持在 iOS、Android 和 Web 上使用同一套代码。架构&#xff1a;通过 React DOM 渲染 Rea…

分享一个git上基于std::array实现的循环队列(Cycle Queue)模板类库

为充分利用向量空间,克服“假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。 网上有很多关于循…

三维视频融合平台:如何构建动态感知的数字空间

分享大纲&#xff1a; 你的三维平台为何不能承载动态视频捷码打造三维视频融合平台的三步法则为何选择捷码 在智慧城市建设过程中&#xff0c;将实时视频与三维空间结合&#xff0c;已经成为一种主流趋势。传统视频监控模式&#xff0c;经常面临视频分散、操作复杂等问题。然而…

【AI Study】第五天,Matplotlib(5)- 颜色映射

文章概要 本文详细介绍 Matplotlib 的颜色映射功能&#xff0c;包括&#xff1a; 颜色映射类型颜色映射设置数据标准化颜色条 颜色映射类型 pcolormesh import matplotlib.pyplot as plt import numpy as np# 创建网格数据 x np.linspace(-3, 3, 100) y np.linspace(-3,…

DB2中合理使用INCLUDE关键字创建索引

DB2中合理使用 INCLUDE 关键字创建索引 1. 为何还需要 INCLUDE&#xff1f;——从索引的两大痛点说起 查询想“只读索引不回表”&#xff0c;却又不想把列都做键 → 联合索引空间膨胀&#xff0c;更新放大。唯一索引定位快&#xff0c;但只能返回键列数据 → 仍需 I/O 跳回数据…

基于Spring Boot的民宿管理系统设计与实现

目录 一.&#x1f981;前言二.&#x1f981;开源代码与组件使用情况说明三.&#x1f981;核心功能1. ✅算法设计2. ✅Spring Boot框架3. ✅Vue.js框架4. ✅部署项目 四.&#x1f981;演示效果1. 管理员模块1.1 浏览后台首页1.2 预订信息管理1.3 入住信息管理1.4 退房信息管理1.…

大数据系统架构实践(一):Zookeeper集群部署

大数据系统架构实践&#xff08;一&#xff09;&#xff1a;Zookeeper集群部署 文章目录 大数据系统架构实践&#xff08;一&#xff09;&#xff1a;Zookeeper集群部署一、Zookeeper简介二、部署前准备三、部署Zookeeper集群1. 下载并解压安装包2. 配置zoo.cfg3. 设置日志目录…

《道德经》:探寻古老智慧中的哲学之光

我强烈推荐4本可以改变命运的经典著作&#xff1a; 《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅读白话文《了凡四训》在线阅读白话文 《道德经》作为道家经典&#xff0c;短短五千言&#xff0c;却字字珠玑&#xff0c;蕴含着超越时空的哲学智慧。…

科技赋能民生:中建海龙为民生改善注入新动力

在社会发展的进程中&#xff0c;民生改善始终占据着核心地位。住房、基础设施建设等民生领域的进步&#xff0c;直接关系到民众的生活质量与幸福感。中建海龙科技有限公司&#xff08;以下简称“中建海龙”&#xff09;作为建筑行业的创新引领者&#xff0c;凭借其强大的科技实…

BI 赋能,打造数据可视化看板新体验

BI 赋能&#xff0c;打造数据可视化看板新体验 引言 在当今数字化时代&#xff0c;数据成为企业决策的重要依据。如何从海量的数据中提取有价值的信息&#xff0c;并以直观、易懂的方式呈现出来&#xff0c;是企业面临的重要挑战。商业智能&#xff08;BI&#xff09;工具的出…

vue2设置自定义域名跳转

需求&#xff1a;首次登录域名为aa.com&#xff0c;之后登录系统后在系统内某个模块设置三级域名为second&#xff0c;之后退出登录到aa.com,登录进入系统后域名自动变为second.aa.com&#xff0c;最后退出的域名也是second.aa.com&#xff0c;通过不同的域名配置动态的登录页面…

“地标界爱马仕”再拓疆域:世酒中菜联袂赤水金钗石斛定义中国GI

“地标界爱马仕”再拓疆域&#xff1a;世酒中菜联袂赤水金钗石斛&#xff0c;定义中国GI奢侈品新高度 ——中世国际与贵州斛满多战略合作签约仪式在赤水举行 赤水市&#xff0c;2025年5月18日——被誉为“地标界爱马仕”的顶级奢侈品牌世酒中菜 &#xff08;世界酒中国菜全球…

零基础、大白话,Vue3全篇通俗疗法(上):基础知识【看得懂】

前言 最近有个小朋友想了解Vue前端技术&#xff0c;但他只懂一些HTML基础&#xff0c;让我用最简单的方式讲解。于是就有了这篇面向初学者的博文。 老手请绕行&#xff0c;本文专为新手准备。如果发现用词不当的地方欢迎留言指正&#xff0c;觉得对新手有帮助的话请收藏点赞。 …

JavaScript性能优化实战

JavaScript性能优化实战技术文章大纲 性能优化的重要性 解释为什么性能优化对用户体验和业务指标至关重要讨论核心Web指标&#xff08;LCP、FID、CLS&#xff09;与JavaScript性能的关系 代码层面优化 减少DOM操作&#xff0c;使用文档片段或虚拟DOM避免频繁的重绘和回流&a…

考研英语作文评分标准专业批改

考研英语作文专业批改经过官方评分标准严格对标&#xff0c;彻底改变你的作文提升方式&#xff0c;打开 懂试帝小程序 直达批改。 &#x1f3af; 批改服务核心优势 ✨ 官方标准严格对标 完全按照考研英语官方五档评分制&#xff0c;从内容完整性、组织连贯性、语言多样性到语…

智能群跃小助手发布说明

1.初次登陆需要授权码 2.社群维护页面 3.产品营销页面

SAM2论文解读-既实现了视频的分割一切,又比图像的分割一切SAM更快更好

code&#xff1a;https://github.com/facebookresearch/sam2/tree/main demo:https://sam2.metademolab.com/ paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 这是SAM 这是SAM2 Facebook出品&#xff0c;继SAM在图像上分割…

WPF 的RenderTransform使图标旋转180°

只是记录一下思想&#xff1a; 本来想找两个对称的图标给按钮用&#xff0c;但是另一个找不到&#xff0c;就想到可不可以旋转180实现另一个图标的效果&#xff0c;问了一下DeepSeek&#xff1a; <Path Width"30" Height"30" Margin"1"Data…