【问题标题】:Remove outlier from multivariate time series in R [closed]从R中的多元时间序列中删除异常值[关闭]
【发布时间】:2020-03-21 21:23:54
【问题描述】:

我想清理R 中的多个时间序列异常值。我更愿意在tidyverse 之后执行此操作。我正在使用tsibbles

我知道 forecast 包中的 tsclean 函数适用于单变量时间序列。我知道feasts 包可以更轻松地处理多变量时间序列,但我不相信它已经适应了tsclean 函数。

我提供了一个尝试两种解决方案的示例:

  • Attempt 1 天真地将tsclean 函数应用于失败的tsibble

  • Attempt 2 试图利用tsclean 对单变量序列起作用,通过应用group_by_key() 函数来分别处理每个时间序列。它也失败了。

library(fable)
#> Loading required package: fabletools
library(tidyverse)

df <- structure(list(date = structure(c(
  11413, 11504, 11596, 11688,
  11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509,
  12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330,
  13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153,
  14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975,
  15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796,
  15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617,
  16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440,
  17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778,
  11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600,
  12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422,
  13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245,
  14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065,
  15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887,
  15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709,
  16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532,
  17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869,
  11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692,
  12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514,
  13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335,
  14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156,
  15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979,
  16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801,
  16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622,
  17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961,
  12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784,
  12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
  13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
  14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
  15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
  16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
  16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
  17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053,
  12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874,
  12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604, 13695,
  13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426, 14518,
  14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248, 15340,
  15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071, 16161,
  16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892, 16983,
  17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713, 17805,
  11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053, 12143,
  12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874, 12965,
  13057, 13149, 13239, 13330, 13422, 13514, 13604, 13695, 13787,
  13879, 13970, 14061, 14153, 14245, 14335, 14426, 14518, 14610,
  14700, 14791, 14883, 14975, 15065, 15156, 15248, 15340, 15431,
  15522, 15614, 15706, 15796, 15887, 15979, 16071, 16161, 16252,
  16344, 16436, 16526, 16617, 16709, 16801, 16892, 16983, 17075,
  17167, 17257, 17348, 17440, 17532, 17622, 17713, 17805, 11413,
  11504, 11596, 11688, 11778, 11869, 11961, 12053, 12143, 12234,
  12326, 12418, 12509, 12600, 12692, 12784, 12874, 12965, 13057,
  13149, 13239, 13330, 13422, 13514, 13604, 13695, 13787, 13879,
  13970, 14061, 14153, 14245, 14335, 14426, 14518, 14610, 14700,
  14791, 14883, 14975, 15065, 15156, 15248, 15340, 15431, 15522,
  15614, 15706, 15796, 15887, 15979, 16071, 16161, 16252, 16344,
  16436, 16526, 16617, 16709, 16801, 16892, 16983, 17075, 17167,
  17257, 17348, 17440, 17532, 17622, 17713, 17805, 11413, 11504,
  11596, 11688, 11778, 11869, 11961, 12053, 12143, 12234, 12326,
  12418, 12509, 12600, 12692, 12784, 12874, 12965, 13057, 13149,
  13239, 13330, 13422, 13514, 13604, 13695, 13787, 13879, 13970,
  14061, 14153, 14245, 14335, 14426, 14518, 14610, 14700, 14791,
  14883, 14975, 15065, 15156, 15248, 15340, 15431, 15522, 15614,
  15706, 15796, 15887, 15979, 16071, 16161, 16252, 16344, 16436,
  16526, 16617, 16709, 16801, 16892, 16983, 17075, 17167, 17257,
  17348, 17440, 17532, 17622, 17713, 17805, 11413, 11504, 11596,
  11688, 11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418,
  12509, 12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239,
  13330, 13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061,
  14153, 14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883,
  14975, 15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706,
  15796, 15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526,
  16617, 16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348,
  17440, 17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688,
  11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509,
  12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330,
  13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153,
  14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975,
  15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796,
  15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617,
  16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440,
  17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778,
  11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600,
  12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422,
  13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245,
  14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065,
  15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887,
  15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709,
  16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532,
  17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869,
  11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692,
  12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514,
  13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335,
  14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156,
  15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979,
  16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801,
  16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622,
  17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961,
  12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784,
  12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
  13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
  14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
  15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
  16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
  16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
  17805
), class = c("yearquarter", "Date")), Series = c(
  "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
  "10", "10", "10", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "101", "101", "101", "101", "101", "101", "101", "101",
  "101", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
  "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
  "1013", "1013", "1013", "1013", "1013", "1013", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "102", "102", "102",
  "102", "102", "102", "102", "102", "102", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
  "1021", "1021", "1021", "1021", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
  "1022", "1022", "1022", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
  "1023", "1023", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
  "1025", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
  "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
  "1029", "1029", "1029", "1029", "1029", "1029"
), value = c(
  0.4,
  0.6, 0.5, -0.1, 0.2, 0.8, 0.7, 0.1, 0.2, 0.4, 0.5, 0.1, 0.1,
  1, 0.9, 0.1, 0.6, 1.1, 0.6, 0.3, 0.4, 1.1, 1, -0.6, 0.8, 0.9,
  0.7, -0.5, 0.3, 0.5, 0.3, -1.9, 0.2, 0.4, 0.2, -1.3, 0.4, 0.6,
  0.6, -0.9, 0.6, 0.7, 0.6, -1.7, 2, -0.6, 0.5, -0.7, 0.8, 0.7,
  0.6, -0.1, 0.3, 0.7, 0.9, -0.6, 0.6, 1, 0.9, -0.5, 0.8, 0.9,
  0.7, -1.1, 1, 0.7, 0.8, -0.5, 0.8, 0.7, 1, 0.6, 0.6, 0.2, -0.9,
  0.3, 0.5, 0.2, -0.9, 0.3, -0.2, -0.2, 0, 0.5, 0.6, 0.5, -0.1,
  0.8, 0.8, 0.4, 0, 0.9, 0.7, 0.5, -0.6, 0.6, 0.5, -0.1, -0.8,
  0.1, -0.1, -0.6, -2.9, -0.7, -0.3, -1, -2.4, 0, -0.2, -0.4, -2.2,
  0, 0, -0.4, -1.2, 0, 0.2, 0.1, -1, 0.4, 0.7, 0.1, -0.4, 0.9,
  0.6, 0.4, -0.5, 0.6, 0.6, 0.4, -0.5, 0.8, 0.6, 0.4, -1.1, 1.2,
  0.7, 0.5, 0.2, 1, 0.7, 0.7, -0.1, 0.4, -0.1, -1.3, -0.3, 0.2,
  0, -1.5, -0.2, -0.4, -0.1, -1, -0.1, 0.5, 0.2, -0.6, 0.1, 0.6,
  0.2, -0.3, 0.3, 0.7, 0.5, -0.7, 0.4, 0.7, 0.5, -0.7, 0.3, 0.7,
  0.4, -1, 0.2, 0.5, 0, -0.9, 0.7, 0.8, 0.4, -0.7, 0.6, 0.8, 0.6,
  0.1, 0.5, 0.8, 0.6, -0.2, 0.7, 0.9, 0.6, 0.2, 0.6, 0.8, 0.6,
  -0.3, 0.3, 0.6, 0.1, -0.8, 0, 0.2, 0.2, -1.4, 0.4, 0.6, 0.3,
  -0.4, 0.7, 0.5, 0.5, 1.1, 1, 0.5, -0.3, 0.7, 0.9, 0.4, -0.6,
  0.8, 0, 0, 0.6, 1, 0.9, 0.8, 0.3, 1.3, 1.2, 0.7, 0.3, 1.4, 1,
  0.7, -0.6, 0.8, 0.6, -0.3, -1, 0, -0.3, -0.9, -3.8, -0.8, -0.4,
  -1.3, -2.9, -0.2, -0.4, -0.6, -2.8, -0.1, -0.1, -0.6, -1.6, -0.1,
  0.2, 0, -1.3, 0.5, 0.8, 0, -0.7, 1.2, 0.7, 0.4, -0.6, 0.8, 0.6,
  0.5, -0.6, 1.1, 0.8, 0.5, -1.4, 1.5, 0.8, 0.6, 0.4, 1.3, 0.8,
  0.9, -0.3, -0.1, -0.2, -1.9, -0.5, -0.2, -0.2, -1.2, -0.5, -0.5,
  -0.5, -1.1, -0.3, -0.1, -0.1, -1, -0.1, 0, -0.1, -0.5, 0, 0,
  0, -0.6, 0, 0.2, 0, -0.4, 0, -0.1, -0.2, -1.5, -0.5, -0.4, -0.4,
  -1.7, -0.1, -0.1, -0.1, -1.4, 0, 0, -0.2, -0.6, 0, 0.1, 0.1,
  -0.5, 0.2, 0.4, 0.1, 0.1, 0.4, 0.3, 0.3, -0.2, 0.3, 0.5, 0.3,
  -0.2, 0.5, 0.3, 0.2, -0.3, 0.7, 0.4, 0.3, 0.2, 0.3, 0.4, 0.5,
  0.4, 0.7, 0.6, 0.1, 0.2, 0.9, 0.8, 0.2, 0.2, 0.5, 0.7, 0.2, 0,
  1.1, 1, 0.2, 0.5, 1.1, 0.7, 0.3, 0.3, 1.1, 1.1, -0.6, 0.9, 1,
  0.8, -0.5, 0.4, 0.7, 0.4, -1.7, 0.4, 0.5, 0.4, -1.2, 0.5, 0.7,
  0.8, -0.7, 0.7, 0.8, 0.7, -1.8, 2.3, -0.7, 0.6, -0.7, 0.9, 0.7,
  0.7, 0, 0.2, 0.8, 1, -0.6, 0.6, 1.1, 1, -0.5, 0.8, 0.9, 0.8,
  -1.2, 0.9, 0.7, 0.8, -0.6, 0.7, 0.7, 1, 0.3, 0.3, 0.3, -0.5,
  0.2, 0.2, 0.3, -0.5, 0.2, -0.2, -0.2, -0.1, 0.2, 0.3, 0.2, -0.1,
  0.5, 0.3, 0.3, 0.1, 0.6, 0.4, 0.5, -0.1, 0.4, 0.4, 0.1, -0.3,
  0.1, 0, 0, -1.3, -0.4, 0, -0.3, -0.8, 0.3, 0.2, 0.3, -0.8, 0.3,
  0.3, 0, 0, 0.1, 0.3, 0.3, -0.2, 0.5, 0.3, 0.1, -0.3, 0.4, 0.2,
  0.3, -0.6, 0, 0.6, 0.1, -0.6, 0.4, 0.2, 0.1, -1, 0.6, 0.3, 0.1,
  -0.2, 0.3, 0.3, 0.5, 0.7, 0.6, 0.2, -1.3, -0.9, 0, -0.2, -1.9,
  -0.6, -0.6, -0.3, -0.9, -0.2, -0.1, 0.1, -1.1, 0.1, 0.4, 0.7,
  0, 0.4, 0.8, 0.4, -1.4, 0.5, 0.5, 0.6, -0.8, 0.8, 0.2, 1, -0.5,
  -0.5, -0.4, 0, -1.7, 0.6, 0.3, 0.3, -1.2, -0.4, 0.6, 0.4, -0.1,
  0.1, -0.1, 0, -0.3, 0.8, 0.8, 0.5, 1.1, 1.5, 1.1, 1.2, -2.9,
  1.5, 1.4, 1.4, -0.6, 1.1, 0.9, 1, -0.6, 2.1, 1.9, 0.8, 1.7, 1.5,
  1.7, 2, 0.3, 0.6, 0.7, 0.4, 0.4, 0.6, 0.9, 0.8, 0.7, 0.5, 0.8,
  1.2, 0.5, 0.7, 1, 1.1, 0.9, 1, 1.2, 1.2, 0.9, 0.9, 1, 0.4, 0.4,
  0.5, 0.2, -0.8, -0.3, -0.2, -0.3, -2, -0.4, -0.5, -0.4, -1.5,
  -0.1, -0.2, -0.1, -1.1, 0.1, 0.1, 0.3, -0.2, 0, 0.2, 0.6, -0.3,
  0.4, 0.4, 0.6, 0, 0.7, 0.5, 0.7, -0.4, 0.5, 0.7, 0.8, -0.3, 0.5,
  0.5, 0.7, -0.6, 0.8, 0.8, 0.9, 0.2, 0.7, 0.7, 1, 0.5, 1, 0.7,
  0.5, 0.6, 0.9, 0.7, 0.9, 0.4, 0.6, 0.6, 0.8, 0.5, 0.8, 0.7, 0.8,
  0.8, 0.8, 0.7, 1.5, 0.7, 0.8, 0.8, 0.8, 0.8, 1, 0.6, 0.7, 0.7,
  0.8, 0.7, 0.2, 0.6, 0.8, 0.6, 0.4, 0.9, 0.8, 0.7, 0.1, 0.6, 0.8,
  0.3, 0.5, 0.6, 0.8, 0.5, 50.5, 1.9, 1.9, 1.1, 0.1, -0.9, 0.9,
  0.8, 0.6, 0.7, 1.2, 1.3, 1.1, 0.9, 0.2, 1.9, 0.5, 0.8, 1.1, 0.7,
  0.9, 0.8, 0.7, 0.9, 0.7, 0.7, 0.6, 0, 0.8, 0.8, 0.6, 0.2, 0.9,
  0.5, 0.4, 0.3, 0.8, 0.7, 0.6, -0.2, 1, 0.7, 0.4, 0.3, 0.9, 0.7,
  0.7, -0.1, 1, 0.7, 0.3, -0.1, 0.6, 0.5, 0.4, -1, 0.4, 0.6, 0.1,
  -0.6, 0.9, 0.6, 0.5, -0.5, 0.8, 0.7, 0.3, 0.2, 0.6, 0.5, 0.5,
  -0.2, 0.5, 0.7, 0.3, -0.1, 0.9, 0.6, 0.4, -0.1, 0.5, 0.6, 0.7,
  -0.3, 0.9, 0.5, 0.7, -0.1, 1.4, 0.5, 0.5, 0.5, 0.8, 0.7, 0.7,
  0.9, 2.1, 1.9, 0.5, -0.7, 2.1, 2.1, 1.4, -0.9, 1.7, 1.4, -0.3,
  -1.4, 1.9, 1.7, -0.3, -1.1, 1.8, 1.5, 0, -1.3, 2, 1.8, -2.7,
  2, 2.2, 1.9, -2.7, 2, 2.3, 1.7, -2.7, 1.7, 2.2, 1.5, -2.8, 1.6,
  1.8, 1.8, -0.2, 1.5, 1.6, 1, -8, 11.4, -7.3, 0.4, -38.4, 0.4,
  0.6, 0.2, 0.1, 1.2, 0.9, 0.5, -0.4, 0.3, 0.9, 0.4, -0.6, 0.6,
  0.7, 0.4, -1.4, 1.3, 0.9, 0.4, -0.3, 0.8, 0.8, 0.5, -6.9, -8.7,
  -11.4, 1.9, 0.4, 3.4, 0.6, 1.6, 0.6, 5, 8.7, 3, -6.4, 15.2, 10.8,
  1.2, 2.1, 9.7, -3.7, -6.2, -7.1, 7.3, 4.9, -8.1, -0.4, 1.9, 8,
  3.6, -8.7, 1.8, -3, -13.2, 4.7, 0.8, 7.1, -5.3, -9.8, 3.8, 7.8,
  -4.7, 1.8, 2.3, 12.4, -14.8, 7.6, 7.9, 3.4, -13.2, 4.1, -4.1,
  10.3, -0.8, -12.1, 6.3, 13.9, -14.7, 5.1, 6.4, 11.2, -7.1, 5.1,
  17.1, 1.4, -15.4, -3.5, -4.8, 9.2, -34.6, 0.1, 3.1, 7.9
)), row.names = c(
  NA,
  -923L
), key = structure(list(Series = c(
  "10", "101", "1011",
  "1012", "1013", "102", "1021", "1022", "1023", "1025", "1026",
  "1027", "1029"
), .rows = list(
  1:71, 72:142, 143:213, 214:284,
  285:355, 356:426, 427:497, 498:568, 569:639, 640:710, 711:781,
  782:852, 853:923
)), row.names = c(NA, -13L), class = c(
  "tbl_df",
  "tbl", "data.frame"
), .drop = TRUE), index = structure("date", ordered = TRUE), index2 = "date", interval = structure(list(
  year = 0, quarter = 1, month = 0, week = 0, day = 0, hour = 0,
  minute = 0, second = 0, millisecond = 0, microsecond = 0,
  nanosecond = 0, unit = 0
), class = "interval"), class = c(
  "tbl_ts",
  "tbl_df", "tbl", "data.frame"
))

df
#> # A tsibble: 923 x 3 [1Q]
#> # Key:       Series [13]
#>       date Series value
#>      <qtr> <chr>  <dbl>
#>  1 2001 Q2 10       0.4
#>  2 2001 Q3 10       0.6
#>  3 2001 Q4 10       0.5
#>  4 2002 Q1 10      -0.1
#>  5 2002 Q2 10       0.2
#>  6 2002 Q3 10       0.8
#>  7 2002 Q4 10       0.7
#>  8 2003 Q1 10       0.1
#>  9 2003 Q2 10       0.2
#> 10 2003 Q3 10       0.4
#> # ... with 913 more rows

# Attempt 1
df %>% forecast::tsclean()
#> Registered S3 method overwritten by 'xts':
#>   method     from
#>   as.zoo.xts zoo
#> Registered S3 method overwritten by 'quantmod':
#>   method            from
#>   as.zoo.data.frame zoo
#> Registered S3 methods overwritten by 'forecast':
#>   method             from    
#>   fitted.fracdiff    fracdiff
#>   residuals.fracdiff fracdiff
#> Error in is.constant(xx): (list) object cannot be coerced to type 'double'

# Attempt 2
df %>% tsibble::group_by_key() %>% forecast::tsclean()
#> Error in is.constant(xx): (list) object cannot be coerced to type 'double'

