你如何 运行 预测时间序列数据?

how do you run predict on time series data?

我正在尝试根据时间序列数据创建预测。

我的数据框调用 dat 如下所示:

dput(头(dat))

dat <- structure(list(out = c(5, 0, 0, 0, 0, 0), Date = c(1423825200000, 
1423825500000, 1423825800000, 1423826100000, 1423826400000, 1423826700000
)), .Names = c("out", "Date"), row.names = c(NA, 6L), class = "data.frame")

目前我的数据框 dat 中有 81 行。我的列被调出并且日期,日期列在纪元中。

我需要先建立一个线性模型:

 lin <- lm(dat[,1]~dat[,2], data=dat)

基于这个模型,我需要预测 7 天等的每小时数据点,所以我这样做:

t<-3600
newdata <- seq(tail(dat$Date,1), tail(dat$Date,1)+604800, t)
newdata<-data.frame(newdata)
    colnames(newdata)<-c("Date")
    predictions <- predict(lin, newdata=newdata, level=0.95, interval="prediction")
    predictions <- data.frame(predictions)
    f<-predictions
    f<-data.frame(f)
    f<-cbind(f, newdata)
    f<-f[,c("fit", "Date")]
    colnames(f)<-c("Forecast", "Date")

我收到这个错误:

Error in data.frame(..., check.names = FALSE) : 
  arguments imply differing number of rows: 81, 169 In addition: Warning message:
'newdata' had 169 rows but variables found have 81 rows

无论我的数据框 (dat) 的大小如何,我都应该能够构建线性模型并基于新数据执行预测函数。有什么想法吗?

试试这个。这样,您仍然可以保持一切动态。

variable.list<-names(dat)
lin <- lm(as.formula(paste(variable.list[1],variable.list[2], sep="~") ), data=dat)

如果有效请告诉我