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

🎯要点

  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.xdnf.cn/news/143788.html

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

相关文章

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式,它们各有优劣势,选择哪种方式取决于具体的应用需求和预算。 沉金(ENIG)是一种常用的金手指处理方式,它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

链条缺陷检测系统源码分享

链条缺陷检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Java-数据结构-优先级队列(堆)-(一) (;´д`)ゞ

文本目录: ❄️一、优先级队列: ➷ 1、概念: ❄️二、优先级队列的模拟实现: ➷ 1、堆的概念: ➷ 2、堆的性质: ➷ 3、堆的创建: ▶ 向下调整: ➷ 4、堆的插入和删除: …

Linux权限管理: 文件访问者分类、文件类型和访问权限、权限值的表示方法、文件访问权限的相关设置方法、umask、目录的权限、粘滞位等的介绍

文章目录 前言一、文件访问者分类二、文件类型和访问权限1. 文件类型2. 基本权限 三、权限值的表示方法1. 字符表示方法2. 8进制数值表示方法 四、文件访问权限的相关设置方法1. chmod2. chown3. chgrp 五、 umask六、目录的权限七、粘滞位总结 前言 Linux权限管理&#xff1a…

论文不会写?分享6款AI论文写作免费一键生成网站!

在当今学术研究和写作领域,AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。本文将分享6款免费一键生成AI论文写作网站,并重点推荐千笔-AIPassPaper。 …

鸿蒙OpenHarmony【轻量系统芯片移植】物联网解决方案之芯海cst85芯片移植案例

物联网解决方案之芯海cst85芯片移植案例 本文介绍基于芯海cst85芯片的cst85_wblink开发板移植OpenHarmony LiteOS-M轻量系统的移植案例。开发了Wi-Fi连接样例和XTS测试样例,同时实现了wifi_lite, lwip, startup, utils, xts, hdf等部件基于OpenHarmony LiteOS-M内核…

初学者如何快速入门大语言模型(LLM)?

初学者如何快速入门大语言模型(LLM) 知乎大佬已给出了比较合理的方案,小白千万别走弯路了,下面给大家梳理和解读: 技术要求:要入门大语言模型,需要掌握以下基本技术: 开发语言&…

模拟实现string类: clear函数、流提取(<<)和流插入(>>)运算符重载、>、<、==、<=、>=、!=的运算符重载、赋值运算符(=)重载等的介绍

文章目录 前言一、 clear函数二、流提取(<<)和流插入(>>)运算符重载三、 >、<、、<、>、!的运算符重载四、赋值运算符&#xff08;&#xff09;重载总结 前言 模拟实现string类: clear函数、流提取(<<)和流插入(>>)运算符重载、>、<…

上线跨境电商商城的步骤

上线一个跨境电商商城涉及多个步骤&#xff0c;从前期准备到上线后的维护。以下是一些关键步骤&#xff1a; 1. 市场调研与规划 目标市场分析&#xff1a;研究目标市场的需求、竞争对手和消费者行为。法律法规&#xff1a;了解并遵守目标市场的法律法规&#xff0c;包括税收、…

git学习【持续更新中。。。】

git学习【持续更新中。。。】 文章目录 git学习【持续更新中。。。】一、Git基本操作1.创建本地仓库2.配置本地仓库1.局部配置2.全局配置 3.认识工作区、暂存区、版本库4.添加文件5.修改文件6.版本回退7.撤销修改8.删除文件 二、Git分支管理1.理解分支2.创建、切换、合并分支3.…

YOLOv8改进:SA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,与其他一些注意力机制相比,不仅准确度更高,而且模型更加轻量化。)

如果实验环境尚未搭建成功&#xff0c;可以参考这篇文章 ->【YOLOv8超详细环境搭建以及模型训练&#xff08;GPU版本&#xff09;】 文章链接为&#xff1a;http://t.csdnimg.cn/8ZmAm ---------------------------------------------------------------------------​---…

亲测有效,长期有效的RTSP流地址公网RTSP地址,各种类型的视频源

我们经常需要做一些实时视频流的测试&#xff0c;但是手边又没有办法及时弄到一个摄像机&#xff0c;我们经常会去搜索一下“公网RTSP地址”&#xff0c;但是大部分现在都失效了&#xff0c;有什么办法能够让我们快速构建一个RTSP流&#xff0c;点几下就能直接用&#xff1f; …

C++ 在项目中使用Linux命令

一: 选择shell Linux 命令是由shell解析并转发给操作系统执行的&#xff0c;所有的shell都是从 Bourne shell&#xff08;/bin/sh&#xff09;派生的&#xff0c;Bourne shell是贝尔实验室为早期版本的Unix开发的标准shell。 每个Unix系统都需要一个版本的Bourne shell才能正…

Maple常用命令

1. 重启内核&#xff1a; restart 2. 化简式子 simplify(式子) 3. 引用前面出现的公式&#xff1a; CtrlL&#xff0c;在弹出的以下对话框中输入要引用的公式编号 4.

Pandas的读写数据

目录 读写文件的类型 Excel写 API 准备数据 1.直接写入(默认有索引和标题) 2.写入(去掉索引) 3.写入(去掉索引和标题) 4.写入(去掉索引和标题,指定表单信息) Excel读 API 1.读(默认带有索引和标题) 2.读(指定索引项) 3.读(碰到无标题列和无索引列,指定索引列,标题列…

[SIGGRAPH-24] CharacterGen

[pdf | code | proj] LRM能否用于3D数字人重建&#xff1f;问题在于&#xff1a;1&#xff09;缺少3D数字人数据&#xff1b;2&#xff09;重建任意姿态的3D数字人不利于后续绑定和驱动。构建3D数字人数据集&#xff1a;在VRoidHub上采集数据&#xff0c;得到13746个风格化角色…

vue3中如何拿到vue2中的this

vue3中常用api vue3中常用响应式数据类型&#xff1a;

python3GUI--字符串加密方案(附源码)

文章目录 一&#xff0e;前言二&#xff0e;展示1.AES 加密1.介绍优点缺点2.代码3.结果 2.RSA 加密1.介绍优点缺点2.代码3.结果 3.基于 HMAC 的 URL 签名1.介绍优点缺点2.代码3.结果 4.JWT&#xff08;JSON Web Token&#xff09;加密1.介绍优点缺点2.安装3.代码4.结果 三&…

python运行时错误:找不到fbgemm.dll

python运行时错误&#xff1a;找不到fbgemm.dll 报错&#xff1a; OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\program\py\312\Lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies. 原因是Windows下缺失&#xff1a;libomp140…

Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(一)

目录 自动化介绍 bord 边框宽度 随机函数 fsvp 随机颜色 move 自动化介绍 自动化介绍:简单来说自动化能让所有字幕行快速拥有你指定的同一种特效 对时间不同的行应用相同的效果 只要设计好一个模板&#xff0c;然后让所有行都执行这个模板上的特效就好了 首先制作模板行…