如标题中所示,我想知道是否可以使用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)
Run Code Online (Sandbox Code Playgroud)
可能不是,我查看了包装手册,没有关于缺失或NA值的信息.我还试图将您的数据提供给dtw()它,但它失败了:
Error in dtw(TS1, TS2) :
No warping paths exists that is allowed by costraints
Run Code Online (Sandbox Code Playgroud)
但是当我将所有NA值更改为0时,它很容易工作.
因此,如果您的唯一解决方案是此软件包,您可以在DTW软件包论坛上发帖,或者您可能必须自己处理丢失的数据.您可以在这里找到一些提示或使用包*na()fSeries的功能.
*此套餐已不再提供.建议使用该timeSeries包.
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |