簡體   English   中英

R中的stl函數無法識別單變量時間序列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM