没有合适的资源?快使用搜索试试~ 我知道了~
软件X 16(2021)100809原始软件出版物tsrobprep-一个用于时间序列数据鲁棒预处理的R包Michaeli Naraiski,Jens Kley-Holsteg,Florian Ziel德国杜伊斯堡-埃森大学ar t i cl e i nf o文章历史记录:收到2020年收到修订版,2021年7月13日接受,2021年保留字:数据清理缺失值离群值异常检测时间序列稳健的预处理能源系统数据a b st ra ct数据清理是每个数据分析练习的关键部分然而,目前可用的R包不提供快速和强大的方法来清理和准备时间序列数据。开源软件包tsrobprep介绍了使用基于模型的方法处理缺失值和离群值的有效方法对于数据填补,提出了一种概率替换模型,它可以由自回归分量和外部输入。对于离群值检测的聚类算法的基础上,有限的混合建模,它认为时间序列的梯度和基本的季节性作为特征。该过程允许返回每个观测值为离群数据的概率以及根据所提供的特征空间进行离群值分配的特定原因这些方法工作稳健,并且完全可调。此外,通过提供auto_data_cleaning函数,可以一次性执行数据预处理,而无需全面调优并提供合适的结果。该软件包的主要目的是对能源系统数据进行预处理我们目前的应用程序的电力负荷,风能和太阳能发电数据。版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.3.1用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_123法律代码许可证MIT许可证(MIT)使用git的代码版本控制系统软件代码语言、工具和服务使用R编译要求、操作环境依赖性R(≥3.2.0)如果可用,链接到开发人员文档/手册https://cran.r-project.org/web/packages/tsrobprep/tsrobprep.pdf支持电子邮件问题michal. uni-due.de软件元数据当前软件版本0.3.1此版本可执行文件的永久链接https://cran.r-project.org/web/packages/tsrobprep法律软件许可证MIT许可证(MIT)计算平台/操作系统Linux,OS X,Microsoft Windows安装要求依赖性R(≥3.2.0)如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://cran.r-project.org/web/packages/tsrobprep/tsrobprep.pdf支持电子邮件问题michal. uni-due.de*通讯作者。电子邮件地址:michal. uni-due.de(Michaelnaraubiski).https://doi.org/10.1016/j.softx.2021.1008091. 介绍实时测量、记录和处理的高频数据越来越多,2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxMichaeli Naraibski、Jens Kley-Holsteg和Florian Ziel软件X 16(2021)1008092LLL=LI{−}==L=+∏∑目标值(Y)=+∑k=1旨在代表离群数据。该分量是通过人为增加∑日常业务中的数据分析。然而,由于数据通常由传感器和实际测量站测量,测量和传输故障不可避免,因此需要进行数据预处理。聚焦于能源系统,两个方面是至关重要的,首先,积累的数据往往是立即处理,因此需要快速和自动的算法。其次,数据通常是未标记的,使得检测需要纯数据驱动的方法。因此,数据清理和预处理需要自动的、鲁棒的并且主要是数据驱动的过程,该过程易于实时调整和应用,以提供用于能量系统的安全操作的经验证的数据。在文献中,有几个R包,它们负责数据清理和准备的任务。一方面,有几个专门设计用于处理缺失值的包[1]。在这里,软件包主要集中在多变量数据中的数据插补,如Amelia [2],mice [3]和VIM [4]中所做的那样,或者通过采用时间依赖性来进行单变量数据,如插补TS [5],zoo [6]和预测[7]中所做的那样。另一方面,有几个软件包是专门为处理外围数据而设计的。在这里,除了HDoutliers [8],mvoutlier [9]和tsoutliers [10]之外,还可以命名。然而,以稳健和有效的方式将时间序列数据的离群值检测和数据插补方法结合起来的软件包(例如,在预测[7]和单变量数据的插补[11]中实现的软件包)很少。所提出的包tsrobprep是专门处理时间序列数据中的异常值和缺失值,简单实用的方法。它提供了一个用于对缺失值进行建模的算法和一个用于检测离群值的算法作为核心功能。为了增强可用性,该包附带了三个额外的副函数,一个强大的分解算法,一个估算模型值的算法,以及一个包装器函数,用于立即应用前面的命名函数。缺失值建模的第一个核心功能基于两步方法,该方法允许处理自回归效应和给定的外部输入。离群值检测的第二个核心功能是基于有限(高斯)混合模型的基于特征的聚类方法。两个核心函数都提供了一个概率框架,使得对于数据填补,可以对整个分布进行建模,并且对于离群值检测,可以提供作为离群数据点的概率。软件包tsrobprep专注于健壮性、效率和可用性非常适合清理各种时间序列数据集,单变量和多变量设置,如[12]中所做的。该软件包在CRAN存储库中在线提供。本文件的结构如下。第2节描述了详细介绍了使用的方法,第3节介绍了可用性和数据预处理潜力。第4节将这些方法与文献中的竞争方法进行了比较。最后,第5节讨论了一揽子计划的影响,并结束了本文。2. 软件描述为了处理缺失值,model_missing_data提出了一个处理单变量和多变量的函数其中目标τ是期望值或τ分位数,Yt是要替换的缺失数据的时间序列余数,Xi,t是分解分量(包括外部回归量),以便在多变量框架中利用时间依赖性和属性间相关性。Ad-1是自回归的滞后集,并且是分解分量的集合。通过考虑正负滞后,过去的和即将到来的(如果有的话)值可以用于建模。默认情况下,滞后集合根据所提供的季节性向量S(S1,. . . ,SK)和输入的时间序列数据。准确地说,包含了所有的滞后,除了那些涉及多个季节参数和它们的负值的多季节AR(p1,p,. . . ,p),其中季节性S和p取决于数据大小。 例如,对于S(24,168)和p1,这是1, 2, 24, 25,168, 169, 1, 2, 24, 25, 168, 169。如果用户提供外部输入的矩阵,则算法允许根据外部和解释数据之间的线性相关性,通过用户可调阈值选择最合适的输入。不仅利用属性间的信息和自回归效应,还可以利用外部的滞后进行建模。如果目标是预期值,则可以应用在glmnet包[13]中的函数glmnet中实现的加权套索。否则,可以应用quantreg包[ 14 ]中的函数rq.fit.fnb中的快速Frisch-Newton算法实现的分位数回归此外,该算法默认使用递归替换,这在较大间隙的情况下提高了建模精度,但也可能导致误差累积,因此我们给用户关闭它的选项对 于 离 群 数 据 的 处 理 , 提 出 了 第 二 个 核 心 函 数detect_outliers来处理单变量数据。它需要清理时间序列数据,并返回检测到的离群值的位置,离群实例的概率,应用的特征矩阵以及离群值分配的具体原因。通过在包装器函数auto_data_cleaning中递归应用,也可以处理多变量数据集该算法可以被调整以控制鲁棒性、计算时间和检测灵敏度。通过利用为时间序列数据专门设计的特征,可以识别各种模式。作为特征,应用了梯度、绝对梯度、相对梯度、确定性海温趋势、季节梯度和绝对季节梯度。例如,绝对梯度跟踪关于最近邻居的双侧跳跃,然而,绝对季节梯度的工作方式相同,根据所提供的季节性S应用于最近邻居。 相对梯度又跟踪与局部季节方差相关的双侧跳跃,以解释低波动期的中等峰值。通过应用无监督学习方法,该过程非常适合处理未标记和非结构化数据。该方法基于有限混合模型的基于模型的聚类,如[15]所述假设特征空间的多变量分布是G个分量的混合,则混合模型的似然可以定义为:时间序列数据。 它需要清理时间序列数据nG作为参数,并返回要估算的建模缺失值。该函数使用基于模型的两步方法来替换缺失值。首先,将数据分解为趋势、季节和外部输入分量,以及它们之间的相互作用。这是使用包中提供的robust_decompose函数完成的然后,在剩余部分上,我们使用以下回归∑τ不β0,τβp,τθ1,. . . ,θG|y)=πkfk(y|θk),(2)i=1k= 1其中y是观测向量y1,. . .,yn,f k是密度(假设为多元正态(高斯)),θk是混合中第k个分量的参数,πk是观测属于第k个分量的概率。注意Gπk=1。在混合物中,p∈Li∈IY+X +=X+(一t−pβi,τi,tεtβτ不 εt,Michaeli Naraibski、Jens Kley-Holsteg和Florian Ziel软件X 16(2021)1008093=--∈=·=通过放大混合物的协方差矩阵来获得数据集。为了将数据建模为具有不同协方差结构和混合分量数量的高斯有限混合,应用了merging包[16]中的Merging函数。对于估计,为了加快该方法的计算时间和鲁棒性,在不同的数据子集上重复进行估计为了提供离群值分配的具体原因,已被识别为离群数据点的每个观测值分别被移位到相应的特征和然后,重新计算离群数据的概率,允许命名导致离群值分配的特定特征或特征组合。辅助函数impute_modelled_data简化了软件包的使用。它接受一个tsrobprep对象作为参数,即由model_missing_data函数返回的对象,为给定的分位数τ估算替换值并返回矩阵列表(列表中的每个元素对应于每个分位数)。auto_data_cleaning函数结合了上面描述的所有功能。首先,它用中值预测替换缺失值(如果有的话)。由于离群值检测算法不允许缺失值,因此需要执行此步骤。其次,检测不可靠的离群值,以便在第三步中,对检测到的离群值和初始建模的缺失值进行建模并在一个模型中进行插补。初始建模缺失值的重复建模是合理的,因为潜在离群值可能对首次运行的建模过程产生负面影响。该功能的工作流程如图所示。1.一、3. 说明性实例我们通过使用三个时间序列数据集的核心功能来展示该软件包的潜力:英国的电力负荷,德国的太阳能发电(TransnetBW控制区)和意大利的风力陆上发电(撒丁岛控制区)。所有这些数据集的日期范围为2015年1月1日至2020年6月30日。第一个时间序列是半小时的,即每天包含48个值,第二个是四分之一小时的,即每天包含96个值,第三个是每小时,即每天包含24个值使用的数据可在ENTSOE透明度平台上免费获得[17]。所考虑的时间序列随时间绘制在图中。二、我们可以清楚地看到,英国的电力负荷时间序列显示出许多很可能不可靠的异常值其他数据集似乎不包含这样的值,至少初步看来是这样。所有数据集均包含缺失值,由于数据的高频率,在图2为了更好地说明,每个系列的子集包含缺失值,异常值或两者都在图中描绘。3.第三章。英国电力负荷的时间序列既有缺失值,也有不可靠的异常值。后者很容易通过目测发现-它们是图中可见的两个负尖峰。然而,德国太阳能发电的时间序列包含不可靠的异常值,很难检测到。也就是说,2015年2月7日的所有观测值都被设置为零,即使在多云的日子里也是不可能的。这些异常值尤其具有第三个例子是意大利的陆上风力发电,在2017年11月9日的数据中没有不可靠的值,但存在明显的差距。命名序列的清理是通过auto_data_cleaning函数完成的。第一个时间序列,电力负荷在英国,第三个时间序列,风力发电在意大利,在一个单变量设置,没有外部输入与S(48,7 - 48)和S24,分别处理。 为了解释图1所示的白天不可靠的零。 3仅当全天都是零时,才使用consider.as.missings参数将零识别为缺失值。第二个系列,德国的太阳能发电,已处理与S96在一个多变量设置,使外部回归如图所示。 4个用于数据建模和插补。此外,我们将whole.period.missing.only参数设置为TRUE,以便仅当全天为零时才将零视为缺失,并且我们将replace.recursively设置为NULL,以避免在夜间累积错误。 所有其他参数都设置为默认值。估计模型的分位数τ0。025,0。05,0。25,0。五,零。75,0。95,0。九百七十五。图3中提供的结果非常有希望。这占特别是对于第一组数据,其中只使用了自回归效应。可以看出,异常值被平滑地替换,即,不仅异常值本身被替换,而且它们的直接邻居也被替换。另外两个数据集的清理也令人满意,数值似乎是合理的。虽然该算法运行良好且稳健,但必须注意的是,异常的具体原因(例如技术故障,真正的行为问题或自然现象)并不总是清晰可区分和可检测的。 这种情况的一个例子是在图。五、在这里,该算法能够检测异常负尖峰。然而,由于这个尖峰对应于日偏食的事实通过提供外部输入,即在其他德国控制区中生成,该算法能够通过输入非常相似的值来纠正这种错误分类。然而,在这方面,图1.一、 自动数据清理功能的工作流程。Michaeli Naraibski、Jens Kley-Holsteg和Florian Ziel软件X 16(2021)1008094图二、 包含缺失值和不可靠离群值的三个示例性数据集。图三. 数据的选定部分,说明替换缺失值和不可靠离群值的问题。红线表示95%置信区间,橙色90%,绿色50%,蓝色表示中位数。(For关于本图图例中颜色的解释,读者可参考本图图例的网络版本。(见文章)这个例子告诉我们,即使提供的包-年龄工作稳健,建议由人类监督,特别是在处理离群值和极端值时。4. 针对竞争对手的为了验证拟议方案的潜力,将其功能与文学在插补研究中评估model_missing_data的性能。在这里,英国的电力负荷范围为2019年1月1日至2019年12月31日采用了若要允许性能评估,通过用缺失的条目替换现有值来操纵。观察结果在连续块中删除。假设值随机缺失(MAR),缺少的观测取决于观测是否更接近Michaeli Naraibski、Jens Kley-Holsteg和Florian Ziel软件X 16(2021)1008095==图四、在我们的练习中,德国剩余控制区的太阳能发电量用作外部回归量。图五. 德国太阳能发电量的下降似乎是不可靠的,而这是由自然现象造成的,即日偏食。红线表示95%置信区间,橙色表示90%,绿色表示50%,蓝色表示中位数。(For对于图中颜色的解释,请读者参考本文的网络版本在时间上也不见了。该采样方法通过以µ 12和σ 6为参数的对数正态分布实现。 为了解释不同数量的缺失值,考虑0.01、0.05、0.1、0.2和0.5缺失值的份额。每个模拟重复20次,以进行稳健的评估。由于文献中的大多数方法仅限于单变量时间序列数据,因此插补研究在单变量设置中实施。作为竞争者,应用了imputeFin包[11]的impute_AR1_t函数,zoo包[ 6 ]的na.StructTS,na.locf和na.aggregate函数,imputeTS包[ 5 ]的na_ma,na.kalman和na_interpolation函数,prophet包[18]的prophet函数以及Pandek包[ 19 ]的ts_impute_vec。所有方法都提供了默认设置,并根据包和函数名称命名。使用平均绝对误差(MAE)和计算时间(Intel Core i5- 8250 U CPU1.80 GHz上的单核)作为评估指标。结果示于表1中。 可以看出,在MAE方面,所提出的函数model_missing_data支配每个模拟的所有考虑的基准。 就计算时间而言,与基准测试相比,model_missing_data函数的性能适中。关 注 第 二 个 核 心 函 数 detect_outliers 和 包 装 器 函 数auto_data_cleaning,置信度评估并不直接,因为离群值的定义无 法 以 通 常 有 效 的 方 式 轻 松 缩 小 。 因 此 , 通 过 将auto_data_cleaning函数返回的清理数据集与来自文献的两个基准程序的结果,即预测包的tsclean函数[7]和imputeFin包的impute_AR1_t函数[11]。作为数据集,使用了2018年1月1日至2019年12月31日期间英国的电力负荷,没有任何操纵图中显示了两个例子。 六、 可以观察到,所提出的过程auto_data_cleaning检测到数据中的所有三种异常。图左侧的异常情况显然是技术故障,图右侧的异常数据至少是有问题的。 通过考虑图的下部图。 6,显示detect_outliers函数的特 征 空 间 。垂直线表示每个观测值为离群数据的概率。结果见表1和图2。 6是有前途的,并强调适用性,特别是能源系统的数据。5. 影响和结论到目前为止,用于时间序列数据预处理的R软件包tsrobprep包的引入填补了这一空白,提供了一个强大而有效的方法来替换缺失 值 和 处 理 不 可 靠 的 离 群 值 。 此 外 , 通 过 提 供 函 数auto_data_cleaning,该软件包简单实用,并提供了令人满意的默认参数设置。更高级的用户可以利用大量的调优参数来进一步调整功能以满足他们的需求。表1不同缺失值份额的插补研究结果,以MW表示的MAE(和以秒表示的计算时间)。 颜色表示列的性能(越绿越好)。我们用粗体表示每列中的最佳值0.010.050.10.20.5tsrobprep::model_missing_data六二三(四点六三四)603(8.907)631(14.837)657(23.302)828(43.821)imputeTS::na_seadec.插值926(0.062)849(0.063)880(0.063)932(0.06)1317(0.06)先知::先知1822(58.115)1779(61.191)1849(56.287)1828(53.033)1809(61.058)imputeTS::na_kalman.auto.arimaimputeTS::na_interpolation.stine小行星1887(33.148)2242(0.005)2112(27.029)2542(0.006)2451(18.33)2720(0.006)2488(11.76)2828(0.006)3235(9.526)小行星3574(0.006)数据库::ts_impute_vec2749(1.525)3016(1.567)3209(1.492)小行星3323(1.397)4003(1.589)imputeTS::na_ma.exponential3263(0.002)3460(0.005)3653(0.01)3721(0.02)4357(0.058)imputeFin::impute_AR1_t3417(13.768)3730(16.703)小行星3838(19.709)4000(19.611)4658(27.522)动物园::不适用于罗克夫4881(0.001)5285(0.001)5268(0.003)5537(0.001)6000(0.002)动物园::不适用。总计。中位数5758(0.002)5968(0.002)6163(0.006)6120(0.002)6119(0.004)Michaeli Naraibski、Jens Kley-Holsteg和Florian Ziel软件X 16(2021)1008096见图6。 建议的功能与竞争对手在英国的电力负荷文献的示例性比较。上面的图显示了清洁后的所考虑的方法的数据,下面的图是用于detect_outliers函数的离群值检测的特征空间。彩色垂直线表示一个特定的观察结果是离群数据的概率,范围从暗红色(高概率)到黄色(低概率)。低于0.001的概率不着色。(有关本图例中颜色的解释,请参阅本文的网络版本该软件已经用于学术研究[12]和发电厂发电领域的工业项目。此外,该软件是以这样一种方式编写的,它可以在日常生活中使用,没有努力。该软件包是开源的,可在CRAN存储库中在线获取,有良好的文档记录并不断开发。所给出的例子表明,该软件包可能是一个强大的工具,在各种时间序列数据预处理练习。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认本文由德国研究基金会(DFG,德国)和国家科学中心(NCN,波兰)通过BEETHOVEN资助号2016/23/G/HS 4/ 01005提供部分支持。此外,我们感谢杜伊斯堡-埃森大学开放获取出版基金引用[1] Moritz S,Sardá A,Bartz-Beielstein T,Zaefferer M,Stork J. Comparisonof different methods for unvariable time series imputation in r. 2015 年 ,arXiv:1510.03924。[2] 作者:J. J. Amelia II:一个缺失数据的程序。J Stat Softw 2011;45(7):1http://www.jstatsoft.org/v45/i07/[3] 作者:John S.小鼠:通过r中的链式方程进行多元插补。J Stat Softw 2011;45(3):1 https://www.jstatsoft. org/v45/i03/.[4] Kowarik A,Templ M.使用R包VIM进行插补。J Stat Softw 2016;74(7):1-16. http://dx.doi.org/10.18637/jss.v074.i07网站。[5] 作者:Moritz S,Bartz-Beielstein T. imputeTS:R中的时间序列缺失值填补。R J 2017;9(1):207-18。http://dx.doi.org/10.32614/RJ-2017-009章.[6] Zeileis A,Grothendieck G. zoo:用于规则和不规则时间序列的S3基础设施。统计软件杂志2005;14(6):1-27. http://dx.doi.org/10.18637/jss的网站。v014.i06。[7]Hyndman RJ , Khandakar Y. 自 动 时 间 序 列 预 测 : R. J Stat Softw 2008;26(3):1http://www.jstatsoft.org/[8]弗 拉 利 角 HDoutliers : Leland Wilkinson's Algorithm for DetectingMultidimensionalOutliers,rpackageversion1.0.3.2020年,https://CRAN.R-project。org/package=HDoutliers。[9]作者:John M. mvoutlier:Multivariate Outlier Detection Based on RobustMethods,rpackageversion2.0.9.2018年,https://CRAN.R-project.org/package=mvoutlier。[10]de Lacalle JL. tsoutliers:检测时间序列中的异常值,r package version 0.6-8.2019年,https://CRAN.R-project.org/package=tsoutliers。[11]Liu J,Palomar DP. imputeFin:缺失值的金融时间序列的插补,r软件包版本0.1.2。2021年,https://CRAN.R-project.org/package=imputeFin。[12] Narauburski M,Ziel F.对日内电价的包围预测:模拟轨迹。应用能源2020;279:115801。 http://dx.doi.org/10。1016/j.apenergy.2020.115801。[13]作者:Friedman J,Hastie T,Tibshirani R.广义线性模型通过坐标下降的正则化路径。J Stat Softw 2010;33(1):1//www.jstatsoft.org/v33/i01/网站。[14]肯 克 河 quantreg : Quantile Regression , r package version 5.61. 2020 年 ,https://CRAN.R-project.org/package=quantreg。[15]Fraley C,Raftery AE。基于模型的聚类,判别分析密度估计。美国统计学会杂 志 2002;97 ( 458 ) : 611-31 。 http://dx.doi.org/10 的 网 站 。1198/016214502760047131。[16]Scrucca L,Fop M,Murphy TB,Raftery AE.图5:使用高斯有限混合模型进行 聚 类 、 分 类 和 密 度 估 计 。 RJ 2016;8 ( 1 ) : 289-317 。http://dx.doi.org/10.32614/RJ-2016-021网站。[17]恩索。ENTSOE透明度; 2020年。https://transparency.entsoe.eu/网站。[2020-09-30].[18]Taylor S , Letham B. prophet: 自 动 预 测 程 序 , r包 版 本 0.6.1 。 2020 年 ,https://CRAN.R-project.org/package=prophet。[19]放大图片作者:Dancho M.时间序列分析工具包在R中,r包版本2.6.1。2021年,https://CRAN.R-project.org/package=。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功