【python因果推断库15】使用 sci-kit learn 模型进行回归断点分析

news2024/11/24 17:39:10

目录

导入数据

线性模型和主效应模型

线性模型、主效应模型和交互作用模型

使用bandwidth


from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import ExpSineSquared, WhiteKernel
from sklearn.linear_model import LinearRegression

import causalpy as cp
%config InlineBackend.figure_format = 'retina'

导入数据

data = cp.load_data("rd")
data.head()

线性模型和主效应模型

result = cp.skl_experiments.RegressionDiscontinuity(
    data,
    formula="y ~ 1 + x + treated",
    model=LinearRegression(),
    treatment_threshold=0.5,
)
fig, ax = result.plot()

result.summary(round_to=3)
Difference in Differences experiment
Formula: y ~ 1 + x + treated
Running variable: x
Threshold on running variable: 0.5

Results:
Discontinuity at threshold = 0.19
Model coefficients:
  Intercept      	         0
  treated[T.True]	      0.19
  x              	      1.23

线性模型、主效应模型和交互作用模型

result = cp.skl_experiments.RegressionDiscontinuity(
    data,
    formula="y ~ 1 + x + treated + x:treated",
    model=LinearRegression(),
    treatment_threshold=0.5,
)
result.plot();

虽然我们可以看到这样做并不能很好地拟合数据,几乎肯定高估了阈值处的不连续性。 

result.summary(round_to=3)
Difference in Differences experiment
Formula: y ~ 1 + x + treated + x:treated
Running variable: x
Threshold on running variable: 0.5

Results:
Discontinuity at threshold = 0.92
Model coefficients:
  Intercept        	         0
  treated[T.True]  	      2.47
  x                	      1.32
  x:treated[T.True]	     -3.11

使用bandwidth

我们处理这个问题的一种方法是使用 `bandwidth` 参数。这将只对阈值附近的一定带宽内的数据进行拟合。如果 x 是连续变量,那么模型将只对满足 threshold-bandwidth\leq x\leq threshold+bandwidth 的数据进行拟合。

result = cp.skl_experiments.RegressionDiscontinuity(
    data,
    formula="y ~ 1 + x + treated + x:treated",
    model=LinearRegression(),
    treatment_threshold=0.5,
    bandwidth=0.3,
)

result.plot();

 我们甚至可以走得更远,只为接近阈值的数据拟合截距。但很明显,这将涉及更多的估计误差,因为我们使用的数据较少。

result = cp.skl_experiments.RegressionDiscontinuity(
    data,
    formula="y ~ 1 + treated",
    model=LinearRegression(),
    treatment_threshold=0.5,
    bandwidth=0.3,
)

result.plot();

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

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

相关文章

存储课程学习笔记5_iouring的练习(io_uring,rust_echo_bench,fio)

我们知道,在处理大量高并发网络时,一般考虑并发,以及设计对应的方案(比如select,poll,epoll)等。 那么如果频繁进行文件或者磁盘的操作,如何考虑性能和并发,这里就可以考虑用到io_uring。 0&a…

C语言深入理解指针二(15)

文章目录 前言一、指针变量类型的意义指针的解引用指针-整数void*指针 二、const修饰指针const修饰变量 三、指针运算指针-整数指针-指针指针比较大小 四、野指针野指针成因如何规避野指针 总结 前言 本节课开始上点有意思的内容了! 一、指针变量类型的意义 指针的…

Spark 集群进行 ETL 的架构介绍

一 什么是ETL ETL(extract提取、transform转换、load加载)。ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析…

论文速读|通过 SERL 算法优化轻量级双足机器人结构

论文地址:https://arxiv.org/pdf/2408.15632 这篇论文展示了SERL算法在双足机器人结构参数设计中的有效性,提供了推进该领域的重要见解。通过结合强化学习运动控制策略和进化算法,SERL算法成功识别出在指定设计空间内最能满足任务要求的结构…

GO语言性能分析

