如何用MATLAB对时间序列数据进行预处理
在本视频中,我们演示如何处理和清理存储在Excel表中的时间序列数据,以多种格式,MATLAB中的多个采样率®.我们从使用导入工具从Excel表格导入数据开始。接下来,我们关注如何准备数据以转换为时间表数据类型。
然后,我们探讨了时间表中可用的预处理功能,包括将数据集同步到一个公共时间参考,评估数据质量,以及处理重复和缺失的数据。最后,我们展示了具有行时间的变量的堆叠图。
简介
在数据科学中,人们总是说80%的时间花在准备数据上,20%的时间花在抱怨准备数据的必要性上。那么,让我们试着用更少的时间,用MATLAB中的几行代码来准备和预处理时间序列数据,来解决这个问题。
演示
对于本例,我们将使用相量测量单元(pmu)的数据
- 我们有15个pmu测量电压大小,电压角度,和同步到GPS时钟系统的频率
- 他们在澳大利亚的3个时区——东部夏令时时区、中央夏令时时区和东部标准时间
- pmu以30、60、120Hz三种不同的采样率进行采样
- 这发生在不同的时间偏移,因为pmu没有在同一时间开始记录
因此,是的,我们有需要对齐和清理的数据,以便进行进一步的分析。
我们的数据在三个Excel电子表格中,三个时区各有一个,我们将使用Import Tool导入数据。如果我们在MATLAB中打开电子表格,默认情况下,它会在导入工具中打开。单击导入数据。然后将数据作为表存储在工作区中。
为了处理时间序列数据和处理时间特定函数,MATLAB有一个数据类型时间表
这使得处理过程更容易。要把表格转换成时间表,我们的时间应该在datetime
格式。
方法将从每个表中提取时间列并将其转换为datetimedatetime
函数。在同一行代码中,我们正在处理我们数据集的第一个挑战;数据位于三个不同的时区,偏移量不同。因此,在同一步骤中,我们通过将时区作为选项来对齐时区:澳大利亚/悉尼为东部日光时间,澳大利亚/阿德莱德为中央日光时间,澳大利亚/布里斯班为东部标准时间。
让我们用每个PMU的时间绘制频率测量图,以直观地确认时间对齐。正如我们看到的频率重叠。因此,我们的时间对齐是正确的。
一旦我们的时间列是datetime格式并对齐,我们将使用函数将所有三个表转换为时间表table2timetable
.我们现在有了三张时间表格式的表格。
接下来,我们继续清理数据。正如我们在这个链接的MATLAB文档中看到的,我们可以使用各种工作流程处理和清理时间表,如查找和删除丢失的数据,排序和删除重复的数据等。
这里我们演示了一种处理重复时间的方法。首先,用唯一的函数创建一个向量UniqueTime
它返回时间变量的惟一和已排序的行。这个向量不包含重复的行时间。只是为了验证,我们在这里检查我们有七个重复的行霜。为了处理这个问题,我们使用调整时间
函数计算具有重复行次数的所有其他变量的平均值。因此,现在我们有一个新表UniquedataACDT,它没有重复的行时间。我们对其他两个表进行类似的处理。现在我们将使用这三个新表。
缺失的数据可以用不同的方式处理。对于单一的时间表,我们可以使用次rmi
函数并删除所有缺少数据的行。正如我们在这里对UniquedataACDT表所做的一样。
另一种方法是在连接表时使用插值。
方法将所有三个表连接成一个时间表同步
函数。Synchronize从所有输入时间表收集变量,并输出一个时间表,其中所有变量水平连接在一起。
这里我们指定联盟
在包含所有三个时间表的时间矢量上进行同步。和线性
用线性插值法填补缺失的时间表元素。
因此,现在我们有一个由所有三个干净的时间表组成的Total表。
一旦我们清理了所有数据,我们就可以通过绘制数据来进行一些可视化分析。
下面我们展示一个使用stackedplot
函数。Stackedplot
根据行时间绘制时间表的变量。我们将电压量级VM6、VM1和VM11与总合并表中的行时间进行对比。
请参阅描述以查看关于数据预处理的更多资源,并下载代码以在您的数据集上尝试它。
谢谢你!
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。