标签: forecasting

在R中使用forecast()时获取预测值

我在R中做了一个forecast(),我只想要预测值.我怎样才能做到这一点?如果我使用forecast$means我得到额外的信息而不是像矢量那样的可用数据对象.

suppressMessages(require('forecast'))
suppressMessages(require('rjson'))

# Load data. Let user choose what file they want to input.
my_json = "[1,2,3,4,5]"

my_data = fromJSON(my_json)

my_df = data.frame(my_data)

# Plot the decomposed time series. Let user choose their season length.
forecasted_data = forecast(ts(my_df[,1]), h=5)

print(forecasted_data$mean)
Run Code Online (Sandbox Code Playgroud)

电流输出:

Time Series:
Start = 6 
End = 10 
Frequency = 1 
[1] 4.9999 4.9999 4.9999 4.9999 4.9999
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[1] 4.9999 4.9999 4.9999 4.9999 4.9999
Run Code Online (Sandbox Code Playgroud)

r forecasting

2
推荐指数
1
解决办法
5016
查看次数

ConvergenceWarning:最大似然减慢内核运行时间?

我使用非常nicht 的代码对象arma_order_select_ic来找到最低的信息标准来选择 p- 和 q 值。

我不确定我是否做得对,或者代码是否只是偶然发现了一些错误......

在:

y = indexed_df
res = arma_order_select_ic(y, max_ar=7, max_ma=7, ic=['aic', 'bic', 'hqic'], trend='c', fit_kw=dict(method='css'))
print res
print ('AIC-order: {}' .format(res.aic_min_order))
print ('BIC-order: {}' .format(res.bic_min_order))
print ('HQIC-order: {}' .format(res.hqic_min_order)) 
Run Code Online (Sandbox Code Playgroud)

出去:

/Applications/anaconda/lib/python2.7/site-packages/statsmodels-0.6.1-py2.7-macosx-10.5-x86_64.egg/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
  "Check mle_retvals", ConvergenceWarning)
Run Code Online (Sandbox Code Playgroud)

另外:它打印出三个矩阵样式列表(每个 IC 一个矩阵)和最终推荐:

AIC-order: (7, 5)
BIC-order: (7, 0)
HQIC-order: (7, 0)
Run Code Online (Sandbox Code Playgroud)

所以,整件事似乎都奏效了。

问题是,每次计算都会打印警告,大约需要 30-60 秒,即它非常慢!

我检查了相关的源代码(statsmodels/base/model.py)以及如何跳过打印 CovergenceWarning:

   #TODO: hardcode scale?
        if isinstance(retvals, dict):
            mlefit.mle_retvals = retvals
            if warn_convergence …
Run Code Online (Sandbox Code Playgroud)

python time-series forecasting statsmodels

2
推荐指数
1
解决办法
1万
查看次数

stl .series中的错误不是周期性的

我很确定我错过了一些非常简单的东西,但仍然无法弄清楚为什么会出现这个错误.我所拥有的数据是2013年4月至2014年3月的每个月末数据.现在我想了解12个月期间的趋势.

xx <- structure(c(41.52, 41.52, 41.52, 41.68, 41.68, 41.68, 41.84, 
41.84, 41.84, 42.05, 42.05, 42.05), .Tsp = c(2013.25, 2014.16666666667, 
12), class = "ts");
Run Code Online (Sandbox Code Playgroud)

是我的时间序列数据.现在我用的时候

 stl(xx,s.window ="periodic")
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error in stl(xx, s.window = "periodic") : 
  series is not periodic or has less than two periods
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题,因为据我所知这个系列有12个时期.请协助

r time-series forecasting trend

2
推荐指数
1
解决办法
3995
查看次数

R预测 - 如何仅绘制子集?

我正在使用R预测包装模型,如下所示:

    fit <- auto.arima(df) 
    plot(forecast(fit,h=200))
Run Code Online (Sandbox Code Playgroud)

其中打印原始数据框加上预测.当df非常大时,这就成了一个问题,因为很难看到预测的样子.我希望能够只选择整个系列中的最后X点(原始+预测).

r time-series forecasting

2
推荐指数
1
解决办法
3221
查看次数

使用额外的回归量预测ARIMA模型

假设我有一些时间序列如下,我想预测c1一步一步,这样做很简单直接在R:

testurl = "https://docs.google.com/spreadsheets/d/1jtpQaSxNY1V3b-Xfa5OJKDCLE6pNlzTbwhSHByei4EA/pub?gid=0&single=true&output=csv"
test = getURL(testurl)
mydata = read.csv(textConnection(test), header = TRUE)
data <- ts(mydata['c1'])
fit <- auto.arima(data)
fcast <- forecast(fit)
fcast
Run Code Online (Sandbox Code Playgroud)

请注意,这些数字只是随机数,auto.arima建议我们使用a arima(0,1,0)和预测一步,一个头是52.

但是,如果想要使用c2c3改进(例如aic和bic)样本预测,该怎么办?那个人怎么会继续呢?