Go语言基准测试与pprof工具性能分析详解 在现代软件开发中,性能优化是一个重要的环节。Go语言提供了强大的工具来进行基准测试和性能分析,其中 testing 包用于基准测试,而 pprof 工具用于性能分析。本文将详细讲解如何使用这些工具来进行性能…

如何快速构建RTMP直播推送业务场景?

大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大,性能…

美术|基于java+vue的美术外包管理信息系统(源码+数据库+文档)

美术管理信息系统 目录 基于javavue的美术资源管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能模块 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农…

基于JAVA+SpringBoot+Vue的前后端分离的图书馆管理系统

基于JAVASpringBootVue的前后端分离的图书馆管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#…

【408 数据结构】第2章 线性表

文章目录 线性表考纲线性表的定义和基本操作1. 定义2. 线性表的基本操作 线性表的顺序表示1. 顺序表的定义2. 顺序表基本操作的实现初始化插入-时间复杂度O(n)删除-时间复杂度O(n)按值查找-时间复杂度O(n) 线性表的链式表示1. 单链表的定义2. 单链表基本操作的实现单链表的初始…

计算机毕业设计选题推荐-自驾游攻略管理系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

usb-ss 与 pcie 协议欣赏 --- linux kernel 欣赏

我们先来看usb ss phy , 然后看pcie phy. 我们先来看一下 usb ss phy 的第一条初始化通路. 这是基础设施的构建,这对应着系统启动时usb ss phy一系列稳定性问题 . 一看到probe函数,好啊,它是一切的根. 所谓的无源之水无本之木,这…

C++设计模式——Memento备忘录模式

一,备忘录模式的定义 备忘录模式是一种行为型设计模式,它允许将对象的状态保存在外部,并在需要时恢复。 备忘录模式允许在不破坏封装性的前提下,捕获并存储一个对象的内部状态,并在需要时将其恢复到之前的状态。 在…

IT前端好用的工具集

在线抠图网站 https://www.remove.bg/ 将iconfont转成css显示 https://transfonter.org/ 免费的在线图片压缩 https://tinypng.com/ JSON在线格式化工具 https://www.sojson.com/ 国内人工智能kimi.moonshot工具 https://kimi.moonshot.cn/chat/crft7a6sdv14grouufs0 自动…

2024年录屏神器大盘点,轻松捕捉屏幕精彩

现在讲解一些操作越来越便捷了,我 一般都是用录屏工具来边录制操作边讲解,这样可以更方便对方了解操作步骤。这次我就分享几款免费录屏工具一起来试试吧。 1.福晰录屏软件 链接:www.foxitsoftware.cn/REC/ 对于初次尝试录屏的新手来说&…

java语言发展史

Java语言的发展史是一部丰富多彩的科技演进史,它从一个简单的项目逐渐成长为全球范围内广泛使用的高级编程语言。下面,我将带您简要回顾Java的发展历程。 起源:Oak阶段(1991-1995) Java的前身是Oak,由詹姆斯…

【软考】设计模式之责任链模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。2.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为…

【漏洞复现】易天智能eHR CreateUser 任意用户添加漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

81页PPT产业园5G多功能智慧灯杆整体规划设计方案

学习9000多份智慧城市,智慧医院,智能制造,数字化转型,新质生产力,算力,大模型,AIGC,工业互联网,数字孪生......持续更新热点行业解决方案,公号智慧方案文库。…

计算机网络 --- 【2】计算机网络的组成、功能

目录 一、计算机网络的组成 1.1 从组成部分看 1.2 从工作方式看 1.3 从逻辑功能看 1.4 总结 二、计算机网络的功能 2.1 数据通信 2.2 资源共享​编辑 2.3 分布式处理 2.4 提高可靠性 2.5 负载均衡 一、计算机网络的组成 1.1 从组成部分看 我们举例分析计算机网络从…

Mistral.rs开源大语言模型(LLM)推理平台兼容OpenAI API,通过HTTP服务器和Python绑定

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…