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

Python和C++及MATLAB和R时间序列中数学物理金融气象运动和电子材料

🎯要点

  1. 小波分析,量化噪声
  2. 概率分布和统计推理
  3. 物理量和化学量数值计算
  4. 确定性非线性系统
  5. 金融资本市场和市场流动性
  6. 波形传播
  7. 气象建模评估
    在这里插入图片描述

Python时间序列数学

时间序列分析是一种强大的统计技术,广泛应用于经济学、金融学、环境科学和工程学等领域。它涉及研究以特定时间间隔收集或记录的数据点,使分析师能够识别趋势、周期和季节性变化。了解时间序列分析背后的数学原理对于准确解释数据和做出明智的预测至关重要。

自相关和偏自相关

自相关测量不同滞后观测值之间的相关性。从数学上讲,滞后 k k k 的自相关函数定义为:
ρ k = ∑ t = k + 1 T ( y t − y ˉ ) ( y t − k − y ˉ ) ∑ t = 1 T ( y t − y ˉ ) 2 \rho_k=\frac{\sum_{t=k+1}^T\left(y_t-\bar{y}\right)\left(y_{t-k}-\bar{y}\right)}{\sum_{t=1}^T\left(y_t-\bar{y}\right)^2} ρk=t=1T(ytyˉ)2t=k+1T(ytyˉ)(ytkyˉ)

偏自相关测量不同滞后观测值之间的相关性,控制较短滞后时间序列的值。滞后 k k k 的偏自相关函数是去除所有中间滞后的线性依赖性后 y t y_t yt y t − k y_{t-k} ytk 之间的相关性。

Python自相关计算

方式1,使用lag_plot

import pandas as pd

data = pd.read_csv("minimum-temperatures.csv",
				header=0, index_col=0, parse_dates=True,
				squeeze=True)
data.head(15)
pd.plotting.lag_plot(data, lag=1)

方式2,使用 pandas.corr()

data = pd.read_csv("minimum-temperatures.csv",
				header=0, index_col=0, parse_dates=True, 
				squeeze=True)

values = pd.DataFrame(data.values)
dataframe = pd.concat([values.shift(3), values.shift(2),
					values.shift(1), values], axis=1)
dataframe.columns = ['t', 't+1', 't+2', 't+3']
result = dataframe.corr()
print(result)

方式3,使用plot_acf()

import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf

data = pd.read_csv("minimum-temperatures.csv",
				header=0, index_col=0, parse_dates=True, 
				squeeze=True)
plot_acf(data)
移动平均模型

移动平均模型通过对滑动窗口内的数据点进行平均来平滑时间序列。对于时间序列 y t y_t yt q q q 阶模型为:
y t = μ + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + … + θ q ϵ t − q y_t=\mu+\epsilon_t+\theta_1 \epsilon_{t-1}+\theta_2 \epsilon_{t-2}+\ldots+\theta_q \epsilon_{t-q} yt=μ+ϵt+θ1ϵt1+θ2ϵt2++θqϵtq
其中 μ \mu μ 是均值, ϵ t \epsilon_t ϵt 是误差项, θ i \theta_i θi 是参数。

Python计算移动平均模型

简单计算

方式1

import numpy as np

arr = [1, 2, 3, 7, 9]
window_size = 3

i = 0
moving_averages = []

while i < len(arr) - window_size + 1:

	window_average = round(np.sum(arr[
	i:i+window_size]) / window_size, 2)
	moving_averages.append(window_average)
	i += 1
print(moving_averages)

方式2:

import pandas as pd

arr = [1, 2, 3, 7, 9]
window_size = 3

numbers_series = pd.Series(arr)
windows = numbers_series.rolling(window_size)
moving_averages = windows.mean()
moving_averages_list = moving_averages.tolist()
final_list = moving_averages_list[window_size - 1:]

print(final_list)

累积计算

方式1:

import numpy as np

arr = [1, 2, 3, 7, 9]

i = 1
moving_averages = []
cum_sum = np.cumsum(arr);
while i <= len(arr):
	window_average = round(cum_sum[i-1] / i, 2)
	moving_averages.append(window_average)
	i += 1
print(moving_averages)

方式2:

import pandas as pd

arr = [1, 2, 3, 7, 9]
numbers_series = pd.Series(arr)
moving_averages = round(numbers_series.ewm(
alpha=0.5, adjust=False).mean(), 2)
moving_averages_list = moving_averages.tolist()
print(moving_averages_list)
自回归

自回归模型根据过去的值预测未来的值。 p p p 阶模型定义为:
y t = ϕ 1 y t − 1 + ϕ 2 y t − 2 + … + ϕ p y t − p + ϵ t y_t=\phi_1 y_{t-1}+\phi_2 y_{t-2}+\ldots+\phi_p y_{t-p}+\epsilon_t yt=ϕ1yt1+ϕ2yt2++ϕpytp+ϵt
其中 ϕ i \phi_i ϕi 是参数, ϵ t \epsilon_t ϵt 是误差项。

自回归移动平均线

