作者sinclairJ (SunnyGymBoy)
看板R_Language
标题[问题] 有关时间序列资料计算DTW问题
时间Wed Oct 14 11:43:13 2015
资料档:
https://www.dropbox.com/s/3wh4o9c0l5pplwq/test.csv?dl=0
资料档说明:资料档维度为60*99,有99条时间序列
(每条时间序列长度不一,长度最长为60(可视为60个单位时间点))
问题描述:因现实资料的关系,有些时间序列会有NA值
但查过文献之後,这不影响分析
小弟主要要做的分析是1 by 1计算这些时间序列的相似性
(而DTW就是一种可以计算两条序列不等长(也可等长)的相似性之计算距离方法)
而得出99*99的距离矩阵之後 再对距离矩阵做资料探勘中的分群
问题:因时间序列有NA值,所以不太能用自动化的方式一次完成99*99分析
小弟原本的程式码如下
test=read.csv("") #读档
library(dtw)
DtstMatrix=dist(test,method="DTW") #执行这行会出现错误
所以小弟用比较笨的方法,用眼睛一条一条看,然把NA的值取出来再做计算
小弟此时的程式码如下
eg1.如果要计算等长的序列
d1=dtw(test[,5],test[,6]) #以计算第5与第6条序列相似性为例
d1$distance #看两条序列的距离,越小表示越相似
eg2.如果要计算不等长的序列
d2=dtw(test[,5],test[c(1:45),7]) #以计算第5与第7条序列相似性为例
不过小弟要每条序列都与每条序列做一次计算然後得出99*99的距离矩阵
距离矩阵示意图如下(28*28为例)
http://i.imgur.com/Tp5we4U.jpg
不知道各位前辈有没有什麽较方便的方法可以教导小弟一下
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.184.161.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1444794197.A.74F.html
※ 编辑: sinclairJ (223.139.27.173), 10/14/2015 13:01:36