reprex package (v0.3.0) 于 2019 年 11 月 26 日创建

写于StackEdit

【问题讨论】:

    标签: r time time-series tidyverse forecast


    【解决方案1】:

    这是我的解决方案,可以在各个方面进行改进以使其保持整洁

    这需要大量的手工修补:

    • 我将tsibble 转换为ts 对象并为ts 手动指定日期。这似乎效率低下。
    • 我手动指定列df_unclean[, 2:14] 以便应用tsclean
    library(fable)
    #> Loading required package: fabletools
    library(tidyverse)
    
    df <- structure(list(date = structure(c(
      11413, 11504, 11596, 11688,
      11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509,
      12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330,
      13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153,
      14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975,
      15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796,
      15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617,
      16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440,
      17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778,
      11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600,
      12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422,
      13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245,
      14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065,
      15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887,
      15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709,
      16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532,
      17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869,
      11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692,
      12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514,
      13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335,
      14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156,
      15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979,
      16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801,
      16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622,
      17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961,
      12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784,
      12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
      13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
      14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
      15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
      16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
      16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
      17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053,
      12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874,
      12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604, 13695,
      13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426, 14518,
      14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248, 15340,
      15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071, 16161,
      16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892, 16983,
      17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713, 17805,
      11413, 11504, 11596, 11688, 11778, 11869, 11961, 12053, 12143,
      12234, 12326, 12418, 12509, 12600, 12692, 12784, 12874, 12965,
      13057, 13149, 13239, 13330, 13422, 13514, 13604, 13695, 13787,
      13879, 13970, 14061, 14153, 14245, 14335, 14426, 14518, 14610,
      14700, 14791, 14883, 14975, 15065, 15156, 15248, 15340, 15431,
      15522, 15614, 15706, 15796, 15887, 15979, 16071, 16161, 16252,
      16344, 16436, 16526, 16617, 16709, 16801, 16892, 16983, 17075,
      17167, 17257, 17348, 17440, 17532, 17622, 17713, 17805, 11413,
      11504, 11596, 11688, 11778, 11869, 11961, 12053, 12143, 12234,
      12326, 12418, 12509, 12600, 12692, 12784, 12874, 12965, 13057,
      13149, 13239, 13330, 13422, 13514, 13604, 13695, 13787, 13879,
      13970, 14061, 14153, 14245, 14335, 14426, 14518, 14610, 14700,
      14791, 14883, 14975, 15065, 15156, 15248, 15340, 15431, 15522,
      15614, 15706, 15796, 15887, 15979, 16071, 16161, 16252, 16344,
      16436, 16526, 16617, 16709, 16801, 16892, 16983, 17075, 17167,
      17257, 17348, 17440, 17532, 17622, 17713, 17805, 11413, 11504,
      11596, 11688, 11778, 11869, 11961, 12053, 12143, 12234, 12326,
      12418, 12509, 12600, 12692, 12784, 12874, 12965, 13057, 13149,
      13239, 13330, 13422, 13514, 13604, 13695, 13787, 13879, 13970,
      14061, 14153, 14245, 14335, 14426, 14518, 14610, 14700, 14791,
      14883, 14975, 15065, 15156, 15248, 15340, 15431, 15522, 15614,
      15706, 15796, 15887, 15979, 16071, 16161, 16252, 16344, 16436,
      16526, 16617, 16709, 16801, 16892, 16983, 17075, 17167, 17257,
      17348, 17440, 17532, 17622, 17713, 17805, 11413, 11504, 11596,
      11688, 11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418,
      12509, 12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239,
      13330, 13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061,
      14153, 14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883,
      14975, 15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706,
      15796, 15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526,
      16617, 16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348,
      17440, 17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688,
      11778, 11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509,
      12600, 12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330,
      13422, 13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153,
      14245, 14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975,
      15065, 15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796,
      15887, 15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617,
      16709, 16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440,
      17532, 17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778,
      11869, 11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600,
      12692, 12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422,
      13514, 13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245,
      14335, 14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065,
      15156, 15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887,
      15979, 16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709,
      16801, 16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532,
      17622, 17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869,
      11961, 12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692,
      12784, 12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514,
      13604, 13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335,
      14426, 14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156,
      15248, 15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979,
      16071, 16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801,
      16892, 16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622,
      17713, 17805, 11413, 11504, 11596, 11688, 11778, 11869, 11961,
      12053, 12143, 12234, 12326, 12418, 12509, 12600, 12692, 12784,
      12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
      13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
      14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
      15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
      16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
      16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
      17805
    ), class = c("yearquarter", "Date")), Series = c(
      "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "10", "10", "10", "10", "10", "10", "10", "10",
      "10", "10", "10", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "101", "101", "101", "101", "101", "101", "101", "101",
      "101", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1011", "1011", "1011", "1011", "1011", "1011", "1011", "1011",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1012",
      "1012", "1012", "1012", "1012", "1012", "1012", "1012", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "1013", "1013",
      "1013", "1013", "1013", "1013", "1013", "1013", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "102", "102", "102",
      "102", "102", "102", "102", "102", "102", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1021", "1021", "1021", "1021",
      "1021", "1021", "1021", "1021", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1022", "1022", "1022", "1022", "1022",
      "1022", "1022", "1022", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1023", "1023", "1023", "1023", "1023", "1023",
      "1023", "1023", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1025", "1025", "1025", "1025", "1025", "1025", "1025",
      "1025", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1026", "1026", "1026", "1026", "1026", "1026", "1026", "1026",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1027",
      "1027", "1027", "1027", "1027", "1027", "1027", "1027", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029", "1029", "1029",
      "1029", "1029", "1029", "1029", "1029", "1029"
    ), value = c(
      0.4,
      0.6, 0.5, -0.1, 0.2, 0.8, 0.7, 0.1, 0.2, 0.4, 0.5, 0.1, 0.1,
      1, 0.9, 0.1, 0.6, 1.1, 0.6, 0.3, 0.4, 1.1, 1, -0.6, 0.8, 0.9,
      0.7, -0.5, 0.3, 0.5, 0.3, -1.9, 0.2, 0.4, 0.2, -1.3, 0.4, 0.6,
      0.6, -0.9, 0.6, 0.7, 0.6, -1.7, 2, -0.6, 0.5, -0.7, 0.8, 0.7,
      0.6, -0.1, 0.3, 0.7, 0.9, -0.6, 0.6, 1, 0.9, -0.5, 0.8, 0.9,
      0.7, -1.1, 1, 0.7, 0.8, -0.5, 0.8, 0.7, 1, 0.6, 0.6, 0.2, -0.9,
      0.3, 0.5, 0.2, -0.9, 0.3, -0.2, -0.2, 0, 0.5, 0.6, 0.5, -0.1,
      0.8, 0.8, 0.4, 0, 0.9, 0.7, 0.5, -0.6, 0.6, 0.5, -0.1, -0.8,
      0.1, -0.1, -0.6, -2.9, -0.7, -0.3, -1, -2.4, 0, -0.2, -0.4, -2.2,
      0, 0, -0.4, -1.2, 0, 0.2, 0.1, -1, 0.4, 0.7, 0.1, -0.4, 0.9,
      0.6, 0.4, -0.5, 0.6, 0.6, 0.4, -0.5, 0.8, 0.6, 0.4, -1.1, 1.2,
      0.7, 0.5, 0.2, 1, 0.7, 0.7, -0.1, 0.4, -0.1, -1.3, -0.3, 0.2,
      0, -1.5, -0.2, -0.4, -0.1, -1, -0.1, 0.5, 0.2, -0.6, 0.1, 0.6,
      0.2, -0.3, 0.3, 0.7, 0.5, -0.7, 0.4, 0.7, 0.5, -0.7, 0.3, 0.7,
      0.4, -1, 0.2, 0.5, 0, -0.9, 0.7, 0.8, 0.4, -0.7, 0.6, 0.8, 0.6,
      0.1, 0.5, 0.8, 0.6, -0.2, 0.7, 0.9, 0.6, 0.2, 0.6, 0.8, 0.6,
      -0.3, 0.3, 0.6, 0.1, -0.8, 0, 0.2, 0.2, -1.4, 0.4, 0.6, 0.3,
      -0.4, 0.7, 0.5, 0.5, 1.1, 1, 0.5, -0.3, 0.7, 0.9, 0.4, -0.6,
      0.8, 0, 0, 0.6, 1, 0.9, 0.8, 0.3, 1.3, 1.2, 0.7, 0.3, 1.4, 1,
      0.7, -0.6, 0.8, 0.6, -0.3, -1, 0, -0.3, -0.9, -3.8, -0.8, -0.4,
      -1.3, -2.9, -0.2, -0.4, -0.6, -2.8, -0.1, -0.1, -0.6, -1.6, -0.1,
      0.2, 0, -1.3, 0.5, 0.8, 0, -0.7, 1.2, 0.7, 0.4, -0.6, 0.8, 0.6,
      0.5, -0.6, 1.1, 0.8, 0.5, -1.4, 1.5, 0.8, 0.6, 0.4, 1.3, 0.8,
      0.9, -0.3, -0.1, -0.2, -1.9, -0.5, -0.2, -0.2, -1.2, -0.5, -0.5,
      -0.5, -1.1, -0.3, -0.1, -0.1, -1, -0.1, 0, -0.1, -0.5, 0, 0,
      0, -0.6, 0, 0.2, 0, -0.4, 0, -0.1, -0.2, -1.5, -0.5, -0.4, -0.4,
      -1.7, -0.1, -0.1, -0.1, -1.4, 0, 0, -0.2, -0.6, 0, 0.1, 0.1,
      -0.5, 0.2, 0.4, 0.1, 0.1, 0.4, 0.3, 0.3, -0.2, 0.3, 0.5, 0.3,
      -0.2, 0.5, 0.3, 0.2, -0.3, 0.7, 0.4, 0.3, 0.2, 0.3, 0.4, 0.5,
      0.4, 0.7, 0.6, 0.1, 0.2, 0.9, 0.8, 0.2, 0.2, 0.5, 0.7, 0.2, 0,
      1.1, 1, 0.2, 0.5, 1.1, 0.7, 0.3, 0.3, 1.1, 1.1, -0.6, 0.9, 1,
      0.8, -0.5, 0.4, 0.7, 0.4, -1.7, 0.4, 0.5, 0.4, -1.2, 0.5, 0.7,
      0.8, -0.7, 0.7, 0.8, 0.7, -1.8, 2.3, -0.7, 0.6, -0.7, 0.9, 0.7,
      0.7, 0, 0.2, 0.8, 1, -0.6, 0.6, 1.1, 1, -0.5, 0.8, 0.9, 0.8,
      -1.2, 0.9, 0.7, 0.8, -0.6, 0.7, 0.7, 1, 0.3, 0.3, 0.3, -0.5,
      0.2, 0.2, 0.3, -0.5, 0.2, -0.2, -0.2, -0.1, 0.2, 0.3, 0.2, -0.1,
      0.5, 0.3, 0.3, 0.1, 0.6, 0.4, 0.5, -0.1, 0.4, 0.4, 0.1, -0.3,
      0.1, 0, 0, -1.3, -0.4, 0, -0.3, -0.8, 0.3, 0.2, 0.3, -0.8, 0.3,
      0.3, 0, 0, 0.1, 0.3, 0.3, -0.2, 0.5, 0.3, 0.1, -0.3, 0.4, 0.2,
      0.3, -0.6, 0, 0.6, 0.1, -0.6, 0.4, 0.2, 0.1, -1, 0.6, 0.3, 0.1,
      -0.2, 0.3, 0.3, 0.5, 0.7, 0.6, 0.2, -1.3, -0.9, 0, -0.2, -1.9,
      -0.6, -0.6, -0.3, -0.9, -0.2, -0.1, 0.1, -1.1, 0.1, 0.4, 0.7,
      0, 0.4, 0.8, 0.4, -1.4, 0.5, 0.5, 0.6, -0.8, 0.8, 0.2, 1, -0.5,
      -0.5, -0.4, 0, -1.7, 0.6, 0.3, 0.3, -1.2, -0.4, 0.6, 0.4, -0.1,
      0.1, -0.1, 0, -0.3, 0.8, 0.8, 0.5, 1.1, 1.5, 1.1, 1.2, -2.9,
      1.5, 1.4, 1.4, -0.6, 1.1, 0.9, 1, -0.6, 2.1, 1.9, 0.8, 1.7, 1.5,
      1.7, 2, 0.3, 0.6, 0.7, 0.4, 0.4, 0.6, 0.9, 0.8, 0.7, 0.5, 0.8,
      1.2, 0.5, 0.7, 1, 1.1, 0.9, 1, 1.2, 1.2, 0.9, 0.9, 1, 0.4, 0.4,
      0.5, 0.2, -0.8, -0.3, -0.2, -0.3, -2, -0.4, -0.5, -0.4, -1.5,
      -0.1, -0.2, -0.1, -1.1, 0.1, 0.1, 0.3, -0.2, 0, 0.2, 0.6, -0.3,
      0.4, 0.4, 0.6, 0, 0.7, 0.5, 0.7, -0.4, 0.5, 0.7, 0.8, -0.3, 0.5,
      0.5, 0.7, -0.6, 0.8, 0.8, 0.9, 0.2, 0.7, 0.7, 1, 0.5, 1, 0.7,
      0.5, 0.6, 0.9, 0.7, 0.9, 0.4, 0.6, 0.6, 0.8, 0.5, 0.8, 0.7, 0.8,
      0.8, 0.8, 0.7, 1.5, 0.7, 0.8, 0.8, 0.8, 0.8, 1, 0.6, 0.7, 0.7,
      0.8, 0.7, 0.2, 0.6, 0.8, 0.6, 0.4, 0.9, 0.8, 0.7, 0.1, 0.6, 0.8,
      0.3, 0.5, 0.6, 0.8, 0.5, 50.5, 1.9, 1.9, 1.1, 0.1, -0.9, 0.9,
      0.8, 0.6, 0.7, 1.2, 1.3, 1.1, 0.9, 0.2, 1.9, 0.5, 0.8, 1.1, 0.7,
      0.9, 0.8, 0.7, 0.9, 0.7, 0.7, 0.6, 0, 0.8, 0.8, 0.6, 0.2, 0.9,
      0.5, 0.4, 0.3, 0.8, 0.7, 0.6, -0.2, 1, 0.7, 0.4, 0.3, 0.9, 0.7,
      0.7, -0.1, 1, 0.7, 0.3, -0.1, 0.6, 0.5, 0.4, -1, 0.4, 0.6, 0.1,
      -0.6, 0.9, 0.6, 0.5, -0.5, 0.8, 0.7, 0.3, 0.2, 0.6, 0.5, 0.5,
      -0.2, 0.5, 0.7, 0.3, -0.1, 0.9, 0.6, 0.4, -0.1, 0.5, 0.6, 0.7,
      -0.3, 0.9, 0.5, 0.7, -0.1, 1.4, 0.5, 0.5, 0.5, 0.8, 0.7, 0.7,
      0.9, 2.1, 1.9, 0.5, -0.7, 2.1, 2.1, 1.4, -0.9, 1.7, 1.4, -0.3,
      -1.4, 1.9, 1.7, -0.3, -1.1, 1.8, 1.5, 0, -1.3, 2, 1.8, -2.7,
      2, 2.2, 1.9, -2.7, 2, 2.3, 1.7, -2.7, 1.7, 2.2, 1.5, -2.8, 1.6,
      1.8, 1.8, -0.2, 1.5, 1.6, 1, -8, 11.4, -7.3, 0.4, -38.4, 0.4,
      0.6, 0.2, 0.1, 1.2, 0.9, 0.5, -0.4, 0.3, 0.9, 0.4, -0.6, 0.6,
      0.7, 0.4, -1.4, 1.3, 0.9, 0.4, -0.3, 0.8, 0.8, 0.5, -6.9, -8.7,
      -11.4, 1.9, 0.4, 3.4, 0.6, 1.6, 0.6, 5, 8.7, 3, -6.4, 15.2, 10.8,
      1.2, 2.1, 9.7, -3.7, -6.2, -7.1, 7.3, 4.9, -8.1, -0.4, 1.9, 8,
      3.6, -8.7, 1.8, -3, -13.2, 4.7, 0.8, 7.1, -5.3, -9.8, 3.8, 7.8,
      -4.7, 1.8, 2.3, 12.4, -14.8, 7.6, 7.9, 3.4, -13.2, 4.1, -4.1,
      10.3, -0.8, -12.1, 6.3, 13.9, -14.7, 5.1, 6.4, 11.2, -7.1, 5.1,
      17.1, 1.4, -15.4, -3.5, -4.8, 9.2, -34.6, 0.1, 3.1, 7.9
    )), row.names = c(
      NA,
      -923L
    ), key = structure(list(Series = c(
      "10", "101", "1011",
      "1012", "1013", "102", "1021", "1022", "1023", "1025", "1026",
      "1027", "1029"
    ), .rows = list(
      1:71, 72:142, 143:213, 214:284,
      285:355, 356:426, 427:497, 498:568, 569:639, 640:710, 711:781,
      782:852, 853:923
    )), row.names = c(NA, -13L), class = c(
      "tbl_df",
      "tbl", "data.frame"
    ), .drop = TRUE), index = structure("date", ordered = TRUE), index2 = "date", interval = structure(list(
      year = 0, quarter = 1, month = 0, week = 0, day = 0, hour = 0,
      minute = 0, second = 0, millisecond = 0, microsecond = 0,
      nanosecond = 0, unit = 0
    ), class = "interval"), class = c(
      "tbl_ts",
      "tbl_df", "tbl", "data.frame"
    ))
    
    df
    #> # A tsibble: 923 x 3 [1Q]
    #> # Key:       Series [13]
    #>       date Series value
    #>      <qtr> <chr>  <dbl>
    #>  1 2001 Q2 10       0.4
    #>  2 2001 Q3 10       0.6
    #>  3 2001 Q4 10       0.5
    #>  4 2002 Q1 10      -0.1
    #>  5 2002 Q2 10       0.2
    #>  6 2002 Q3 10       0.8
    #>  7 2002 Q4 10       0.7
    #>  8 2003 Q1 10       0.1
    #>  9 2003 Q2 10       0.2
    #> 10 2003 Q3 10       0.4
    #> # ... with 913 more rows
    
    df_unclean <- df %>%
      pivot_wider(names_from = Series, values_from = value) %>%
      as.data.frame() %>%
      ts(frequency = 4, start = c(2001, 2), end = c(2018, 4))
    
    df_clean <- sapply(X = df_unclean[, 2:14], FUN = forecast::tsclean) %>%
      as_tibble() %>%
      mutate(
        date = tsibble::yearquarter(seq(as.Date("2001/04/1"),
                                        as.Date("2018/10/1"), by = "quarter"))
      ) %>%
      pivot_longer(-date, names_to = "sector", values_to = "diff") %>%
      as_tsibble(index = date, key = sector)
    #> Registered S3 method overwritten by 'xts':
    #>   method     from
    #>   as.zoo.xts zoo
    #> Registered S3 method overwritten by 'quantmod':
    #>   method            from
    #>   as.zoo.data.frame zoo
    #> Registered S3 methods overwritten by 'forecast':
    #>   method             from    
    #>   fitted.fracdiff    fracdiff
    #>   residuals.fracdiff fracdiff
    
    df_clean
    #> # A tsibble: 923 x 3 [1Q]
    #> # Key:       sector [13]
    #>       date sector   diff
    #>      <qtr> <chr>   <dbl>
    #>  1 2001 Q2 10      0.4  
    #>  2 2001 Q3 10      0.6  
    #>  3 2001 Q4 10      0.5  
    #>  4 2002 Q1 10     -0.1  
    #>  5 2002 Q2 10      0.2  
    #>  6 2002 Q3 10      0.8  
    #>  7 2002 Q4 10      0.7  
    #>  8 2003 Q1 10     -0.901
    #>  9 2003 Q2 10      0.2  
    #> 10 2003 Q3 10      0.4  
    #> # ... with 913 more rows
    

    reprex package (v0.3.0) 于 2019 年 11 月 26 日创建

    【讨论】:

    • 你是个天才!谢谢
    猜你喜欢
    • 2020-03-26
    • 2014-09-05
    • 2019-12-24
    • 2021-11-27
    • 2020-10-12
    • 1970-01-01
    • 2018-11-26
    • 2012-08-11
    • 2017-10-21
    相关资源
    最近更新 更多