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

111 篇文章 5 订阅
39 篇文章 0 订阅

🎯要点

  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 α 是平滑参数。

👉更新:亚图跨际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值