[英]stl function in R is not recognising a univariate time series
我使用R從Excel讀取時間序列(使用XLConnect),然后在該時間序列上運行一些預測模型,然后將結果輸出回Excel。 這是一個很長的故事,但我正在做研究碩士的公司想繼續使用Excel! 無論如何,我可以從Excel中提取我想要的時間序列。 我使用ts()使它成為一個時間序列。 然后,我使用(按此順序) ets()
, auto.arima()
, tbats()
, mapaest()
, theta()
和最后stlf()
運行該系列的預測。 為了檢查它是否正在進行預測,我得到R來打印預測結果。 它可以很好地運行所有預測模型,直到它到達stlf()
預測函數。 當我收到此錯誤時:
stl中的錯誤(x,s.window = s.window,t.window = t.window,robust = robust):只允許單變量系列
我的問題是時間序列(它是單變量的)如何在其他預測函數中正常工作,而不是在stlf()
函數中?
在做了更多的挖掘后,我現在已經弄明白了。 事實證明,我傳遞的時間序列也是stlf()
函數的矩陣。 其他預測函數似乎並不介意給出一個也是矩陣的時間序列,但由於某種原因, stlf()
不喜歡它。
我使用as.vector()
將原始數據轉換為矢量,然后將該矢量轉換為ts()
對象。 然后將其傳遞給stlf()
函數。 我沒有大量確定這是如何工作的,因為我之前最初將ts()
對象傳遞給了stlf()
。 對R來說相當新,但我會進一步研究這個......
這是我使用的代碼;
altVector <- as.vector(t(rawdata))
tsy2 <- ts(altVector, start=1, end=c(3,9), frequency=12)
f.stlf <- stlf(tsy2, method="arima", h=3)
現在一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.