数据分析-62-时间序列分析之上升下降平稳趋势分析
文章目录
- 1 趋势提取
-  - 1.1 简单移动平均SMA
- 1.2 线性回归
- 1.3 STL分解
- 1.4 指数移动平均EMA
- 1.5 整体对比
 
- 2 趋势判断
-  - 2.1 斜率法
- 2.2 首尾比较法
 
- 3 如何量化斜率约等于0
-  - 3.1 相对斜率法
- 3.2 归一化
- 3.3 t 检验【推荐】
 
时间序列的趋势分析,目标是从原始数据中提取长期变化趋势(如上升、下降、平稳),这是时间序列分析的核心任务之一。它可以帮助你理解数据的宏观走向,为预测、决策提供依据。
趋势(Trend)是时间序列在较长时间内表现出的持续上升、下降或平稳的方向性变化。
1 趋势提取
1.1 简单移动平均SMA
使用SMA、WMA、EMA 平滑噪声,突出趋势。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号 '-' 显示为方块的问题# 示例:带趋势的模拟数据
t = np.arange(100)
np.random.seed(42)
data = 0.5 * t + 20 + np.random.normal(0, 5, 100)  # 上升趋势 + 噪声
series = pd.Series(data, index=pd.date_range('2023-01-01', periods=100))# 提取趋势:使用 10 期 SMA
trend_sma = series.rolling(window=10, min_periods=1).mean()# 可视化
plt.figure(figsiz