我有2個時間序列,我使用ccf
找到它們之間的互相關。 ccf(ts1, ts2)
列出了所有時滯的交叉相關。如何在不手動查看數據的情況下找到導致最大相關性的滯後?發現互相關最大的滯後ccf()
11
A
回答
18
發佈答案http://r.789695.n4.nabble.com/ccf-function-td2288257.html
Find_Max_CCF<- function(a,b)
{
d <- ccf(a, b, plot = FALSE)
cor = d$acf[,,1]
lag = d$lag[,,1]
res = data.frame(cor,lag)
res_max = res[which.max(res$cor),]
return(res_max)
}
+1
爲什麼在cor = c $ acf [,, 1]中使用了兩個逗號並且滯後? – Anusha 2014-09-30 07:58:42
10
我想我會重做上述功能,但它已經發現,返回原來的相關性(正或負)的絕對最大相關性。我也超出了(幾乎)滯後的數量。
abs.max.ccf <- function(x,a,b) {
d <- ccf(a, b, plot=FALSE, lag.max=length(a)-5)
cor <- d$acf[,,1]
abscor <- abs(d$acf[,,1])
lag <- d$lag[,,1]
abs.cor.max <- abscor[which.max(abscor)]
abs.cor.max.lag <- lag[which.max(abscor)]
return(c(x, abs.cor.max, abs.cor.max.lag))
}
我除去data.frame
:
Find_Abs_Max_CCF<- function(a,b)
{
d <- ccf(a, b, plot = FALSE, lag.max = length(a)-5)
cor = d$acf[,,1]
abscor = abs(d$acf[,,1])
lag = d$lag[,,1]
res = data.frame(cor,lag)
absres = data.frame(abscor,lag)
absres_max = res[which.max(absres$abscor),]
return(absres_max)
}
1
我已經在功能和輸出(x)的對應於索引的字符向量中的值修改了原有的溶液爲好,以環功能中的一部分,因爲它不必要的慢。遍歷在data.frame
每一列,並將結果返回到新的data.frame
,我用這個方法:
max.ccf <- lapply(colnames(df), function(x) unlist(abs.max.ccf(x, df$y, df[x])))
max.ccf <- data.frame(do.call(rbind, max.ccf))
colnames(max.ccf) <- c('Index','Cor','Lag')
2
因爲3是大於4,我也有一個刺在修改該函數,此時通過實施從here一個想法:
ccfmax <- function(a, b, e=0)
{
d <- ccf(a, b, plot = FALSE, lag.max = length(a)/2)
cor = d$acf[,,1]
abscor = abs(d$acf[,,1])
lag = d$lag[,,1]
res = data.frame(cor, lag)
absres = data.frame(abscor, lag)
maxcor = max(absres$abscor)
absres_max = res[which(absres$abscor >= maxcor-maxcor*e &
absres$abscor <= maxcor+maxcor*e),]
return(absres_max)
}
本質上是一個「錯誤」一詞被添加的,所以如果有接近最大幾個值,它們都得到恢復,如:
ayy <- jitter(cos((1:360)/5), 100)
bee <- jitter(sin((1:360)/5), 100)
ccfmax(ayy, bee, 0.02)
cor lag
348 0.9778319 -8
349 0.9670333 -7
363 -0.9650827 7
364 -0.9763180 8
如果沒有給出e
的值,則它被視爲零,並且該函數的行爲與發佈的nvogen相同。
相關問題
- 1. R中使用ccf的互相關
- 2. SQL發現最大的相互出現
- 3. 與大熊貓的互相關(時滯 - 相關)?
- 4. 定製滯後acf/ccf在R
- 5. 中等大小陣列的互相關
- 6. 發現相關性
- 7. 大的tableview滾動滯後
- 8. 應用滯後系列xts/zoo對象的最小/最大值
- 9. PHP發現最大
- 10. 互相關幀
- 11. 互相關
- 12. 使用imagepng後巨大的滯後
- 13. 圖像放大滯後
- 14. mysql複製滯後巨大
- 15. 如何發現相互行會?
- 16. 服務表現滯後
- 17. 如何根據blob/tree hash發現最後一次相關的提交?
- 18. 如何獲得兩個滯後變量之間的相關性
- 19. 圖相關發現算法
- 20. 發現最大點擊
- 21. 推力CUDA發現最大
- 22. 互相關係數
- 23. Java JFrame setSize誘發滯後
- 24. 列出熊貓中大相關矩陣的最高相關對?
- 25. 我的UIButtons有很大的滯後嗎?
- 26. R:有效定位與輸入段最大互相關的時間序列段?
- 27. 相互信息的實現
- 28. 與Rails的相互關係
- 29. 同時發送大量數據的滯後
- 30. 發現排序後的數組之間的最大差值
好的在這裏找到了答案http://r.789695.n4.nabble.com/ccf-function-td2288257.html – tan 2012-04-29 02:17:36
爲什麼不把它作爲答案,並從R幫助郵件列表中扣除海報? – 2012-04-29 06:49:36
是的我會這樣做,但我沒有足夠的聲望點來回答我自己的問題。 – tan 2012-04-29 16:12:07