38. 农业生产指数建模分析#
38.1. 介绍#
本次挑战将尝试使用机器学习模型对农业生产指数进行建模分析,通过历史数据预测未来的农业生产指数。
38.2. 知识点#
数据预处理
数据重采样
Prophet 的使用
38.3. 挑战介绍#
本次挑战中,我们将熟悉 ARIMA 建模流程和方法。并根据实验的要求,得到模型合理的参数。
38.4. 挑战内容#
挑战提供了中国农业生产指数从 1952 年到 1988
年期间的数据,并汇总到文件
agriculture.csv
数据文件。下载链接:
wget -nc https://cdn.aibydoing.com/aibydoing/files/agriculture.csv
数据集由两列构成,前 5 行预览如下:
year | values | |
---|---|---|
0 | 1952 | 100.0 |
1 | 1953 | 101.6 |
2 | 1954 | 103.3 |
3 | 1955 | 111.5 |
4 | 1956 | 116.5 |
挑战要求针对该数据文件进行时间序列 ARIMA 建模,并确定
ARIMA(p,
d,
q)
较为合理的 3 个参数返回。
挑战开始之前,你需要先打开终端,执行以下步骤安装 statsmodels 库。
pip install statsmodels
38.5. 挑战要求#
-
需要将代码保存到
Code
文件夹中,并以production_index.py
命名。 -
需要补充下方
def arima()
中的代码。挑战最后需要返回 ARIMA 模型的p
,d
,q
参数返回。 -
建模时,无需划分测试数据而使用全部数据,并要求使用 AIC 求解方法。
-
测试时请使用
python
运行production_index.py
,避免出现无相应模块的情况。
38.6. 示例代码#
def arima():
### 补充代码 ###
return p, d, q
参考答案 Exercise 38.1
import pandas as pd
from statsmodels.tsa.stattools import arma_order_select_ic
def arima():
df = pd.read_csv("agriculture.csv", index_col=0)
diff = df.diff().dropna()
p, q = arma_order_select_ic(diff, ic='aic')['aic_min_order'] # AIC
d = 1
return p, d, q
○ 欢迎分享本文链接到你的社交账号、博客、论坛等。更多的外链会增加搜索引擎对本站收录的权重,从而让更多人看到这些内容。