Python燃烧废气排放推断算法模型

news2024/9/19 10:28:31

🎯要点

  1. 宏观能耗场景模型参数化输入数据,分析可视化输出结果,使用场景时间序列数据模型及定量和定性指标
  2. 使用线图和箱线图、饼图、散点图、堆积条形图、桑基图等可视化模型输出结果
  3. 根据气体排放过程得出其时间序列关系,使用推断模型中计算工具量化气体排放量
  4. 推断模型中计算工具使用的数学工具是恒定比率、时间比率、分位数滚动窗口、均方根、线性插补等

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python时间序列分析

时间序列数学模型

时间序列模型是假设多个时间序列或时间序列之间存在关系的模型。简单回归模型就是一个例子:
y ( t ) = x ( t ) β + ε ( t ) ( 1 ) y(t)=x(t) \beta+\varepsilon(t)\qquad(1) y(t)=x(t)β+ε(t)(1)
其中 y ( t ) = { y t ; t = 0 , ± 1 , ± 2 , … } y(t)=\left\{y_t ; t=0, \pm 1, \pm 2, \ldots\right\} y(t)={yt;t=0,±1,±2,} 是一个序列,以时间下标 t t t 为索引,它是可观测信号序列 x ( t ) = { x t } x(t)=\left\{x_t\right\} x(t)={xt}和不可观测,独立且同分布的随机变量的白噪声序列 ε ( t ) = { ε t } \varepsilon(t)=\left\{\varepsilon_t\right\} ε(t)={εt} 的组合。

一种更通用的模型,我们称之为一般时间回归模型,它假设一种关系,其中包含任意数量的 x ( t ) 、 y ( t ) x(t)、y(t) x(t)y(t) ε ( t ) \varepsilon(t) ε(t) 的连续元素。该模型可以由方程表示
∑ i = 0 p α i y ( t − i ) = ∑ i = 0 k β i x ( t − i ) + ∑ i = 0 q μ i ε ( t − i ) ( 2 ) \sum_{i=0}^p \alpha_i y(t-i)=\sum_{i=0}^k \beta_i x(t-i)+\sum_{i=0}^q \mu_i \varepsilon(t-i)\qquad(2) i=0pαiy(ti)=i=0kβix(ti)+i=0qμiε(ti)(2)
通常认为 α 0 = 1 \alpha_0=1 α0=1 是理所当然的。 左侧前导系数的归一化将 y ( t ) y(t) y(t) 标识为输出序列。方程中的任何和都可以是无限的,但如果模型要可行,则系数序列 { α i } , { β i } \left\{\alpha_i\right\},\left\{\beta_i\right\} {αi},{βi} { μ i } \left\{\mu_i\right\} {μi} 只能依赖于有限数量的参数。

虽然以(2)的形式写出一般模型很方便,但也通常用以下方程表示
y ( t ) = ∑ i = 1 p ϕ i y ( t − i ) + ∑ i = 0 k β i x ( t − i ) + ∑ i = 0 q μ i ε ( t − i ) y(t)=\sum_{i=1}^p \phi_i y(t-i)+\sum_{i=0}^k \beta_i x(t-i)+\sum_{i=0}^q \mu_i \varepsilon(t-i) y(t)=i=1pϕiy(ti)+i=0kβix(ti)+i=0qμiε(ti)

其中 ϕ i = − α i \phi_i=-\alpha_i ϕi=αi 表示 i = 1 , … , p i=1, \ldots, p i=1,,p。这会将序列 y ( t ) y(t) y(t) 的滞后版本与输入序列 x ( t ) x(t) x(t) 及其滞后一起放置在右侧上。

工程师倾向于将其描述为反馈模型,而经济学家更可能将其描述为具有滞后因变量的模型。

由于包含可观察的解释序列 x ( t ) x(t) x(t),上述模型被称为回归模型。当 x ( t ) x(t) x(t)被删除时,我们得到一个更简单的无条件线性随机模型:
∑ i = 0 p α i y ( t − i ) = ∑ i = 0 q μ i ε ( t − i ) \sum_{i=0}^p \alpha_i y(t-i)=\sum_{i=0}^q \mu_i \varepsilon(t-i) i=0pαiy(ti)=i=0qμiε(ti)
这是自回归移动平均模型。

Python自回归综合移动平均线

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.arima_model import ARIMA
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

我们将使用包含特定日期飞机乘客数量的数据集。

