md_files/科研/小论文.md

231 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小论文
1.背景意义这边需要改。
2.卡尔曼滤波这边Q、R不明确 / 真实若干时刻的测量值可以是真实值;但后面在线预测的时候仍然传的是真实值,事实上无法获取=》 考虑用三次指数平滑,对精确重构出来的矩阵谱分解,得到的特征值作为'真实值',代入指数平滑算法中进行在线更新,执行单步计算。
4.这块有问题没提高秩性没说除了ER模型外的移动模型如RWP
![image-20250625093043478](https://pic.bitday.top/i/2025/06/25/fdxs6a-0.png)
## 指数平滑法
**指数平滑法Single Exponential Smoothing**
指数平滑法是一种对时间序列进行平滑和短期预测的简单方法。它假设近期的数据比更久之前的数据具有更大权重,并用一个平滑常数 $\alpha$$0<\alpha\leq1$来控制记忆长度
- **平滑方程**
$$
S_t = \alpha\,x_t + (1-\alpha)\,S_{t-1}
$$
- $x_t$时刻 $t$ 的实际值
- $S_t$时刻 $t$ 的平滑值也可作为对 $x_{t+1}$ 的预测
- $S_1$ 的初始值一般取 $x_1$
- **举例**
假设一产品过去 5 期的销量为 $[100,\;105,\;102,\;108,\;110]$ $\alpha=0.3$,初始平滑值取 $S_1=x_1=100$
1. $S_2=0.3\times105+0.7\times100=101.5$
2. $S_3=0.3\times102+0.7\times101.5=101.65$
3. $S_4=0.3\times108+0.7\times101.65\approx103.755$
4. $S_5=0.3\times110+0.7\times103.755\approx106.379$
因此对第 6 期销量的预测就是 $S_5\approx106.38$。
**二次指数平滑法Holts Linear Method**
当序列存在趋势Trend单次平滑会落后二次指数平滑也称 Holt 线性方法在单次平滑的基础上额外对趋势项做平滑
- **水平和趋势平滑方程**
$$
\begin{cases}
L_t = \alpha\,x_t + (1-\alpha)(L_{t-1}+T_{t-1}), \\[6pt]
T_t = \beta\,(L_t - L_{t-1}) + (1-\beta)\,T_{t-1},
\end{cases}
$$
- $L_t$水平level
- $T_t$趋势trend
- $\alpha, \beta$平滑常数通常 $0.1$$0.3$
- **预测公式**
$$
\hat{x}_{t+m} = L_t + m\,T_t
$$
其中 $m$ 为预测步数
- **举例**
用同样的数据 $[100,105,102,108,110]$ $\alpha=0.3,\;\beta=0.2$,初始化:
- $L_1 = x_1 = 100$
- $T_1 = x_2 - x_1 = 5$
接下来计算
1. $t=2$
$$
L_2=0.3\times105+0.7\times(100+5)=0.3\times105+0.7\times105=105
$$
$$
T_2=0.2\times(105-100)+0.8\times5=0.2\times5+4=5
$$
2. $t=3$
$$
L_3=0.3\times102+0.7\times(105+5)=0.3\times102+0.7\times110=106.4
$$
$$
T_3=0.2\times(106.4-105)+0.8\times5=0.2\times1.4+4=4.28
$$
3. $t=4$
$$
L_4=0.3\times108+0.7\times(106.4+4.28)\approx0.3\times108+0.7\times110.68\approx110.276
$$
$$
T_4=0.2\times(110.276-106.4)+0.8\times4.28\approx0.2\times3.876+3.424\approx4.199
$$
4. $t=5$
$$
L_5=0.3\times110+0.7\times(110.276+4.199)\approx0.3\times110+0.7\times114.475\approx112.133
$$
$$
T_5=0.2\times(112.133-110.276)+0.8\times4.199\approx0.2\times1.857+3.359\approx3.731
$$
**预测第 6 期** ($m=1$)
$$
\hat{x}_6 = L_5 + 1\times T_5 \approx 112.133 + 3.731 = 115.864
$$
---
**小结**
- 单次指数平滑适用于无明显趋势的序列简单易用
- 二次指数平滑Holt 方法在水平外加趋势成分适合带线性趋势的数据并可向未来多步预测
通过选择合适的平滑参数 $\alpha,\beta$ 并对初值进行合理设定即可在实践中获得较好的短期预测效果
**三次指数平滑法概述**
三次指数平滑法在二次Holt方法的基础上又加入了对季节成分的平滑适用于同时存在趋势Trend和季节性Seasonality的时间序列
**主要参数及符号**
- $m$季节周期长度例如季度数据 $m=4$,月度数据 $m=12$)。
- $\alpha, \beta, \gamma$水平趋势季节三项的平滑系数均在 $(0,1]$ 之间
- $x_t$时刻 $t$ 的实际值
- $L_t$时刻 $t$ 的水平level平滑值
- $B_t$时刻 $t$ 的趋势trend平滑值
- $S_t$时刻 $t$ 的季节seasonal成分平滑值
- $\hat x_{t+h}$时刻 $t+h$ $h$ 步预测值
**平滑与预测公式(加法模型)**
$$
\begin{aligned}
L_t &= \alpha\,(x_t - S_{t-m}) + (1-\alpha)\,(L_{t-1}+B_{t-1}),\\
B_t &= \beta\,(L_t - L_{t-1}) + (1-\beta)\,B_{t-1},\\
S_t &= \gamma\,(x_t - L_t) + (1-\gamma)\,S_{t-m},\\
\hat x_{t+h} &= L_t + h\,B_t + S_{t-m+h_m},\quad\text{其中 }h_m=((h-1)\bmod m)+1.
\end{aligned}
$$
- **加法模型** 适用于季节波动幅度与水平无关的情况
- **乘法模型** 则把"$x_t - S_{t-m}$"改为"$x_t / S_{t-m}$"、"$S_t$"改为"$\gamma\,(x_t/L_t)+(1-\gamma)\,S_{t-m}$"并在预测中用乘法
---
**计算示例**
假设我们有一个周期为 $m=4$ 的序列 8 期观测值
$$
x = [110,\;130,\;150,\;95,\;120,\;140,\;160,\;100].
$$
取参数 $\alpha=0.5,\;\beta=0.3,\;\gamma=0.2$。
初始值按常见做法设定为
- $L_0 = \frac{1}{m}\sum_{i=1}^m x_i = \tfrac{110+130+150+95}{4}=121.25$.
- 趋势初值
$$
B_0 = \frac{1}{m^2}\sum_{i=1}^m (x_{m+i}-x_i)
= \frac{(120-110)+(140-130)+(160-150)+(100-95)}{4\cdot4}
= \frac{35}{16} \approx 2.1875.
$$
- 季节初值 $S_i = x_i - L_0$
$[-11.25,\;8.75,\;28.75,\;-26.25]$ 对应 $i=1,2,3,4$。
下面我们演示第 5 $t=5$)的更新与对第 6 期的预测
| $t$ | $x_t$ | 计算细节 | 结果 |
| -------------- | ----- | ---------------------------------------------------- | ----------------- |
| | | **已知初值** | |
| 0 | | $L_0=121.25,\;B_0=2.1875$ | |
| 14 | | $S_{1\ldots4}=[-11.25,\,8.75,\,28.75,\,-26.25]$ | |
| **5** | 120 | $L_5=0.5(120-(-11.25)) +0.5(121.25+2.1875)$ | $\approx127.3438$ |
| | | $B_5=0.3(127.3438-121.25)+0.7\cdot2.1875$ | $\approx3.3594$ |
| | | $S_5=0.2(120-127.3438)+0.8\cdot(-11.25)$ | $\approx-10.4688$ |
| **预测** $h=1$ | | $\hat x_6 = L_5 + 1\cdot B_5 + S_{6-4}\;(=S_2=8.75)$ | $\approx139.45$ |
**解读:**
1. 5 剔除上周期季节影响后平滑得到新的水平 $L_5$
2. 由水平变化量给出趋势 $B_5$
3. 更新第 5 期的季节因子 $S_5$
4. 6 的一步预测综合了最新水平趋势和对应的季节因子 $\hat x_6\approx139.45$。
### 总结思考
- 如果你把预测值 $\hat x_{t+1}$ 当作"新观测"再去更新状态然后再预测 $\hat x_{t+2}$这种"预测更新预测"的迭代方式会让模型把自身的预测误差也当作输入不断放大误差
- 正确做法是——在时刻 $t$ 得到 $L_t,B_t,S_t$ 用上面的直接公式一次算出**所有未来** $\hat x_{t+1},\hat x_{t+2},\dots$这样并不会"反馈"误差也就没有累积放大的问题
或者根据精确重构出来的矩阵谱分解得到的特征值作为'真实值'进行在线更新执行单步计算