0
我打算構建一個代碼來檢查兩個時間序列的金融價格數據的協整,以更好地預測其中的一個。R:參數意味着使用財務數據的行數不同
爲此,我選擇了這兩個時間序列:BBVA歷史價格和IBEX35並建立這個小小的代碼:
ibex <- new.env()
bbva <- new.env()
library(quantmod)
getSymbols("^IBEX", env = ibex, src = "yahoo", from = as.Date("2010-01-04"), to = as.Date("2015-11-30"))
getSymbols("bbva", env = bbva, src = "yahoo", from = as.Date("2010-01-04"), to = as.Date("2015-11-30"))
ibex <- ibex$IBEX
ibex <- ibex$IBEX.Adjusted
bbva <- bbva$BBVA
bbva <- bbva$BBVA.Adjusted
ldbbva <- diff(log(bbva))
ldibex <- diff(log(ibex))
mean <- mean(ldbbva, na.rm = TRUE)
ldbbva[is.na(ldbbva)] <- mean
mean <- mean(ldibex, na.rm = TRUE)
ldbbva[is.na(ldibex)] <- mean
library(urca)
jotest=ca.jo(data.frame(ldbbva,ldibex), type="trace", K=2, ecdet="none", spec="longrun")
在這一點上,當我試圖從我的時間序列進行數據幀,我面對這個錯誤的論點意味着不同的行數:1488,1514。
我該怎麼辦?
錯誤信息的哪一部分不清楚? – Roland
您可能需要了解*爲什麼這兩列的長度不同。我的猜測(這只是一個猜測),因爲西班牙連續市場比其他市場更加頻繁地關閉,而且您缺乏關閉日期的數據,所以'^ IBEX'更小。如果這是問題,則可能需要在適當的日子裏用'NA'擴展它。無論如何 - 看看數據本身,看看哪裏出現差異。你能理解這種差異嗎? –
你應該真的命名一些東西,並選擇'ibex'和'bbva'應該是'environments'還是'vectors',你將它們用作兩者,因此可能會覆蓋值。 (以'ibex <-'開頭的兩行只是覆蓋全局環境中的ibex變量)。嘗試使用'ibexenv'和'ibexvec'來清楚什麼是什麼。 (然後,對於錯誤消息,只需從'ca.jo'中構建'data.frame',你可能會更好,爲什麼它會失敗。 – Tensibai