0

我想在每周收集的数据上应用 R 中的分解函数。例如,我给出的例子是我已经与我得到的错误一起工作:

>v<-c(50,45,23,21,32,24,42)
>vtimeseries<-ts(v)
>vtimeseries
Time Series:
Start = 1 
End = 30 
Frequency = 1 
>decompose(vtimeseries)
Error in decompose(vts) : time series has no or less than 2 periods

任何人都可以帮我解决这个问题。还可以说明如何在 ts() 中设置频率值。我想将时间序列数据分解为

Monday      Tuesday      Wednesday     Thursday      Friday       Saturday     Sunday
...          ....          ....            ...            ...           ...     ...

我这样做的主要目的是找到时间序列数据的季节性和趋势部分。

4

2 回答 2

1

上面 Pramit Choudhary 给出的示例似乎不再起作用,因为 GOOG xts 中的 NA 列导致to.monthly(GOOG)抛出错误 Borrowing code from Removing NA columns in xts

getSymbols("GOOG", src="google", from = from.dat, to = to.dat)
GOOG <- GOOG[,-which(apply(is.na(GOOG), 2, all))]
mGoog <- to.monthly(GOOG)

似乎解决了问题。

于 2015-01-07T15:29:26.157 回答
0

如果您正在寻找一个示例来了解频率的相关性并进行分解,请尝试以下示例。尝试更改“频率”值。它将帮助您了解到底发生了什么。

    library(quantmod)
    from.dat <- as.Date("01/01/08", format="%m/%d/%y")
    to.dat <- as.Date("12/31/13", format="%m/%d/%y")
    getSymbols("GOOG", src="google", from = from.dat, to = to.dat)
    mGoog <- to.monthly(GOOG)
    googOpen <- Op(mGoog)
    ts1 <- ts(googOpen,frequency=12)
    plot(ts1,xlab="Years+1", ylab="GOOG")
    plot(decompose(ts1),xlab="Years+1")
于 2014-11-30T21:19:49.117 回答