看板 R_Language 關於我們 聯絡資訊
資料檔: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