如何使用向量自回归 VAR 来预测多元数据

2023-11-17 12:05:02 字數 2655 閱讀 9152

在过去的几天里,我整理了一个数据集,该数据集涉及非营利组织中某个部门的培训状态,个人可以在其数据科学项目中使用该数据集。

我将这个数据集称为 analyse_training,它是一个多元数据集,可以在这里找到:

该数据集是一个多元时间序列数据集,具有三列数据,分别是:

month 列,表示收集数据的时间。

no_employees 列,表示该月该部门有多少员工。

training_deficicies 列,表示部门人员当月需要参加多少培训课程才能保持符合强制性培训要求。

开发过程使用的 vs code + jupyter 插件。我导入了执行所需的库。我导入的库是:

pandas:用于数据处理的,包括 dataframe 的创建和维护。

numpy:用于数值计算和创建 numpy 数组。

math:执行高级数学计算。

datetime:执行诸如时间戳数据之类的操作。

statsmodels:执行统计和时间序列操作。

tqdm notebook:提供了进程栏并对嵌套循环和 jupyter 笔记本提供了良好的支持。

itertools:用于迭代可以使用 for 循环逐步遍历的数据结构。

matplotlib:它将数据点绘制到图表上。

seaborn:更高级别的图形包。

导入库后,我使用 pandas 将数据集读入程序:

将日期作为索引列:

将数据调整为适合**的方式后,我就使用 matplotlib 将其绘制成图表:

然后,我使用 for 循环迭代两列数据来执行adf测试,该测试用于确定时间序列是否平稳。

如果时间序列不是平稳的,我会使用差分来尝试使其平稳。差分可以通过消除时间序列水平的变化来帮助稳定时间序列的平均值,从而消除(或减少)趋势和季节性:

然后我进行了格兰杰因果关系检验(granger causality test),这是一种统计假设检验,用于确定一个时间序列是否有助于**另一个时间序列,于 1969 年首次提出:

执行这两个测试后,我创建了一个新的dataframe,它包含两个选定的时间序列:

然后,我将数据集分为训练集和测试集,分别占数据集的 80% 和 20%:

当数据预处理后,我选择了模型。在本例中,我选择了 statsmodels 的向量自回归(var)。var 是一种统计模型,用于捕获多个数量随时间变化时之间的关系。var 是一种随机过程,是通常定义为一系列随机变量的数学对象。

var 的公式为:

然后我使用sorted_order函数来排序并选择滞后顺序。因为数据集很小,所以我只选择了 3 阶滞后。打印出摘要,第二行数据旁边的 “*显示 2 阶滞后时训练和拟合训练集的最合适数字:

然后我对训练集进行训练并将其加载到 var 模型中,并为其设置 2 阶滞后。然后,我打印出经过训练和拟合的数据的摘要,作为回归结果的摘要:

使用 var 模型训练和拟合训练数据后,我使用 k_ar 确定滞后,k_ar 是使用卡尔曼滤波器计算的值。卡尔曼滤波器(kalman filter)使用随时间观察的一系列测量值,并通过估计每个时间帧的变量的联合概率分布来生成对未知变量的估计,该估计往往比仅基于单个测量的估计更准确。

然后,我使用滞后作为计算的基础来**训练和拟合的数据:

执行**和其他计算后,我为**的每个特征创建一个dataframe,并将真实值与**值进行比较:

然后我将这两个**绘制在图表上:

最后检查了两个**的错误率,发现 no_employees 列的错误比 training_deficicies 列的错误要好得多:

总结一下,这是我第一次尝试对多元时间序列模型进行**。目前可以算是了解了 var 模型的大致用法,后续将研究其他多元时间序列数据集,以及其他模型。

如何使用 Ozon 度量工具?

ozon 度量工具是一个强大的分析工具,可帮助卖家了解其商品在平台上的表现。以下是如何使用 ozon 度量工具的详细指南 .度量设置。在 度量设置 模块中,点击 设置 选择或创建卖家需要的数据组合。ozon 提供了多个度量组,如 展示次数 商品加入购物车的次数 购物车转换率 销售数据 搜索结果排名和...

飞鸽电动自行车质量如何,使用者口碑调查报告揭晓!

飞鸽电动自行车质量怎么样?这是许多消费者关心的问题。飞鸽电动自行车作为市场上的一款知名品牌,在质量方面有着较好的口碑。其产品经过严格的生产工艺和质量控制,使用优质材料,确保车辆的稳定性和耐用性。此外,飞鸽电动自行车还经过多项安全测试,确保用户的骑行安全。因此,可以放心选择飞鸽电动自行车,享受绿色出行...

如何使用IP归属地查询API加强网络安全

在当今数字化时代,网络安全对于个人和组织来说至关重要。恶意网络活动的威胁不断增加,因此采取有效的措施来加强网络安全至关重要。其中之一是利用ip归属地查询api。这个工具可以为您的网络安全策略提供宝贵的信息,帮助您更好地保护自己的 资产。ip归属地查询api可以帮助您识别潜在的威胁。通过查询特定ip地...