2013-11-15 85 views
1

我使用兩個時間序列對象執行迴歸。它的工作原理一樣,(虛設的值):R中的平滑時間序列的線性迴歸

ts1 <- ts(1:10,start=0,frequency=1) 
ts2 <- ts(1:10,start=0,frequency=1) 
class(ts1) # "ts" 
lagmat = "ts1 ~ ts2" 
armod <- dyn$lm(as.formula(lagmat)) 

當時間序列被迴歸之前平滑的問題出現了:

ts1 <- ts(1:10,start=0,frequency=1) 
ts2 <- ts(1:10,start=0,frequency=1) 
ts1 <- smooth(ts1) 
ts2 <- smooth(ts2) 
class(ts1) # "tukeysmooth" "ts" 
lagmat = "ts1 ~ ts2" 
armod <- dyn$lm(as.formula(lagmat)) 

錯誤zooreg(coredata(x)的開始= xtsp [1] ,end = xtsp [2],frequency = frequency): 「data」:試圖定義無效的動物園對象

我的想法是以某種方式提取時間序列對象。隨着壽它的工作原理迴歸之前,下面幾行:

ts1 <- ts(as.vector(ts1),start=start(ts1), frequency=frequency(ts1)) 
ts2 <- ts(as.vector(ts2),start=start(ts2), frequency=frequency(ts2)) 

爲什麼第一個版本沒有工作,有沒有更好的辦法做到這一點不是創建新的時間序列?

+0

擺脫as.formula'的'。它應該是'dyn $ lm(lagmat,...)' –

回答

0

看起來像dym包中的東西。這似乎只是很好地工作:

lm(ts1s ~ ts2s) 
如果你喜歡使用ARM包

library(arm) 
fit.1 = lm(ts1s ~ ts2s) 
display(fit.1)