[問題] 有關時間序列資料計算DTW問題

看板R_Language作者 (SunnyGymBoy)時間10年前 (2015/10/14 11:43), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
資料檔: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://www.ptt.cc/bbs/R_Language/M.1444794197.A.74F.html ※ 編輯: sinclairJ (223.139.27.173), 10/14/2015 13:01:36
文章代碼(AID): #1M7SzLTF (R_Language)
文章代碼(AID): #1M7SzLTF (R_Language)