df = pd.read_csv('air.csv', parse_dates = ['Month'], index_col = ['Month'])
df.head()
plt.xlabel('Date')
plt.ylabel('Number of air passengers')
plt.plot(df)

在建立模型之前,我们必须确保时间序列是平稳的。有两种主要方法可以确定给定时间序列是否平稳。

  • 滚动统计:绘制滚动平均值和滚动标准差。如果时间序列随时间保持恒定(用肉眼观察线条是否笔直且平行于 x 轴),则时间序列是平稳的。
  • 增强迪基-富勒检验:如果 p 值较低(根据原假设)并且 1%、5%、10% 置信区间的临界值尽可能接近增强迪基-富勒统计,则时间序列被视为平稳。

对于那些不理解平均值和滚动平均值之间区别的人来说,10 天滚动平均值会将前 10 天的收盘价平均作为第一个数据点。下一个数据点会删除最早的价格,加上第 11 天的价格并取平均值,依此类推。

rolling_mean = df.rolling(window = 12).mean()
rolling_std = df.rolling(window = 12).std()
plt.plot(df, color = 'blue', label = 'Original')
plt.plot(rolling_mean, color = 'red', label = 'Rolling Mean')
plt.plot(rolling_std, color = 'black', label = 'Rolling Std')
plt.legend(loc = 'best')
plt.title('Rolling Mean & Rolling Standard Deviation')
plt.show()

正如您所看到的,滚动平均值和滚动标准差随着时间的推移而增加。因此,我们可以得出结论,时间序列不是平稳的。

result = adfuller(df['Passengers'])
print('ADF Statistic: {}'.format(result[0]))
print('p-value: {}'.format(result[1]))
print('Critical Values:')
for key, value in result[4].items():
    print('\t{}: {}'.format(key, value))

获取因变量的对数是降低滚动平均值增加速率的简单方法。

df_log = np.log(df)
plt.plot(df_log)

让我们创建一个函数来运行两个测试,以确定给定的时间序列是否平稳。

def get_stationarity(timeseries):
    
    rolling_mean = timeseries.rolling(window=12).mean()
    rolling_std = timeseries.rolling(window=12).std()
    
    original = plt.plot(timeseries, color='blue', label='Original')
    mean = plt.plot(rolling_mean, color='red', label='Rolling Mean')
    std = plt.plot(rolling_std, color='black', label='Rolling Std')
    plt.legend(loc='best')
    plt.title('Rolling Mean & Standard Deviation')
    plt.show(block=False)

    result = adfuller(timeseries['Passengers'])
    print('ADF Statistic: {}'.format(result[0]))
    print('p-value: {}'.format(result[1]))
    print('Critical Values:')
    for key, value in result[4].items():
        print('\t{}: {}'.format(key, value))

👉参阅、更新:计算思维 | 亚图跨际

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

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

相关文章

nginx基础篇(一)

文章目录 学习链接概图一、Nginx简介1.1 背景介绍名词解释 1.2 常见服务器对比IISTomcatApacheLighttpd其他的服务器 1.3 Nginx的优点(1)速度更快、并发更高(2)配置简单,扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证 1.4 Nginx的功能特性及常用功能基本HTTP服…

GlusterFS 分布式文件系统

一、GlusterFS 概述 1.1 什么是GlusterFS GlusterFS 是一个开源的分布式文件系统,它可以将多个存储服务器结合在一起,创建一个大的存储池,供客户端使用。它不需要单独的元数据服务器,这样可以提高系统的性能和可靠性。由于没有…

python毕业设计基于django+vue医院社区医疗挂号预约综合管理系统7918h-pycharm-flask

目录 技术栈和环境说明预期达到的目标具体实现截图系统设计Python技术介绍django框架介绍flask框架介绍解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示操作可行性技术路线感恩大学老师和同学详细视频演示源码获取 技术…

【Finetune】(二)、transformers之Prompt-Tuning微调

文章目录 0、prompt-tuning基本原理1、实战1.1、导包1.2、加载数据1.3、数据预处理1.4、创建模型1.5、Prompt Tuning*1.5.1、配置文件1.5.2、创建模型 1.6、配置训练参数1.7、创建训练器1.8、模型训练1.9、推理:加载预训练好的模型 0、prompt-tuning基本原理 prompt…

【机器学习】任务五:葡萄酒和鸢尾花数据集分类任务

目录 1.实验基础知识 1.1 集成学习 (1)随机森林 (2)梯度提升决策树(GBDT) (3)XGBoost (4)LightGBM 1.2 参数优化 (1)网格搜索…

