外推时间序列

时间:2016-04-25 18:41:30

标签: r time-series extrapolation

我在过去4年中下载了谷歌的年度收入:

library(quantmod)
getFinancials(GOOG)
df<-viewFinancials(GOOG.f, type='IS', period='A',subset = NULL)['Net Income',]
df<-(as.data.frame(df))

以下是数据的显示方式:

2015-12-31 16348
2014-12-31 14136
2013-12-31 12733
2012-12-31 10737

我希望将这些数据“推断”为未来10年的平均线性增长,这是一种方式:

enter image description here

在Excel中,我只需要粘贴上面的数据,从最旧到最新排序,选择它,并将选择“拉伸”超过10行,结果如下:

12/31/2012  10737
12/31/2013  12733
12/31/2014  14136
12/31/2015  16348
12/31/2016  18048
12/31/2017  19871
12/31/2018  21695
12/31/2019  23518
12/31/2020  25342
12/31/2021  27166
12/31/2022  28989
12/31/2023  30813
12/31/2024  32636
12/31/2025  34460

我怎样才能在R中做同样的事情(或接近它的事情)?

1 个答案:

答案 0 :(得分:2)

在R中需要一些额外的步骤。以下是您的示例数据:

date<-as.Date(c("2015-12-31", "2014-12-31", "2013-12-31", "2012-12-31"))
value<-c(16348, 14136, 12733, 10737)

假设未来线性增长。使用lm命令执行线性回归。变量&#34;模型&#34;存储适合。

#fit linear regression
model<-lm(value~date)

展望未来10年,创建未来10年的日期序列并存储为数据帧(预测命令所需)

#build predict dataframe
dfuture<-data.frame(date=seq(as.Date("2016-12-31"), by="1 year", length.out = 10))
#predict the futurne
predict(model, dfuture, interval = "prediction")

上述模型呈现线性增长。如果对增长的预测有不同的预测,那么lm公式需要修改或使用nlm方程。 我将忽略有关在可用数据范围之外进行预测的警告。