将数据帧转换为R中的预测时间序列

时间:2016-07-27 16:01:42

标签: r time-series

我以下列格式从MySQL检索数据:

date         newCustomers
2016-07-27   31
2016-07-26   3

数据从日期2015-02-25开始,每天都有一个条目。 我想将此数据框转换为时间序列以进行预测。

我尝试了以下内容: dataTimeSeries <- ts(data, start=c(2015,2,25), frequency=365.25)它给了我一个警告In data.matrix(data) : NAs introduced by coercion。在检查dataTimeSeries中的内容时,这就是我找到的

         date  day
2016.000   NA   31
2016.003   NA    3
2016.005   NA    2
2016.008   NA    0

我做错了什么,请指出正确的方向?

更新:根据建议,我尝试了dataTimeSeries <- ts(data$newCustomers, start=c(2015,2,25), frequency=365.25),它给了我以下结果

Time Series:
Start = 2015.00273785079 
End = 2015.9993155373 
Frequency = 365.25 
  [1]   31    3    2    0  101   69    8    4   15    3    1   22   47   85  359    6    7    2  134   44   20   61    2    0    4 2373 4243    7   31   11    2    0   25 1689   24   74
 [37]   22    0    1  336  373   14   11  145    7    0    1   19   49  522   19    1   39 1611    9  675   21    1   45    4  156  180  747  265  169    0    0    4    7    3    4   10
 [73]   64    1    3    5    2   13   15    0    6    0   13    2   13   10    5   14   16   28  134    8    2    0    0    9   29    7   79   17    1    4  167    6   64  334   14    0
[109]    0   13   17   57   66    3    0    0   25    2    4   22   16    2    0   23   23  169 9912   24    8    3  154    3    2   29   29  243    0    6    2   72   66    7    1    0
[145]   24  208   13    6    7   10    4   54   79   72    9   29   31  208  224   18   50   65  152   50   10   55  107  249  178    3    0    0  627   19  220   20  285    0    1   11
[181]   26   25   88    9    2    7   64   54  212  295   37   49   19  144   30   78   29   97  210  143    4  294    2   34  642   24    0    0    1    4    0    0    0    0    0    0
[217]    2    3    9    0    0   62    6   16    0   12    0   21    3    6    5    8    1    1    0    3   40   16    1    0    0   66    0    0    1    8    6    1   14   26    4    4
[253]  285    4    0    0    0    3    1    0   28    0    0   24  360    0    0    2    3    0   11  294  578    1    4    0    0   19    2    7   10    0    0    1   20    1   59   19
[289]    2    0    0    9   19   12    4   10    5    4    5    5    7   38   10    5    6    9   18   22   30   28   13   14   22   22   35   12    6    3    3   15    3    3   28    1
[325]    0    0    7   45   21   14   21    0    0   22   14   17  799    7    0    3    8   20   21  107   75    3    3   39   36  137   42   39    6   16  113   11    6   10    8    6
[361]    6    8   21   12   81

这是不正确的。

1 个答案:

答案 0 :(得分:0)

这应该有效,因为你只需要将数据(而不是时间)提供给ts():

dataTimeSeries <- ts(data$newCustomers, ...)

您的数据也可能在观察之间没有规则的间隔时间吗?时间序列最适用于在观察日期之间间隔相等的数据集。您可以看到Analyzing Daily/Weekly data using ts in R用于分析数据的其他方法,这些方法不一定具有等间隔时间。