精华内容
下载资源
问答
  • R语言:ts() 时间序列的建立

    万次阅读 2019-06-05 15:16:09
    通过一向量或者矩阵创建一个一元的或多元的时间序列(time series),为ts型对象。 调用格式: ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, ...

    ts() 函数

             通过一向量或者矩阵创建一个一元的或多元的时间序列(time series),为ts型对象。

    调用格式

             ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, names)

    说明

    • data  一个向量或者矩阵
    • start  第一个观测值的时间,为一个数字或者是一个由两个整数构成的向量
    • end  最后一个观测值的时间,指定方法和start相同
    • frequency  单位时间内观测值的频数(频率)
    • deltat  两个观测值间的时间间隔。frequency和deltat必须并且只能给定其中一个
    • ts.eps  序列之间的误差限,如果序列之间的频率差异小于ts.eps,则认为这些序列的频率相等
    • class  对象的类型。一元序列的缺省值是“ts”,多元序列的缺省值是c(“mts”,“ts”)
    • names  一个字符型向量,给出多元序列中每个一元序列的名称,缺省data中每列数据的名称或者Series 1,Series 2, 。。。

    Example:

        > ts(1:26, start=1986)  #最简单的形式
           Time Series:
           Start = 1986 
           End = 2011 
           Frequency = 1 
           [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  

      > ts(1:26, frequency = 12, start=c(1986,10)) #frequency = 12时,为月份
                    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
          1986                                                                   1     2     3
          1987   4     5     6     7      8     9   10   11   12    13   14   15
          1988  16   17  18   19    20    21  22  23    24    25   26   

    展开全文
  • 时间序列分析:ts/mts基础数据类型

    万次阅读 2016-10-25 11:46:20
    时间序列是以时间为索引的数据。时间索引为等间距递增的时间序列称为规则时间序列,其他为不规则时间序列。...R语言中基本的时间序列对象为ts,在stats基本包中定义,由同名构造函数ts()产生。使用前先看看它的参数

    时间序列是以时间为索引的数据。时间索引为等间距递增的时间序列称为规则时间序列,其他为不规则时间序列。由于R语言核心组件的构建坚持以通用性为原则,因此R的基础包中只定义了规则时间序列,而不规则时间序列的定义和处理则留给开发人员做扩展。

    本文先介绍规则时间序列。

    1 ts数据类型

    R语言中基本的时间序列对象为ts,在stats基本包中定义,由同名构造函数ts()产生。使用前先看看它的参数:

    args(ts)
    
    ## function (data = NA, start = 1, end = numeric(), frequency = 1, 
    ##     deltat = 1, ts.eps = getOption("ts.eps"), class = if (nseries > 
    ##         1) c("mts", "ts", "matrix") else "ts", names = if (!is.null(dimnames(data))) colnames(data) else paste("Series", 
    ##         seq(nseries))) 
    ## NULL
    


    参数中最重要的是data、frequency、start和end。

    • data 即时间序列中的观测值,可以是向量或矩阵,或者转换为向量或矩阵的数据类型(如data.frame)。默认为NA。
    • frequency 是一个时间周期中的间隔频率。如果设为12,那么时间序列将自动识别为12个自然月;如果设置为4,识别为4个季度。ts另外一个参数deltat=1/frequency,两者只能设置其中一个。
    • start和end 开始时间和结束时间,长度为1或2。如果长度为2则第二个值设定的是周期中的具体值,从1开始,不大于frequency。
    dt <- sample(1:100, 24)
    ts(dt, freq = 12, start = 2010)
    
    ##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 2010  28  80  85  29  96  45  30  69  70  93  60  42
    ## 2011  63  16  82  81  27  57  10  78  97  51  36  13
    
    ts(dt, freq = 4, start = 2010)
    
    ##      Qtr1 Qtr2 Qtr3 Qtr4
    ## 2010   28   80   85   29
    ## 2011   96   45   30   69
    ## 2012   70   93   60   42
    ## 2013   63   16   82   81
    ## 2014   27   57   10   78
    ## 2015   97   51   36   13
    
    ts(dt, freq = 1, start = 2010)
    
    ## Time Series:
    ## Start = 2010 
    ## End = 2033 
    ## Frequency = 1 
    ##  [1] 28 80 85 29 96 45 30 69 70 93 60 42 63 16 82 81 27 57 10 78 97 51 36
    ## [24] 13
    
    ts(dt, freq = 7, start = 1)
    
    ## Time Series:
    ## Start = c(1, 1) 
    ## End = c(4, 3) 
    ## Frequency = 7 
    ##  [1] 28 80 85 29 96 45 30 69 70 93 60 42 63 16 82 81 27 57 10 78 97 51 36
    ## [24] 13
    
    ts(dt, freq = 12, start = c(2010, 3))
    
    ##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 2010          28  80  85  29  96  45  30  69  70  93
    ## 2011  60  42  63  16  82  81  27  57  10  78  97  51
    ## 2012  36  13
    


    frequency=1/4/12时ts显示形式比较合理,但其他周期数据不甚理想。这是因为ts的本意就是用来存储规则时间序列数据,而年度、季度和月度数据是最常用的。以7天为周期的统计数据相对少见,要想获得一个日历表要费点周折:

    dd <- weekdays(as.Date("2016-10-17") + 0:6)
    nn <- which(weekdays(as.Date("2016-10-01")) == dd)
    print(ts(1:30, freq = 7, start = c(1, nn)), calendar = T)
    
    ##   p1 p2 p3 p4 p5 p6 p7
    ## 1                 1  2
    ## 2  3  4  5  6  7  8  9
    ## 3 10 11 12 13 14 15 16
    ## 4 17 18 19 20 21 22 23
    ## 5 24 25 26 27 28 29 30
    


    data如果是向量,时间序列的class属性为“ts”;如果是matrix,则对象还具有mts(具有相同时间索引的多列数据)和matrix类属性。mts对象用于记录一个时间点上有多个观测指标的数据:

    data(presidents, package = "datasets")
    data(EuStockMarkets, package = "datasets")
    head(presidents)
    
    ## [1] NA 87 82 75 63 50
    
    head(EuStockMarkets)
    
    ##          DAX    SMI    CAC   FTSE
    ## [1,] 1628.75 1678.1 1772.8 2443.6
    ## [2,] 1613.63 1688.5 1750.5 2460.2
    ## [3,] 1606.51 1678.6 1718.0 2448.2
    ## [4,] 1621.04 1684.1 1708.1 2470.4
    ## [5,] 1618.16 1686.6 1723.1 2484.7
    ## [6,] 1610.61 1671.6 1714.3 2466.8
    
    class(presidents)
    
    ## [1] "ts"
    
    class(EuStockMarkets)
    
    ## [1] "mts"    "ts"     "matrix"
    


    函数as.ts()和is.ts()用于ts数据转换和判断。


    2 ts辅助函数

    2.1 获取时间序列属性(tsp)

    每个ts对象都有特定的的start、end和frequency,这三者合称时间序列属性,即tsp(time series properties),可以用tsp()函数获取。R还提供了helper函数用于获取ts的相应属性。

    (ts1 <- ts(dt, start = 2015, frequency = 12))
    
    ##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 2015  28  80  85  29  96  45  30  69  70  93  60  42
    ## 2016  63  16  82  81  27  57  10  78  97  51  36  13
    
    tsp(ts1)
    
    ## [1] 2015.000 2016.917   12.000
    
    start(ts1)
    
    ## [1] 2015    1
    
    end(ts1)
    
    ## [1] 2016   12
    
    frequency(ts1)
    
    ## [1] 12
    
    deltat(ts1)
    
    ## [1] 0.08333333
    


    2.2 获取时间索引

    ts对象的时间索引可以使用time()函数提取,返回值为向量:


    (tt <- time(ts1))
    
    ##           Jan      Feb      Mar      Apr      May      Jun      Jul
    ## 2015 2015.000 2015.083 2015.167 2015.250 2015.333 2015.417 2015.500
    ## 2016 2016.000 2016.083 2016.167 2016.250 2016.333 2016.417 2016.500
    ##           Aug      Sep      Oct      Nov      Dec
    ## 2015 2015.583 2015.667 2015.750 2015.833 2015.917
    ## 2016 2016.583 2016.667 2016.750 2016.833 2016.917
    


    ts的时间索引并不是我们想要的整数或因子形式,cycle()函数可能更有用:

    (ck <- cycle(ts1))
    
    ##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 2015   1   2   3   4   5   6   7   8   9  10  11  12
    ## 2016   1   2   3   4   5   6   7   8   9  10  11  12
    


    注意time和cycle函数获得的也是ts类对象,其tsp和原ts对象完全相同:

    class(tt)
    
    ## [1] "ts"
    
    tsp(tt)
    
    ## [1] 2015.000 2016.917   12.000
    
    tsp(tt) == tsp(ts1)
    
    ## [1] TRUE TRUE TRUE
    
    class(ck)
    
    ## [1] "ts"
    
    tsp(ck)
    
    ## [1] 2015.000 2016.917   12.000
    
    tsp(ck) == tsp(ts1)
    
    ## [1] TRUE TRUE TRUE
    


    3 ts/mts对象操作

    3.1 截取时间窗口

    首先想到的是subset函数,它可以用于取数据子集,很多情况下它获得的数据类型和原对象一样,如data.frame类数据:

    str(airquality)
    
    ## 'data.frame':	153 obs. of  6 variables:
    ##  $ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
    ##  $ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
    ##  $ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
    ##  $ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
    ##  $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
    ##  $ Day    : int  1 2 3 4 5 6 7 8 9 10 ...
    
    str(subset(airquality, !is.na(Ozone)))
    
    ## 'data.frame':	116 obs. of  6 variables:
    ##  $ Ozone  : int  41 36 12 18 28 23 19 8 7 16 ...
    ##  $ Solar.R: int  190 118 149 313 NA 299 99 19 NA 256 ...
    ##  $ Wind   : num  7.4 8 12.6 11.5 14.9 8.6 13.8 20.1 6.9 9.7 ...
    ##  $ Temp   : int  67 72 74 62 66 65 59 61 74 69 ...
    ##  $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
    ##  $ Day    : int  1 2 3 4 6 7 8 9 11 12 ...
    


    但subset函数用于ts对象时获得的仅仅是一个普通向量:

    str(presidents)
    
    ##  Time-Series [1:120] from 1945 to 1975: NA 87 82 75 63 50 43 32 35 60 ...
    
    tsp(presidents)
    
    ## [1] 1945.00 1974.75    4.00
    
    tt <- time(presidents)
    (pp <- subset(presidents, subset = tt > 1960 & tt < 1965))
    
    ##  [1] 62 61 57 72 83 71 78 79 71 62 74 76 64 62 57 80 73 69 69
    
    str(pp)
    
    ##  num [1:19] 62 61 57 72 83 71 78 79 71 62 ...
    


    ts对象子集的提取有一个专门函数window(),即窗口函数,其产生和ts函数类似:

    window(x, start = NULL, end = NULL, frequency = NULL, deltat = NULL, extend = FALSE,
        ...)
    


    常用的参数是start和end。如设置frequency/deltat,要注意真正取到的是哪些值,而且有可能会出错:

    window(presidents, start = 1960, end = c(1969, 4))
    
    ##      Qtr1 Qtr2 Qtr3 Qtr4
    ## 1960   71   62   61   57
    ## 1961   72   83   71   78
    ## 1962   79   71   62   74
    ## 1963   76   64   62   57
    ## 1964   80   73   69   69
    ## 1965   71   64   69   62
    ## 1966   63   46   56   44
    ## 1967   44   52   38   46
    ## 1968   36   49   35   44
    ## 1969   59   65   65   56
    
    window(presidents, start = 1960, end = c(1969, 4), frequency = 1)
    
    ## Time Series:
    ## Start = 1960 
    ## End = 1969 
    ## Frequency = 1 
    ##  [1] 71 72 79 76 80 71 63 44 36 59
    
    window(presidents, start = 1960, end = c(1969, 4), frequency = 2)
    
    ## Time Series:
    ## Start = c(1960, 1) 
    ## End = c(1969, 2) 
    ## Frequency = 2 
    ##  [1] 71 61 72 71 79 62 76 62 80 69 71 69 63 56 44 38 36 35 59 65
    
    window(presidents, start = 1960, end = c(1969, 4), frequency = 3)
    
    ##      Qtr1 Qtr2 Qtr3 Qtr4
    ## 1960   71   62   61   57
    ## 1961   72   83   71   78
    ## 1962   79   71   62   74
    ## 1963   76   64   62   57
    ## 1964   80   73   69   69
    ## 1965   71   64   69   62
    ## 1966   63   46   56   44
    ## 1967   44   52   38   46
    ## 1968   36   49   35   44
    ## 1969   59   65   65   56
    


    3.2 合并数据

    ts对象y可以用cbind函数能有效合并,前提是frequency必需一样。rbind不行。

    ts1 <- ts(sample(1:100, 12), start = 1, freq = 12)
    ts2 <- ts(rnorm(12), start = 1, freq = 12)
    ts3 <- ts(runif(12), start = c(1, 4), freq = 12)
    ts4 <- ts(rnorm(12), start = 2, freq = 4)
    cbind(ts1, ts2)
    
    ##       ts1         ts2
    ## Jan 1  20 -1.38615633
    ## Feb 1  83 -0.44157612
    ## Mar 1  55 -0.49842737
    ## Apr 1  72 -0.88409143
    ## May 1  63  1.25211918
    ## Jun 1  41  1.13397750
    ## Jul 1  69  0.68428102
    ## Aug 1   5  0.22880012
    ## Sep 1  17 -0.23620775
    ## Oct 1  98  1.08904161
    ## Nov 1  75  2.09957979
    ## Dec 1  43  0.03089808
    
    cbind(ts1, ts3)
    
    ##       ts1        ts3
    ## Jan 1  20         NA
    ## Feb 1  83         NA
    ## Mar 1  55         NA
    ## Apr 1  72 0.35403318
    ## May 1  63 0.93236546
    ## Jun 1  41 0.38389533
    ## Jul 1  69 0.93882046
    ## Aug 1   5 0.20153206
    ## Sep 1  17 0.27942223
    ## Oct 1  98 0.43420658
    ## Nov 1  75 0.24039645
    ## Dec 1  43 0.70481722
    ## Jan 2  NA 0.02078979
    ## Feb 2  NA 0.47112608
    ## Mar 2  NA 0.77757363
    
    cbind(ts1, ts4)
    
    ## Error in .cbind.ts(list(...), .makeNamesTs(...), dframe = FALSE, union = TRUE): not all series have the same frequency
    
    rbind(ts1, ts3)
    
    ##           [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
    ## ts1 20.0000000 83.0000000 55.0000000 72.0000000 63.0000000 41.0000000
    ## ts3  0.3540332  0.9323655  0.3838953  0.9388205  0.2015321  0.2794222
    ##           [,7]      [,8]       [,9]       [,10]      [,11]      [,12]
    ## ts1 69.0000000 5.0000000 17.0000000 98.00000000 75.0000000 43.0000000
    ## ts3  0.4342066 0.2403965  0.7048172  0.02078979  0.4711261  0.7775736
    


    3.3 前/后推移:lag函数

    ts1
    
    ##   Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 1  20  83  55  72  63  41  69   5  17  98  75  43
    
    lag(ts1, k = 4)
    
    ##   Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 0                                  20  83  55  72
    ## 1  63  41  69   5  17  98  75  43
    
    lag(ts1, k = -4)
    
    ##   Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 1                  20  83  55  72  63  41  69   5
    ## 2  17  98  75  43
    


    3.4 ts同比差值:diff函数

    diff(ts1, lag = 1)
    
    ##   Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 1  63 -28  17  -9 -22  28 -64  12  81 -23 -32
    
    ts1 - lag(ts1, -1)
    
    ##   Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ## 1  63 -28  17  -9 -22  28 -64  12  81 -23 -32
    
    diff(ts1, lag = -4)
    
    ## Error in diff.ts(ts1, lag = -4): bad value for 'lag' or 'differences'
    
    ts1 - lag(ts1, 4)
    
    ##   Jan Feb Mar Apr May Jun Jul Aug
    ## 1 -43  42 -14  67  46 -57  -6 -38
    


    diff只能是当前值减去历史值,即lag>0;用lag函数更灵活些。


    4 ts/mts对象作图

    R为ts类型对象的plot函数设置了特殊的参数:

    args(plot.ts)
    
    ## function (x, y = NULL, plot.type = c("multiple", "single"), xy.labels, 
    ##     xy.lines, panel = lines, nc, yax.flip = FALSE, mar.multi = c(0, 
    ##         5.1, 0, if (yax.flip) 5.1 else 2.1), oma.multi = c(6, 
    ##         0, 5, 0), axes = TRUE, ...) 
    ## NULL
    


    plot.type参数相对有用:

    plot(EuStockMarkets)
    plot(EuStockMarkets, plot = "single", col = 1:4)
    legend("topleft", colnames(EuStockMarkets), lty = 1, col = 1:4, text.col = 1:4,
        box.col = NA, inset = 0.05)
    






    作者: ZGUANG@LZU

    Created: 2016-10-25 二 11:12

    Emacs 24.4.1 (Org mode 8.2.10)


    展开全文
  • 一个简单的包装器,用于汇总mongodb的时间序列数据。 安装 npm install ts-aggregate 用法 var aggregate = require ( 'ts-aggregate' ) ; var config = { mongoUrl : 'mongodb://localhost:27017/my_app' , ...
  • pyts: a Python package for time series classificationpyts is a Python package for time series classification. It aims to make time series classification easily accessible by providing preproc...

    pyts: a Python package for time series classification

    pyts is a Python package for time series classification. It aims to make time series classification easily accessible by providing preprocessing and utility tools, and implementations of state-of-the-art algorithms. Most of these algorithms transform time series, thus pyts provides several tools to perform these transformations.

    Installation

    Dependencies

    pyts requires:

    Python (>= 3.6)

    NumPy (>= 1.17.5)

    SciPy (>= 1.3.0)

    Scikit-Learn (>=0.22.1)

    Joblib (>=0.12)

    Numba (>=0.48.0)

    To run the examples Matplotlib (>=2.0.0) is required.

    User installation

    If you already have a working installation of numpy, scipy, scikit-learn, joblib and numba, you can easily install pyts using pip

    pip install pyts

    or conda via the conda-forge channel

    conda install -c conda-forge pyts

    You can also get the latest version of pyts by cloning the repository

    git clone https://github.com/johannfaouzi/pyts.git

    cd pyts

    pip install .

    Testing

    After installation, you can launch the test suite from outside the source directory using pytest:

    pytest pyts

    Changelog

    See the changelog for a history of notable changes to pyts.

    Development

    The development of this package is in line with the one of the scikit-learn community. Therefore, you can refer to their Development Guide. A slight difference is the use of Numba instead of Cython for optimization.

    Documentation

    The section below gives some information about the implemented algorithms in pyts. For more information, please have a look at the HTML documentation available via ReadTheDocs.

    Citation

    If you use pyts in a scientific publication, we would appreciate citations to the following paper:

    Johann Faouzi and Hicham Janati. pyts: A python package for time series classification.

    Journal of Machine Learning Research, 21(46):1−6, 2020.

    Bibtex entry:

    @article{JMLR:v21:19-763,

    author = {Johann Faouzi and Hicham Janati},

    title = {pyts: A Python Package for Time Series Classification},

    journal = {Journal of Machine Learning Research},

    year = {2020},

    volume = {21},

    number = {46},

    pages = {1-6},

    url = {http://jmlr.org/papers/v21/19-763.html}

    }

    Implemented features

    Note: the content described in this section corresponds to the master branch, not the latest released version. You may have to install the latest version to use some of these features.

    pyts consists of the following modules:

    bag_of_words: This module consists of a class BagOfWords that transforms time series into bags of words. This approach is quite common in time series classification.

    classification: This module provides implementations of algorithms that can classify time series. Implemented algorithms are KNeighborsClassifier, SAXVSM and BOSSVS.

    datasets: This module provides utilities to make or load toy datasets, as well as fetching datasets from the UEA & UCR Time Series Classification Repository.

    decomposition: This module provides implementations of algorithms that decompose a time series into several time series. The only implemented algorithm is Singular Spectrum Analysis.

    image: This module provides implementations of algorithms that transform time series into images. Implemented algorithms are Recurrence Plot, Gramian Angular Field and Markov Transition Field.

    metrics: This module provides implementations of metrics that are specific to time series. Implemented metrics are Dynamic Time Warping with several variants and the BOSS metric.

    multivariate: This modules provides utilities to deal with multivariate time series. Available tools are MultivariateTransformer and MultivariateClassifier to transform and classify multivariate time series using tools for univariate time series respectively, as well as JointRecurrencePlot and WEASEL+MUSE.

    preprocessing: This module provides most of the scikit-learn preprocessing tools but applied sample-wise (i.e. to each time series independently) instead of feature-wise, as well as an imputer of missing values using interpolation. More information is available at the pyts.preprocessing API documentation.

    transformation: This module provides implementations of algorithms that transform a data set of time series with shape (n_samples, n_timestamps) into a data set with shape (n_samples, n_features). Implemented algorithms are BOSS, ShapeletTransform and WEASEL.

    utils: a simple module with utility functions.

    展开全文
  • R语言具有深厚的统计学渊源,因此基本包中有一种数据类型专门是为时间序列设计的,那就是ts。直观地思考,一个时间序列数据,其实就是一个数值型向量而已。那么时间序列的数值型向量有什么不同的地方呢?如果能够...

    作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。

    R语言具有深厚的统计学渊源,因此基本包中有一种数据类型专门是为时间序列设计的,那就是ts。直观地思考,一个时间序列数据,其实就是一个数值型向量而已。那么时间序列的数值型向量有什么不同的地方呢?如果能够理解这一点,就能够迅速掌握ts的数据结构。

    每一个向量,其实都需要有一个时刻与之对应,而这个时间是我们都能认同的时间系统,即可。比如我们现在要定义1到10这个向量,分别是2001年到2010年的数据。可以这么操作:

    ts(data = 1:10,start = 2001,end = 2010)

    Time Series:

    Start = 2001

    End = 2010

    Frequency = 1

    [1] 1 2 3 4 5 6 7 8 9 10

    这里定义了起止年份,其实也可以只定义起点就可以了,因为默认的周期是1。也就是说上面的代码其实默认参数frequency = 1。如果不是1会出现什么状况?我们定义为4试试看:

    ts(data = 1:10,start = 2001,frequency = 4)

    Qtr1 Qtr2 Qtr3 Qtr4

    2001 1 2 3 4

    2002 5 6 7 8

    2003 9 10

    那么就默认数据是1年有4个季节的数据。同理,如果向量中是连续的月份数值,那么frequency应该设置为12,周则为52,日则为365。比如我们的数据是从2001年2月1日开始的,然后我们拥有的是日尺度的数据,一共有连续400天的数据,那么应该这样设置:

    ts(data = 1:400,start = c(2001,2,1),frequency = 365)

    Time Series:

    Start = c(2001, 2)

    End = c(2002, 36)

    Frequency = 365

    [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

    [25] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

    [49] 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

    [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

    [97] 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

    [121] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

    [145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

    [169] 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192

    [193] 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216

    [217] 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240

    [241] 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264

    [265] 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288

    [289] 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312

    [313] 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336

    [337] 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360

    [361] 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384

    [385] 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400

    总体而言,如果start放的是年份,frequency就是一年你有多少个这种数值(多少天、多少周、多少月)。其实start也可以放其他东西,只要心中有数,一个是步长,一个是频率即可。

    至于时间序列的可视化,基本包的plot肯定是没有问题的,不过这里推荐使用fpp2这个包,是专门针对我们之前所用教程的,它是基于ggplot2的。下面我们就用这个包来试试:

    library(pacman)

    p_load(fpp2)

    autoplot(a10)

    这个包会有很多很多的便捷之处,有待我们后面慢慢探索。先给出包的链接:CRAN - Package fpp2​cran.r-project.org

    展开全文
  • 命令行的时间序列 简单的cli即可收集,列出和绘制时间序列。 我已经构建了它来跟踪路由器中的LTE使用情况,如下所示: $ curl my-wifi-router/cgi?a | grep Usage | ts-cli 还用于跟踪随时间推移的卡桑德拉压实。 ...
  • 在本文中,我们通过时间和上下文对比(TS-TCC)提出了一个无监督的时间序列表示学习框架,从未标记的数据中学习时间序列表示。首先,通过使用弱增强和强增强将原始时间序列数据转换为两个不同但相关的视图。其次,...
  • 记录一下读入csv文件并生成xts对象的过程。 最简单的就是这样一个csv文件内容:  a,b 20150406, 1, 3 20131218, 2, 4  操作步骤如下: ...dat_zoo ("D:/0R/7.csv", index.column = 0, sep = ",", for
  • Datawhale干货译者:陈超,北京大学,数据派THU 本文约7500字,建议阅读20+分钟本文介绍了时间序列的定义、特征并结合实例给出了时间序列在Python中评价指标和方法。...
  • R语言时间序列分析

    千次阅读 多人点赞 2020-05-23 00:29:48
    时间序列 白噪声序列 终止分析,无信息可提取 非白噪声序列 平稳序列 AR/MA/ARMA 非平稳序列 ARIMA,实际中最常见 当拿到一个时间序列的时候,首先分析该时间序列的类型,不同类型的序列有不同...
  • 14 | 如何在Redis中保存时间序列数据? 与发生时间相关的一组数据,就是时间序列数据。 这些数据的特点是没有严格的关系模型,记录的信息可以表示成键和值的关系(例如,一个设备 ID 对应一条记录),所以,并不需要...
  • 特别是我们建议压缩组相关时间序列中使用一组可扩展的模型类型用户定义错误绑定可能零我们命名这个新的类别的基于模型的时间序列多模型组压缩方法压缩我们提出第一个方法和扩展模型类型压缩时间序列组我们建议原语为...
  • 线性插补的方法包括一元线性回归,多元线性回归,岭回归等,有关方法可以参考之前的文章:《TS技术课堂 | 时间序列回归》 季节性+线性插值 经济数据或者季节波动数据,常常不符合简单的线性变化强假设。对这样的数据...
  • 时间序列分析之相关性

    万次阅读 多人点赞 2019-02-20 17:27:27
    两种时间序列的相关性 方差 (Variance) 设随机变量X的均值 E(X) = m,则描述 X 的取值和它的均值 m 之间的偏差程度大小的数字特征就是方差。 但是不能直接用 E(X - m) 来表示方差,因为 E...
  • XGBoost和时间序列

    千次阅读 2021-03-23 09:02:51
    尽管它最初并不是为处理时间序列而设计的,但在这种情况下,仍有许多人使用它。 他们这样做正确吗? 让我们来看看数学如何告诉我们有关该用例的信息。 XGBoost和时间序列 在很多领域和比赛中XGBoost已被用于预测此处...
  • R ts()函数设定时间序列

    千次阅读 2016-03-10 17:35:00
    对于已有的Excel中的数据,如何整理成时间序列格式呢? > setwd("C:\\Users\\Admin-pc\\Desktop")> time<-read.csv("data1.csv")> time$b> a<-ts(time$b, frequency = 1, start = c(1900,1),...
  • 简单来说,时间序列的回归分析需要我们分析历史数据,找到历史数据演化中的特征与模式,其主要分为线性回归分析和非线性回归分析两种类型。 01 模型构建与验证 回归分析多采用机器学习方法,我们首先需要明确机器...
  • 异常检测(Anomaly detection)是目前时序数据分析最成熟的应用之一,定义是从正常的时间序列中识别不正常的事件或行为的过程。有效的异常检测被广泛用于现实世界的很多领域,例如量化...
  • 文章目录一、方差不平稳二、具有趋势性1、回归分析法2、随机趋势3、平滑法 一、方差不平稳 ...序列蕴含着曲线趋势,通常低阶(二阶或三阶)差分可提取出曲线趋势的影响 ,这里效果不好的话,可以先取对数,再
  • Matlab实现时间序列预测

    千次阅读 多人点赞 2021-07-28 16:41:36
    在之前的版本做时间预测是比较麻烦操作的,MathWorks公司对时间序列预测做了详细的解决,跑模型非常简便。 当前网络是非常的非线性网络,增加神经元个数,同时增加delays到4。 利用以上模型和NAR模型进行训练,误差...
  • 我们的理论和估计算法只需要对每个观察到的候选时间序列进行两次条件独立测试,以确定它是否是观察到的目标时间序列的原因。此外,我们对调节集的选择是为了提高信噪比。我们将我们的方法应用于真实数据和广泛的模拟...
  • LSTM多变量时间序列预测

    千次阅读 多人点赞 2021-03-27 20:40:42
    基于LSTM多变量的时间序列预测
  • 每日时间序列分析

    2021-02-13 02:25:09
    这实际上取决于您想要对数据做什么 .1) plot 例如,如果您的目标只是绘制它,那么 "ts" class不适合,因为它不擅长表示日期 . 试试这个,我们在最后的Note中为 sales 和 tt 定义了测试向量 .library(zoo)z plot(z)2)...
  • 混沌时间序列工具

    2021-04-20 04:47:03
    【实例简介】【实例截图】【核心代码】混沌时间序列分析与预测工具箱 Version2.9├── BoxDimension_2D│ ├── BoxDimension_2D.p│ ├── Contents.m│ ├── Main_BoxDimension_2D.m│ └── dla.gif├── ...
  • 时间序列实例

    千次阅读 2019-02-19 14:28:54
    时间序列实例 junjun 2016年2月12日 Rmarkdown脚本及数据集:http://pan.baidu.com/s/1gekA3AV 实例一、使用ARIMA模型对裙子长度预测 ARIMA 模型为平稳时间序列定义的。 因此, 如果你从一个非...
  • 我们的过程包括下面几步:1、时间序列有什么特别之处?2、在Pandas上传和加载时间序列(pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包,类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series...
  • 时间序列定义: 时间序列是按照一定的时间间隔排列的一组数据,其时间间隔可以是任意的时间单位,如小时、日、周月等。比如,每天某产品的用户数量,每个月的销售额,这些数据形成了以一定时间间隔的数据。 通过对...
  • 时间序列分析|时序插值 背景及需求分析 插值 代码 效果预览 平移 代码 效果 效果预览 背景及需求分析 现实生活中很多事件是隔三岔五的进行抽样采集,从而导致时间序列的不等间隔情况,时序的等间隔或不等间隔对时间...
  • 时间序列——滑动窗口

    万次阅读 2019-03-02 18:22:45
    滑动窗口是什么? 滑动窗口就是能够根据指定的单位长度来框住时间序列,从而计算框内的统计指标。相当于一个长度指定的滑块正在刻度尺...#时间序列ts sales= pd.read_csv(r'G:\kaggle\FutureSales\sales_train.csv')...
  • pandas时间序列

    万次阅读 多人点赞 2018-07-25 22:12:35
    时间序列(time series)数据是一种重要的结构化数据形式,。在多个时间点观察或测量到的任何时间都可以形成一段时间序列。很多时间, 时间序列是固定频率的, 也就是说, 数据点是根据某种规律定期出现的(比如每15...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,004
精华内容 9,601
关键字:

ts时间序列