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

Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化

原文链接:https://tecdat.cn/?p=41308

在数据科学的领域中,我们常常会遇到需要处理复杂关系的数据。在众多的数据分析方法中,样条拟合是一种非常有效的处理数据非线性关系的手段。本专题合集围绕如何使用PyMC软件,对樱花花期数据进行样条拟合分析展开了一系列深入的探讨点击文末“阅读原文”获取完整代码、数据、文档)。

本专题合集涵盖了从数据的获取、清洗,到模型的构建、拟合,再到模型结果的分析和新数据预测等多个关键环节。数据方面,我们使用了记录每年樱花树开花天数(“一年中的天数”即doy)和年份(year)的樱花花期数据。在数据处理时,为了方便,我们剔除了缺失开花天数数据的年份(但一般来说,这并不是处理缺失数据的好方法)。

在模型构建部分,我们构建了一个基于正态分布的模型来描述樱花花期天数的变化。模型中,开花天数D被建模为均值为μ、标准差为σ的正态分布,而均值μ又是由截距a和由基函数B与模型参数w的乘积组成的线性模型。

在模型拟合完成后,我们对模型的后验抽样结果进行了详细分析,包括参数估计、模型预测等方面。最后,我们还探讨了如何使用该模型对新数据进行预测,尽管样条拟合方法在处理超出原始数据范围的数据时存在一定的局限性。

本文代码数据已分享在交流社群,阅读原文进群和500+行业人士共同交流和成长。希望本专题合集的内容能够为数据科学领域的从业者和爱好者提供有价值的参考,帮助大家更好地理解和应用样条拟合方法,解决实际数据分析中的问题。

数据准备

  1. AI提示词:使用Python语言,通过pandas库读取存储樱花花期数据的CSV文件,若文件不存在则从指定位置读取,然后对数据进行缺失值处理并查看数据基本描述信息

