R语言中的prophet预测时间序列数据模型

如题所述

第1个回答  2024-08-15
本文以魁北克数据为基础,对R语言中的prophet预测时间序列数据模型进行了研究。研究分为13年训练和1年测试,将prophet与基本线性模型(lm)、一般加性模型(gam)和随机森林(randomForest)进行了比较。

研究开始前,首先设置了相关选项,加载了必要的库,并更改了工作目录。接着,读取了魁北克的出生文件,建立了data.table,并创建了培训和测试data.tables。其中,使用前13年的每日数据进行培训,第14年进行测试。

为了评估预测模型的性能,定义了两个小函数来计算均方根误差(rmse)和平均绝对百分比误差(mape),越低越好。随后,开始拟合基本的lm线性模型,并计算了rmse和mape。接着,运行了一个星期几的每日出生率模型,以捕捉一周内的季节性,性能指标显示该模型比第一个模型好。

第三个模型基于月创建了一个因子来处理每月的季节,这种季节性似乎不像一周中的一天那么强烈。最后,运行了一个包含上述三个变量的lm模型,预测的rmse和mape较低。

随后,使用gam程序包运行了一个3变量通用加性模型,发现训练和测试的rmse和mape与最终的lm模型相当。接着,使用相似的趋势和季节性属性拟合了randomForest ML模型,发现火车和测试性能之间的差异较大,表明火车数据过拟合。

最后,将数据划分为训练并进行测试以适合先知并拟合其模型。在这一点上,观察了上面安装的各种lm模型的预测,包括趋势、星期几和月份。接下来,绘制了模型的组成部分,与上图非常相似,使用的是一年中的日期而不是月份。

最后,使用测试数据比较了3属性lm模型、gam模型、先知模型和随机森林模型。在每个面板中,灰色表示实际值,而颜色表示模型预测。结果显示,lm、gam和先知的表现相似,而随机森林滞后。利用这些特定的数据,先知、lm和gam模型的测试预测非常相似,并且优于randomForest。
相似回答
大家正在搜