【问题标题】:Linear regression Forecasting in RR中的线性回归预测
【发布时间】:2015-12-28 21:32:19
【问题描述】:

在 R 中编写我的预测脚本时遇到问题。我将所有时间序列数据保存在一个 .csv 文档中,该文档已导入到全局环境中。该代码一直有效到 anova(reg1)。所以我的问题是为什么脚本的其余部分不起作用,我需要如何编辑脚本以使其看起来像示例 4.4 在此链接中的样子(https://www.otexts.org/fpp/4/8

data <- read.csv("Ny.csv", h=T, sep=";")

SeasonallyadjustedStockprice<-data$Seasonallyadj

Oilprice<-data$Oilaverage

Index<-data$DJI

plot.ts(Oilprice)

plot.ts(SeasonallyadjustedStockprice)

plot.ts(Index)

reg1<-lm(SeasonallyadjustedStockprice~Oilprice+Index)

summary(reg1)

anova(reg1)

Time <- tslm(SeasonallyadjustedStockprice~Oilprice+Index) 

f <- forecast(Time, h=5,level=c(80,95))

错误信息如下: tslm 错误(SeasonallyadjustedStockprice ~ Oilprice + Index): 不是时间序列数据

【问题讨论】:

  • 那么您的问题到底是什么?请编辑您的帖子以使其更清楚。确保提供不依赖于仅在您的计算机上可用的数据的 reproducible example
  • “不起作用”是什么意思?您是否收到错误消息?如果是这样,您应该包括在内。

标签: r forecasting


【解决方案1】:

看起来像是因为公式右侧的项不是时间序列。这是一个简化的例子:

>df
  a b
1 1 2
2 2 4
3 3 6
4 4 8

> y
[1] 1 3 5 7

>tslm(y ~ a + b, data=df)
Error in tslm(y ~ a + b, data = df) : Not time series data

> dfts = ts(df)    # This is of class 'mts' (multiple time series)
> tslm(y ~ a + b, data=dfts)

Call:
lm(formula = formula, data = dfts, na.action = na.exclude)

Coefficients:
(Intercept)            a            b  
         -1            2           NA  

对于这个过于简化的示例,这基本上是合理的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2021-02-27
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多