from pathlb iport Path
import padas as pd
trycherry\_blossom\_ata = pd.read_csv(Pth(".", "data"cm.csv"), sep=";")

经过缺失值处理后,数据集中包含了827个年份的樱花开花天数信息。从数据的可视化散点图中可以看出,虽然每年的开花天数存在很大的变化,但随着时间的推移,开花天数呈现出一定的非线性趋势。

print(cherry\_blossom\_data.head(n=10))

模型构建

  1. AI提示词:使用PyMC库构建一个基于正态分布的模型,定义模型的参数,包括截距a、参数w、标准差sigma等,并确定它们的先验分布

COORDS = {"splines": np.arange(B.shape\[1\])}
with pm.Model

在这个模型中,我们使用了15个节点将年份数据分成了16个部分,并使用patsy库创建了三次样条基矩阵B。

B = dmatrix(

下面是样条基的绘图,显示了样条每一段的“域”。每条曲线的高度表示相应的模型协变量(每个样条区域一个)对该区域模型推断的影响程度。重叠区域表示节点,显示了从一个区域到下一个区域的平滑过渡是如何形成的。

color = plt.cm.magma(np.linspace(0, 0.80, len(spline\_df.spline\_i.unique())))


点击标题查阅往期内容

Python用PyMC3实现贝叶斯线性回归模型

左右滑动查看更多

01

图片

02

图片

03

图片

04

模型拟合

  1. AI提示词:使用PyMC库对构建好的模型进行抽样,获取先验预测值、后验预测值,设置抽样的相关参数如抽样次数、调优次数、链的数量等

idata = pm.sample\_prior\_predictive()

通过模型拟合,我们可以得到模型参数的后验分布,并对模型的收敛性进行检查。

print("Sampling: \[D\]")

模型分析

  1. AI提示词:使用arviz库对模型后验抽样结果idata进行分析,计算模型参数a、w、sigma的摘要信息,包括均值、标准差、有效样本大小等

从参数估计的结果来看,截距a和标准差σ的后验分布比较窄,而参数w的后验分布较宽。这可能是因为估计a和σ时使用了所有的数据点,而估计每个w值时只使用了部分数据。


  1. AI提示词:使用arviz库绘制模型参数a、w、sigma的迹图,观察参数的收敛情况和分布特征

az.plot\_trace(idata, var\_names=\["a", "w", "sigma"\]);

迹图显示模型的链已经收敛,并且没有明显的趋势,进一步表明模型已经很好地从后验分布中抽样。

另一种可视化拟合样条值的方法是绘制它们与基矩阵的乘积。节点边界再次显示为垂直线,但现在样条基与w的值相乘(表示为彩虹色曲线)。B和w的点积——线性模型中的实际计算——以黑色显示。

pd.DataFrame(B * wp.T)

模型预测

  1. AI提示词:根据模型后验抽样结果idata,计算模型预测值的均值、最高密度区间(HDI)的下限和上限,并将预测值添加到原始数据中

post\_pred = az.summary(idata, var\_names=\["mu"\]).reset_index(drop=True)

通过可视化模型预测结果,我们可以看到模型在原始数据上的拟合效果。

for knot in knot_list: 
plt.gca().axvline(knot, color="grey", alpha=0.4)

新数据预测

  1. AI提示词:使用PyMC库重新定义模型,添加Data容器,将原始数据中的年份和开花天数作为Data变量,设置模型的坐标信息,构建样条基矩阵等

year\_data = pm.Data("year", cherry\_blossom_data.year)w = pm.Normal("w", mu=0, sigma=3, dims="spline")

idata = pm.sample(nuts_sampler="nutpie",

现在我们可以替换数据并使用新数据更新设计矩阵:

cherry\_blossom\_data.sample(50,

使用set_data更新模型中的数据:

new_data={"year": year\_data\_new,

而剩下的就是从后验预测分布中进行抽样:

pm.sample\_posterior\_predictive(idata, var_names=\["mu"\])

绘制预测结果,以检查是否一切正常:

cherry\_blossom\_data.plot.scatter("year","doy",

结论

通过本专题合集的研究,我们详细地展示了如何使用PyMC软件对樱花花期数据进行样条拟合分析。从数据的获取和处理,到模型的构建、拟合、分析以及新数据预测,每个环节都进行了深入的探讨。
在数据准备阶段,我们对原始的樱花花期数据进行了清洗,剔除了缺失值,为后续的分析奠定了基础。模型构建时,基于正态分布建立了合理的模型结构,引入了样条拟合的方法来捕捉数据中的非线性关系。通过精心设置模型参数的先验分布,使得模型更加合理可靠。
在模型拟合过程中,利用PyMC强大的抽样功能,获取了模型参数的后验分布。通过对后验分布的分析,我们发现模型参数的估计结果符合预期,并且模型的收敛性良好,链已经充分混合,这表明我们的模型能够较好地拟合数据。
在模型分析方面,通过对参数估计的详细解读,我们了解了每个参数在模型中的作用和影响。同时,通过绘制各种可视化图形,如迹图、森林图等,直观地展示了模型的性能和参数的分布情况。模型预测部分,我们不仅对原始数据进行了预测,还展示了如何使用模型对新数据进行预测,尽管样条拟合方法存在不能外推到原始数据范围之外的局限性,但在已知数据范围内,模型能够给出较为准确的预测结果。
本专题合集的研究成果对于理解和应用样条拟合方法具有重要的参考价值,希望能够为相关领域的研究和实践提供有益的指导,帮助数据科学领域的从业者和爱好者更好地应用数据分析方法解决实际问题,同时也为进一步探索和改进数据分析方法提供了思路。

本文中分析的完整数据、代码、文档分享到会员群,扫描下面二维码即可加群! 


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

点击文末“阅读原文”

获取完整代码、数据、文档。

本文选自《Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化》。

点击标题查阅往期内容

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言贝叶斯线性回归和多元线性回归构建工资预测模型

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言stan进行基于贝叶斯推断的回归模型

R语言中RStan贝叶斯层次模型分析示例

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra

R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

相关文章:

Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化

原文链接:https://tecdat.cn/?p41308 在数据科学的领域中,我们常常会遇到需要处理复杂关系的数据。在众多的数据分析方法中,样条拟合是一种非常有效的处理数据非线性关系的手段。本专题合集围绕如何使用PyMC软件,对樱花花期数据进…...

记一个.NET AOT交叉编译时的坑

记一个.NET AOT交叉编译时的坑 背景: 使用.NET9开发的Avalonia项目需要部署到Linux-arm64 踩坑: 根据官方AOT交叉编译文档配置后执行打包 dotnet publish -r linux-arm64提示error : The PrivateSdkAssemblies ItemGroup is required for _ComputeA…...

消息中间件对比与选型指南:Kafka、ActiveMQ、RabbitMQ与RocketMQ

目录 引言 消息中间件的定义与作用 消息中间件在分布式系统中的重要性 对比分析的四种主流消息中间件概述 消息中间件核心特性对比 消息传递模型 Kafka:专注于发布-订阅模型 ActiveMQ:支持点对点和发布-订阅两种模型 RabbitMQ:支持点…...

实战打靶集锦-38-inclusiveness

文章目录 1. 主机发现2. 端口扫描&服务枚举3. 服务探查4.系统提权 靶机地址:https://download.vulnhub.com/inclusiveness/Inclusiveness.ova 1. 主机发现 目前只知道目标靶机在192.168.56.xx网段,通过如下的命令,看看这个网段上在线的主…...

JVM 学习计划表(2025 版)

JVM 学习计划表(2025 版) 📚 基础阶段(2 周) 1. JVM 核心概念 ​JVM 作用与体系结构 理解 JVM 在 Java 跨平台运行中的核心作用,掌握类加载子系统、运行时数据区、执行引擎的交互流程​内存结构与数据存…...

Unhandled exception: org.apache.poi.openxml4j.exceptions.InvalidFormatException

代码在main方法里面没有报错,在Controller里面就报错了。 原来Controller类里面少了行代码 import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 加上去就解决了。...

Java的Selenium元素定位-xpath

xpath其实就是一个path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标xpath基于XML文档树状结构,是XML路径语言,用来查询xml文档中的节点。 绝对定位 从根开始找--/(根目录)/html/body/div[2]/div/form/div[5]/button缺…...

【QT】Qt5 QtWebEngine使用教程

目录 1、QtWebEngine相比于QtWebKit的优势2、项目配置2.1 确认 Qt 版本2.2 在.pro 文件中添加依赖3、显示网页4、实现Qt和网页JavaScript之间的交互4.1 Qt执行网页的JavaScript代码4.2 JavaScript调用Qt对象的函数QtWebEngine 是 Qt 框架中用于在应用程序中嵌入 Web 内容的模块…...

python基础-13-处理excel电子表格

文章目录 【README】【13】处理Excel电子表格【13.1】Excel文档【13.2】安装openpyxl模块【13.3】读取Excel文档【13.3.1】使用openpyxl模块打开excel文档【13.3.2】从工作簿取得工作表【13.3.3】从工作表sheet获取单元格cell【13.3.5】从表中获取行和列【13.3.6】工作簿、工作…...

03.unity开发资源 获取

03.unity开发资源 获取 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ unity简介-unity基础 第三节 &#xf…...

设计模式简述(四)模板方法模式

模板方法模式 描述基本定义使用 描述 当一系列业务的基本流程是相同的,对于不同的业务可以在各自子类实现 所谓模板方法指的就是父类中固定的那部分代码 其实这里的思想和前面设计原则中开闭原则的描述是一致的,父类中的模板代码就是稳定的部分&#x…...

OpenCV界面编程

《OpenCV计算机视觉开发实践:基于Python(人工智能技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 OpenCV的Python开发环境搭建(Windows)-CSDN博客 OpenCV也支持有限的界面编程,主要是针对窗口、控件和鼠标…...

【leetcode】记录与查找:哈希表的题型分析

前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…...

AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项

话不多说,直接上效果和代码 效果图一: 效果图二: renderAddStyleOption (item: any) > {const { value } this.props;const { currentSelectedOptionIds, currentStyleId } this.state;const styleSettings value?.styleSettings;c…...

css炫酷的3D水波纹文字效果实现详解

炫酷的3D水波纹文字效果实现详解 这里写目录标题 炫酷的3D水波纹文字效果实现详解项目概述技术栈核心实现1. 基础布局2. 渐变背景3. 文字效果实现3.1 基础样式3.2 文字漂浮动画 4. 水波纹效果4.1 模糊效果4.2 水波动画 5. 交互效果 技术要点项目难点与解决方案总结 项目概述 在…...

P1036 [NOIP 2002 普及组] 选数(DFS)

题目描述 已知 n 个整数 x1​,x2​,⋯,xn​&#xff0c;以及 1 个整数 k&#xff08;k<n&#xff09;。从 n 个整数中任选 k 个整数相加&#xff0c;可分别得到一系列的和。例如当 n4&#xff0c;k3&#xff0c;4 个整数分别为 3,7,12,19 时&#xff0c;可得全部的组合与它…...

PyTorch中.pth文件的解析及应用

文章目录 一、.pth文件简介二、如何保存.pth文件三、如何加载.pth文件跨硬件加载加载后操作 四、.pth文件的结构与内容解析.pth文件示例 五、.pth文件的优缺点优点缺点 六、常见应用场景七、模型文件体积优化技巧问题背景解决方案效果对比 八、总结九、参考 一、.pth文件简介 …...

【doris】在线事务处理

目录 1. 说明2. 特点3. 应用场景4. 技术实现5. OLTP 与 OLAP 的对比6. 挑战7. 发展趋势 1. 说明 1.OLTP&#xff08;Online Transaction Processing&#xff0c;在线事务处理&#xff09; 是一种用于处理大量日常事务操作的数据库系统类型。2.它主要面向实时性要求高、数据操作…...

后端思维之高并发处理方案

前言 在互联网时代&#xff0c;高并发已经成为后端开发者绕不开的话题。无论是电商平台的秒杀活动、抢购系统&#xff0c;还是社交应用的高频互动&#xff0c;高并发场景的出现往往伴随着巨大的技术挑战。 如何在流量激增的同时&#xff0c;确保系统稳定运行、快速响应&#xf…...

OpenCV 图形API(10)用于执行标量除以矩阵的逐元素操作函数divRC()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 标量除以矩阵。 函数 divRC 将给定的标量除以矩阵 src 的每个元素&#xff0c;并将结果保存在与 src 具有相同大小和类型的新的矩阵中&#xff1a; …...

14.2linux中platform无设备树情况下驱动LED灯(详细编写程序)_csdn

我尽量讲的更详细&#xff0c;为了关注我的粉丝&#xff01;&#xff01;&#xff01; 因为这跟之前的不一样&#xff0c;提出来驱动的分离和分层。 提到驱动分离和分层&#xff0c;必然可以联系上一章咱们知道的驱动-总线-设备。 在无设备树的状态下&#xff0c;必然要写寄存…...

K8s的BackUP备份

文章目录 1、kubeadm 安装的单 master 节点数据备份和恢复方式2、Velero 工具3、Velero 服务部署4、备份还原数据 ETCD备份/还原有多种类型&#xff0c;取决于你 k8s 集群的搭建方式 1、kubeadm 安装的单 master 节点数据备份和恢复方式 拷贝 etcdctl 至 master 节点&#xf…...

Ruoyi-vue plus 5.2.2 flowble设计流程点击开始流程图错误

网关设置条件或者是事件删除后出现&#xff0c;点击网关节点无法找到下面的事件节点。 配置页面事件错误&#xff0c;点背景配置进去了事件&#xff0c;发现再次加载&#xff0c;或者删除的时候VUE页面无法加载。 解决方式&#xff1a;查看XML文件&#xff0c;这个节点是否存在…...

如何快速入门物联网单片机开发?

背景 物联网单片机硬件开发涉及多个阶段&#xff0c;元器件是否“自己设计”取决于具体需求。以下是详细解答和学习方案&#xff1a; 一、元器件是否自己设计&#xff1f; 通用元器件&#xff1a; 大多数情况下&#xff0c;开发者直接使用现成的标准化元器件&#xff08;如电阻…...

在 .NET 8 中使用自定义令牌身份验证掌握 SignalR Hub 安全性

最近在练习做一个 Web 开发项目&#xff0c;需要使用 WebSockets 传输数据&#xff0c;实现实时通信。这是一个 React.js 项目&#xff0c;后端是 .NET。 虽然 MSDN 提供了出色的顶级文档&#xff0c;但它通常缺少高级用例所需的低级细节。 一种这样的场景是使用自定义令牌对…...

《SQL赋能人工智能:解锁特征工程的隐秘力量》

在当今的科技发展进程中&#xff0c;人工智能&#xff08;AI&#xff09;已经成为推动各领域变革的核心驱动力。而在人工智能的庞大体系里&#xff0c;特征工程占据着举足轻重的地位&#xff0c;它是将原始数据转化为能够让模型有效学习的特征的关键环节。鲜有人深入探讨的是&a…...

基于springboot+vue的二手车交易系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

React安装使用教程

ReactAnt Designrouteraxios安装完整教程 官网&#xff1a;React Native 中文网 使用React来编写原生应用的框架 一&#xff0c;安装 npx create-react-app my-app npm start npm eject 暴露项目优先提交代码 git add . git commit -m “搭建项目“ 4.yarn add node-sass …...

Day20 -自动化信息收集工具--ARL灯塔的部署

准备&#xff1a; 纯净的Docker环境 ARL的包 一、Docker的部署 00x1 更新系统包 sudo apt update 00x2 安装必要的依赖包 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 00x3 下载docker和docker-compose apt-get install do…...

高级:分布式系统面试题精讲

一、引言 分布式系统在现代软件开发中占据重要地位&#xff0c;其设计和实现需要考虑多个关键因素。面试官通过相关问题&#xff0c;考察候选人对分布式系统核心概念的理解、实际应用能力以及在复杂场景下的问题解决能力。本文将深入分析分布式系统的CAP定理、一致性协议、分布…...