编写第一个hadoop3.3.6的mapreduce程序

hadoop还是用的上个伪分布环境。 hadoop安装在龙蜥anolis8.9上,开发是在windows下。 1、windows下首先要下载hadoop的包,hadoop-3.3.6.tar.gz,比如我的解压到d:\java\hadoop-3.3.6中。 配置环境:HADOOP_HOME,内容为&am…

ava总结篇系列:Java泛型Java sort用法详解

一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list new ArrayList(); 5 list.add(&q…

【Elasticsearch系列四】ELK Stack

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

mysql事务的隔离级别学习

事务的隔离级别: ⅰ. 读未提交 ⅱ. 对已提交 (解决 脏读) ⅲ. 可重复读 (解决 不可重复读) ⅳ. 串行化 (解决 脏读 不可重复读 幻读 问题 ) 隔离级别分类如下,在不同的隔离级别下可能产生不…

网络安全。

文章目录 目录 文章目录 一. 网络安全概述 二. 密码学原理 三. 报文完整性和数字签名 密码散列函数 报文鉴别码 数字签名 公钥认证 四. HTTPS通信 总结 一. 网络安全概述 网络安全是保护计算机网络及其数据免受各种威胁和攻击的实践和技术。随着互联网的普及和数字化…

Linux shell编程学习笔记81:zcat命令——快速查看压缩文件内容

0 引言 在 Linux shell编程学习笔记80:gzip命令——让文件瘦身-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/141862213?spm1001.2014.3001.5501中,我们使用gzip命令可以创建压缩文件。那么,我们可以使用zcat命令来查看压…

传输层协议——udp/tcp

目录 再谈端口号 udp 协议 理解报头 udp特点 缓冲区 udp使用的注意事项 tcp协议 TCP的可靠性与提高效率的策略 序号/确认序号 窗口大小 ACK: PSH URG RST 保活机制 重传 三次握手(SYN) 四次挥手(FIN) 流量控制 滑动窗口 拥塞控制 延迟应答 捎带应答 面…

JavaScript match() 方法

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 如果想了解更多正则表达式教程请查看: RegExp 教程 和我们的 RegExp 对象参考手册。 注意: match() 方法将检索字符串 String Object,以找到一个或多个…

Vue3 项目引入阿里 iconfont 图标和字体的多种方式

🚀 个人简介:某大型国企资深软件研发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码喽的自我修养&#x1f9…

计算机人工智能前沿进展-大语言模型方向-2024-09-19

计算机人工智能前沿进展-大语言模型方向-2024-09-19 1. SAM4MLLM: Enhance Multi-Modal Large Language Model for Referring Expression Segmentation Authors: Yi-Chia Chen, Wei-Hua Li, Cheng Sun, Yu-Chiang Frank Wang, Chu-Song Chen SAM4MLLM: 增强多模态大型语言模型…

Java面试篇基础部分-Java线程生命周期

线程的生命周期分别为 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。   在系统运行过程中有线程不断地被创建,而旧的线程在执行完毕之后被清理,线程通过排队的方式获取共享资源或者锁的时候被阻塞,所以运行中的线程就会在…

基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的红外小目标无人机与飞鸟检测系统是一项集成了前沿技术的创新解决方案。该系统利用YOLOv8深度学习模型的强大目标检测能力,结合红外成像技术,实现了对小型无人机和飞鸟等低空飞行目标的快速、准确检测。 YOLOv8作为YOLO系列的…

supermap iclient3d for cesium中的平移,旋转

昨天写的模型机头不是速度的方向 基础知识 屏幕坐标系,笛卡尔空间直角坐标系,大地坐标系 平移和旋转都是基于笛卡尔空间直角坐标系,也就是基于地心。但是我们想实现模型的旋转是基于模型的局部坐标系,那么就要坐标转换。 向量归…

C++调用C# DLL之踩坑记录

C是非托管代码,C#则是托管代码,无法直接调用 CLR的介绍见CLR简介 MSDN提到了两种非托管-托管的交互技术:CLR Interop和COM Interop 后者要将C# 类库注册为COM组件,本文只探讨CLR,要通过C CLR写中间层代码 方式一&…

全新 HLOB 模型:预测限价订单簿中间价格变化方向的利器

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文介绍了一个名为HLOB的新型大规模深度学习模型,用于预测限价订单簿中间价格的变化。该模型利用信息过滤网络(特别是三角最大化过滤图)来揭示订单簿中不同成交量水平间的深层和非平凡依赖结构,…