该模型结合了上述两种模型。ARMA(p, q) 模型为:
y t = ϕ 1 y t − 1 + … + ϕ p y t − p + ϵ t + θ 1 ϵ t − 1 + … + θ q ϵ t − q y_t=\phi_1 y_{t-1}+\ldots+\phi_p y_{t-p}+\epsilon_t+\theta_1 \epsilon_{t-1}+\ldots+\theta_q \epsilon_{t-q} yt=ϕ1yt1++ϕpytp+ϵt+θ1ϵt1++θqϵtq

自回归综合移动平均线

此模型是自回归移动平均线模型的扩展,其中包括差分以实现平稳性。ARIMA(p, d, q) 模型为:
( 1 − B ) d y t = ϕ 1 y t − 1 + … + ϕ p y t − p + ϵ t + θ 1 ϵ t − 1 + … + θ q ϵ t − q (1-B)^d y_t=\phi_1 y_{t-1}+\ldots+\phi_p y_{t-p}+\epsilon_t+\theta_1 \epsilon_{t-1}+\ldots+\theta_q \epsilon_{t-q} (1B)dyt=ϕ1yt1++ϕpytp+ϵt+θ1ϵt1++θqϵtq
其中 B B B 是后移算子, d d d 是差分阶。

广义自回归条件异方差

此模型用于对方差变化的时间序列进行建模。GARCH(p, q) 模型为:
y t = μ + ϵ t ϵ t = σ t z t σ t 2 = α 0 + α 1 ϵ t − 1 2 + … + α p ϵ t − p 2 + β 1 σ t − 1 2 + … + β q σ t − q 2 \begin{gathered} y_t=\mu+\epsilon_t \\ \epsilon_t=\sigma_t z_t \\ \sigma_t^2=\alpha_0+\alpha_1 \epsilon_{t-1}^2+\ldots+\alpha_p \epsilon_{t-p}^2+\beta_1 \sigma_{t-1}^2+\ldots+\beta_q \sigma_{t-q}^2 \end{gathered} yt=μ+ϵtϵt=σtztσt2=α0+α1ϵt12++αpϵtp2+β1σt12++βqσtq2
其中 z t z_t zt 是标准正态变量。

向量自回归

此模型捕捉多个时间序列之间的线性相互依赖关系。 k k k 个时间序列 y t 1 , y t 2 , … , y t k y_{t 1}, y_{t 2}, \ldots, y_{t k} yt1,yt2,,ytk 的 VAR§ 模型为:
y t = c + A 1 y t − 1 + A 2 y t − 2 + … + A p y t − p + ϵ t y_t=c+A_1 y_{t-1}+A_2 y_{t-2}+\ldots+A_p y_{t-p}+\epsilon_t yt=c+A1yt1+A2yt2++Apytp+ϵt
其中 c c c 是常数向量, A i A_i Ai 是系数矩阵, ϵ t \epsilon_t ϵt 是误差项向量。

状态空间模型

状态空间模型为建模可以用未观察状态表示的时间序列数据提供了一个框架。一般形式为:
x t + 1 = F x t + G u t y t = H x t + v t \begin{aligned} x_{t+1} & =F x_t+G u_t \\ y_t & =H x_t+v_t \end{aligned} xt+1yt=Fxt+Gut=Hxt+vt
其中 x t x_t xt 是状态向量, u t u_t ut v t v_t vt 是误差项, F 、 G F、G FG H H H 是矩阵。

指数平滑

指数平滑技术将递减权重应用于过去的观测值。简单指数平滑预测 y t y_t yt 的值如下:
y ^ t + 1 = α y t + ( 1 − α ) y ^ t \hat{y}_{t+1}=\alpha y_t+(1-\alpha) \hat{y}_t y^t+1=αyt+(1α)y^t
其中 α \alpha α 是平滑参数。

👉更新:亚图跨际


http://www.kler.cn/news/334725.html

相关文章:

  • (C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
  • Linux进程调度和进程切换
  • leetcode面试题17.04:消失的数字(C语言版)
  • 【系统架构设计师】专题:系统分析和设计
  • 乌班图基础设施安装之Mysql8.0+Redis6.X安装
  • 【STM32开发之寄存器版】(三)-详解NVIC中断
  • 论文阅读:InternVL v1.5| How Far Are We to GPT-4V? 通过开源模型缩小与商业多模式模型的差距
  • SpringBoot在线教育平台:设计与实现的深度解析
  • Unity 快速定位到目标文件夹
  • [运维]3.containerd无法使用fluentd的问题
  • 简历投递经验01
  • 分布式锁--redission 最佳实践!
  • 17岁孩子开发AI应用,4个月入百万,人人都是AI产品经理的时代快来了
  • 助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
  • ThinkPHP和PHP的区别
  • 来自德国的义齿雕刻机电主轴SycoTec 4033
  • 阿里巴巴开源的FastJson 1反序列化漏洞复现攻击保姆级教程
  • Word办公自动化的一些方法
  • 【分页】Spring Boot 列表分页 + javaScript前台展示
  • 物联网智能设备:未来生活的变革者