# Python时间序列预测股票价格和空气质量（氮氧化合物浓度）

{% tabs %}
{% tab title="关键词" %}
Python | 时间序列 | 探索性数据分析(EDA) | 预测 | 空气质量 | 氮氧化合物浓度 | 自相全 | 季节性 | 平稳性 | 季节性自回归综合移动平均模型 (SARIMA) | NumPy | Pandas | seaborn | Matplotlib | scipy | scikit-learn | 指数平滑 | 特征
{% endtab %}

{% tab title="梗概" %}
### 时间序列

简述：自相关。季节性。平稳性。测试一个过程是否平稳。时间序列建模：移动平均值，指数平滑，双指数平滑，三次指数平滑，季节性自回归积分移动平均模型。

### 预测股票价格

简述：使用Python建立导入数据方式，导入数据集数据，Python清理数据，Python使用探索性数据分析方法分析数据获得趋势图。

Python移动平均模型平滑数据，获得5天内的时间窗口数据趋势图，依次进行，获得30天内时间窗口趋势图以及90天时间窗口趋势图。

Python使用指数平滑查看是否可以获得更好的趋势，使用双指数平滑获得的趋势图。

Python 使用统计学中的迪基-富勒检验，检查是否是平稳过程，获得其趋势图。依据趋势图，得出需要去除高自相关的平稳过程，采用差异化，得出新的趋势图。

Python 使用季节性自回归积分移动平均模型，处理后得出状态空间模型数据结果。

参考实际数据对比预测值。

```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

from sklearn.metrics import r2_score
from sklearn.metrics import median_absolute_error

from scipy.optimize import minimize
import statsmodels.tsa.api as smt
import statsmodels.api as sm

from tqdm import tqdm_notebook

from itertools import product

def mean_absolute_percentage_error(y_true, y_pred):
    return np.mean(np.abs((y_true - y_pred) / y_true)) * 100

import warnings
warnings.filterwarnings('ignore')

%matplotlib inline

DATAPATH = 'data/stock_prices_sample.csv'

data = pd.read_csv(DATAPATH, index_col=['DATE'], parse_dates=['DATE'])
data.head(10)
```

### 预测空气质量

简述：选择控制质量数据集，导入数据。数据清理和特征处理。Python 分析处理后的数据，数据格式转换成所需要的，绘制控制化学成分，显示氮氧化合物浓度趋势。Python 对氮氧化合物浓度建模。绘制预测结果趋势。

### 源代码

简述：本文两个预测示例代码。
{% endtab %}
{% endtabs %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
