正如标题所指示的那样,我想知道动态时间规整(DTW)是否可以用于计算具有缺失值的两个时间序列之间的DTW距离。假设这两个时间序列是两个天气站的日平均温度,长度相等(例如365天),并且缺失值在两个时间序列的不同日期。如果可能的话,R中的dtw包能够处理缺失值吗?我没有发现可以在dtw()中设置的参数,例如na.rm = T。非常感谢!感谢thelatemail的建议。下面是两个时间序列的简化示例,其中每个时间序列仅包含52个元素,并且缺失值设置为NA。
TS1 = c(-3.26433, -5.09096, NA, -8.4158, -5.85485, -3.49234, -7.64666, -4.90124, NA, -4.68836, -1.38114, 1.55527, 2.81872, 2.44261, 3.57963, 6.19983, 7.42515, 8.41524, 6.32686, 10.0144, 9.53251, 13.4781, 12.3585, 10.6706, 10.2647, 16.6848, 16.4855, 20.1482, NA, 21.5734, 20.3946, 20.8824, 18.0325, 18.5813, 17.5453, 16.3315, 14.3068, 11.3164, 9.96398, 5.53102, 9.55094, 9.05897, 6.81199, 5.20343, 1.63158, -0.661077, -4.33853, -6.53655, NA, -10.8646, 1.11843, 1.23786)
TS2 = c(-5.76852, -10.2207, -11.8465, NA, -1.70019, -3.60319, -5.7718, -3.81106, -5.62284, -3.57516, 0.314511, 0.64058, 0.476162, NA, 4.23757, 5.15417, 7.29422, NA, 1.57376, 9.28236, 8.05182, 13.7175, 9.5453, 10.2417, 9.32423, 18.214, 18.3726, 16.661, 20.6563, 22.2901, 22.1109, 19.129, 15.8615, 16.7817, 17.247, 15.9921, 14.5804, 11.3693, 10.9349, 10.1196, 3.7467, 9.09229, 6.91285, NA, 4.20934, -0.566403, -2.94184, -3.81432, -10.0212, -15.9876, -2.56286, -1.88976)
TS2[is.na(TS2)] <- sapply(which(is.na(TS2)),function(x) mean(c(TS2[x-1],TS2[x+1])))
这样简单的方法也可以正常工作。 - thelatemail