c1   c2     c3
40   0,012  1
41   0,015  1
42   0,025  1
40  ?0,015  1
44   0,000  0
50   0,015  0
52   0,015  1
51   0,020  1
50   0,025  1
52   0,030  0
53   0,045  1
52   0,030  1
52   0,025  0
52   0,000  0
51   0,010 …
Run Code Online (Sandbox Code Playgroud)

r time-series forecasting

2
推荐指数
1
解决办法
2884
查看次数

我可以使用forecast.Arima(包预测)获得置信区间而不是预测区间吗?

嗨,我大致了解置信区间和预测区间之间的差异(参见Rob Hyndman 的帖子和关于交叉验证的讨论)。并且该预测区间比置信区间宽得多。

我的问题是我可以从中获得置信区间forecast.Arima吗?为什么只计算预测区间而不是置信区间forecast?在预测文件中:

forecast(object, h=10, level=c(80,95), fan=FALSE, lambda=NULL, 
    bootstrap=FALSE, npaths=5000, biasadj=FALSE, ...)
Run Code Online (Sandbox Code Playgroud)

level 是预测区间的置信水平。

r forecasting

2
推荐指数
1
解决办法
6249
查看次数

Javascript 中 Excel 的预测公式

我正在尝试根据 Excel 中的代码在 Javascript 中创建预测函数,在https://support.office.com/en-US/article/FORECAST-function-50CA49C9-7B40-4892-94E4-7AD38BBEDA99 中解释

但我不明白公式中带有特征的 x(也是 y)是什么,所以我不知道如何在 Javascript 中翻译它。

有人可以帮我吗?

谢谢你。

javascript excel forecasting

2
推荐指数
1
解决办法
1430
查看次数

如何使用 sklearn python 预测未来的数据帧?

我正在运行链接中的示例。

经过几次修改,我已经成功运行了代码。下面是修改后的代码:

import quandl, math
import numpy as np
import pandas as pd
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from matplotlib import style
import datetime

style.use('ggplot')

df = quandl.get("WIKI/GOOGL")
df = df[['Adj. Open',  'Adj. High',  'Adj. Low',  'Adj. Close', 'Adj. Volume']]
df['HL_PCT'] = (df['Adj. High'] - df['Adj. Low']) / df['Adj. Close'] * 100.0
df['PCT_change'] = (df['Adj. Close'] - df['Adj. Open']) / df['Adj. Open'] * 100.0

df = df[['Adj. Close', 'HL_PCT', …
Run Code Online (Sandbox Code Playgroud)

python forecasting python-2.7 scikit-learn sklearn-pandas

2
推荐指数
1
解决办法
2976
查看次数

加载 ggfortify 时,自动绘图功能的行为有所不同

我想为各种预测模型绘制图表。

当我在加载 ggplot2 后使用 autoplot 时,绘图显示如下:

autoplot(m_hw1_ff)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我还想为训练和测试数据添加拟合线。为此,我使用以下代码:

autoplot(m_hw1_ff) + 
  geom_line(aes(y=m_reg1_ff$fitted), col = "green") +
  geom_line(data=test_ts_data, aes(y=test_ts_data), col = "red")
Run Code Online (Sandbox Code Playgroud)

当上面的代码在加载ggplot2后运行时,它给出了以下错误:

Error in order(data$PANEL, data$group, data$x) : 
  argument 3 is not a vector
Run Code Online (Sandbox Code Playgroud)

在参考了这个问题的评论和答案后,我也加载了 ggfortify 包。

预测 v7 和 ggplot2 图形向自动绘图添加拟合线

之后代码工作正常,并且完美地绘制了训练和测试数据的拟合线。然而,之前为蓝色的阴影区域(Lo 80、Hi 80、Lo 95 和 Hi 95 的深色和浅色)已完全变成灰色,如下图所示:

在此处输入图片说明

我希望阴影到区域显示为它出现在第一个图中。

r ggplot2 forecasting ggfortify

2
推荐指数
1
解决办法
959
查看次数

以不同方式对每个组进行预测

我的数据集看起来像这样:

Category Weekly_Date             a             b
   <chr>    <date>           <dbl>         <dbl>
 1   aa     2018-07-01        36.6          1.4
 2   aa     2018-07-02        5.30          0   
 3   bb     2018-07-01        4.62          1.2
 4   bb     2018-07-02        3.71          1.5
 5   cc     2018-07-01        3.41          12
... ...            ...         ...          ...
Run Code Online (Sandbox Code Playgroud)

我分别为每个组拟合线性回归:

fit_linreg <- train %>%
              group_by(Category) %>%
              do(model = lm(Target ~ Unit_price + Unit_discount, data = .)) 
Run Code Online (Sandbox Code Playgroud)

现在我对每个类别都有不同的模型:

aa model1
bb model2
cc model3
Run Code Online (Sandbox Code Playgroud)

所以,我需要将每个模型应用到适当的类别.怎么实现呢?(dplyr更好)

grouping r time-series forecasting dplyr

2
推荐指数
1
解决办法
207
查看次数