精华内容
下载资源
问答
  • 数据分析 时间序列分析 时间序列预处理
    2021-05-07 23:00:40

    一.概述
    1.时间序列的预处理:

    对观测值序列的纯随机性和平稳性的检测称为"时间序列的预处理",根据检测结果可将序列分为不同类型.记γ(s,t)=Cov(Xs,Xt)
    

    2.概率分布族:

    对时间序列 { X t , t ∈ T } , ∀ m ∈ Z + , t 1 , t 2 . . . t m ∈ T \{X_t,t\in T\},∀m\in Z^+,t_1,t_2...t_m\in T {Xt,tT},mZ+,t1,t2...tmT,将 X t 1 , X t 2 . . . X t m X_{t_1},X_{t_2}...X_{t_m} Xt1,Xt2...Xtm的联合概率分布记为 F t 1 , t 2 . . . t m ( x 1 , x 2 . . . x m ) F_{t_1,t_2...t_m}(x_1,x_2...x_m) Ft1,t2...tm(x1,x2...xm),则称 { F t 1 , t 2 . . . t m ( x 1 , x 2 . . . x m ) , ∀ m ∈ Z + , ∀ t 1 , t 2 . . . t m ∈ T } \{F_{t_1,t_2...t_m}(x_1,x_2...x_m),∀m\in Z^+,∀t_1,t_2...t_m\in T\} {Ft1,t2...tm(x1,x2...xm),mZ+,t1,t2...tmT} { X t } \{X_t\} {Xt}概率分布族

    二.平稳性检测
    1.概念

    "平稳序列"(Stationary Series)是指在某1常数附近波动且波动幅度有限的序列.具体来说,要求期望/方差为常数而协方差只与时期间隔有关
    

    (1)严平稳:

    "严平稳"(Strictly Stationary)/"强平稳"(Strongly Stationary)1种条件比较苛刻的平稳性定义.其认为只有当序列所有的统计性质都不随时
    间推移而变化时,该序列才是平稳的.也就是说,严平稳序列需要满足如下性质:
    

    { X t } \{X_t\} {Xt}为1个时间序列,若对 ∀ m ∈ Z + , ∀ t 1 , t 2 . . . t m ∈ T , ∀ τ ∈ Z ∀m\in Z^+,∀t_1,t_2...t_m\in T,∀\tau\in Z mZ+,t1,t2...tmT,τZ,有 F t 1 , t 2 . . . t m ( x 1 , x 2 . . . x m ) = F t 1 + τ , t 2 + τ . . . t m + τ ( x 1 , x 2 . . . x m ) F_{t_1,t_2...t_m}(x_1,x_2...x_m)=F_{t_{1+\tau},t_{2+\tau}...t_{m+\tau}}(x_1,x_2...x_m) Ft1,t2...tm(x1,x2...xm)=Ft1+τ,t2+τ...tm+τ(x1,x2...xm),则称 { X t } \{X_t\} {Xt}为1个严平稳时间序列强平稳时间序列

    一把来说很难证明某时间序列是强平稳的,因此实践中通常使用弱平稳条件
    

    (2)宽平稳:

    "宽/弱平稳"(Weak Stationary)/"广义平稳"(Wide-Sense Stationary)是使用序列的特征统计量来定义的1种平稳性.其认为序列的统计性质主要由
    其低阶矩决定,故只要保证序列的低阶矩(此处是2阶矩)平稳,就能保证序列的主要性质近似稳定.也就是说,宽平稳序列需要满足如下性质:
    

    { X t } \{X_t\} {Xt}为1个时间序列,若对 ∀ t , k ∈ T ∀t,k\in T t,kT,有 ① 均 值 满 足 : E ( X t ) = μ ˉ ② 二 阶 矩 满 足 : E ( X t 2 ) < + ∞ ③ 自 协 方 差 满 足 : γ ( 0 , k ) = γ ( t , t + k ) ①均值满足:E(X_t)=\bar{μ}\\②二阶矩满足:E(X_t^2)<+\infty\\③自协方差满足:γ(0,k)=γ(t,t+k) :E(Xt)=μˉ:E(Xt2)<+:γ(0,k)=γ(t,t+k)则称 { X t } \{X_t\} {Xt}为1个宽平稳时间序列弱平稳时间序列二阶平稳时间序列广义平稳时间序列

    (3)严平稳与宽平稳的关系:

    两种平稳过程并没有包含关系,即弱平稳不一定是强平稳,强平稳也不一定是弱平稳 ( ( (因为 E ( X t 2 ) E(X_t^2) E(Xt2)可能不存在 ) ) ).例如,若 { Z t } \{Z_t\} {Zt}独立服从柯西分布,则其是强平稳时间序列,但由于柯西分布的期望与方差不存在,故其不是弱平稳时间序列.但当某严平稳时间序列满足 E ( X t 2 ) < + ∞ E(X_t^2)<+\infty E(Xt2)<+时,其一定也是宽平稳时间序列.另外,当序列服从多元正态分布时,宽平稳可推出严平稳

    2.相关统计性质
    (1)均值:

    由于每个 X i X_i Xi的均值均相等,故 μ i = μ = ∑ j = 1 n x j n   ( i = 1 , 2... n ) μ_i=μ=\frac{\displaystyle\sum_{j=1}^nx_j}{n}\,(i=1,2...n) μi=μ=nj=1nxj(i=1,2...n)

    (2)方差与协方差与自相关系数:

    对宽平稳时间序列 { X t , t ∈ T } , ∀ k ∈ Z \{X_t,t\in T\},∀k\in Z {Xt,tT},kZ,定义延迟 k k k阶自协方差函数 r ( k ) r(k) r(k) r ( k ) = γ ( t , t + k ) r(k)=γ(t,t+k) r(k)=γ(t,t+k)其估计量为 r ^ ( k ) = ∑ t = 1 n − k ( x t − x ˉ ) ( x t + k − x ˉ ) n − k   ( 0 < k < n ) \hat{r}(k)=\frac{\displaystyle\sum_{t=1}^{n-k}(x_t-\bar{x})(x_{t+k}-\bar{x})}{n-k}\,(0<k<n) r^(k)=nkt=1nk(xtxˉ)(xt+kxˉ)(0<k<n)从而可知宽平稳时间序列具有常数方差 D ( X t ) = γ ( t , t ) = r ( 0 ) D(X_t)=γ(t,t)=r(0) D(Xt)=γ(t,t)=r(0)其估计量为 r ^ ( 0 ) = ∑ t = 1 n ( x t − x ˉ ) 2 n − 1 \hat{r}(0)=\frac{\displaystyle\sum_{t=1}^n(x_t-\bar{x})^2}{n-1} r^(0)=n1t=1n(xtxˉ)2以保证无偏性.定义延迟 k k k阶自相关系数 ρ ( k ) ρ(k) ρ(k) ρ ( k ) = γ ( t , t + k ) D ( X t ) D ( X t + k ) = r ( k ) r ( 0 ) ρ(k)=\frac{γ(t,t+k)}{\sqrt{D(X_t)D(X_{t+k})}}=\frac{r(k)}{r(0)} ρ(k)=D(Xt)D(Xt+k) γ(t,t+k)=r(0)r(k) ρ ( k ) ρ(k) ρ(k)具有如下性质 ① 规 范 性 : ρ ( 0 ) = 1 且 ∣ ρ ( k ) ∣ ≤ 1   ( k ∈ Z ) ② 对 称 性 : ρ ( k ) = ρ ( − k ) ③ 非 负 定 性 : 自 相 关 系 数 矩 阵 Γ m 为 对 称 非 负 定 矩 阵 , 其 中 Γ m = [ ρ ( 0 ) ρ ( 1 ) . . . ρ ( m − 1 ) ρ ( 1 ) ρ ( 0 ) . . . ρ ( m − 2 ) . . . . . . . . . . . . ρ ( m − 1 ) ρ ( m − 2 ) . . . ρ ( 0 ) ] ④ 非 唯 一 性 : 由 模 型 可 唯 一 确 定 自 相 关 系 数 , 但 由 自 相 关 系 数 不 能 唯 一 确 定 模 型 ①规范性:ρ(0)=1且|ρ(k)|≤1\,(k∈Z)\\②对称性:ρ(k)=ρ(-k)\\③非负定性:自相关系数矩阵Γ_m为对称非负定矩阵,其中\\Γ_m=\left[\begin{matrix}ρ(0)&ρ(1)&...&ρ(m-1)\\ρ(1)&ρ(0)&...&ρ(m-2)\\...&...&...&...\\ρ(m-1)&ρ(m-2)&...&ρ(0)\end{matrix}\right]\\④非唯一性:由模型可唯一确定自相关系数,但由自相关系数不能唯一确定模型 :ρ(0)=1ρ(k)1(kZ):ρ(k)=ρ(k):Γm,Γm=ρ(0)ρ(1)...ρ(m1)ρ(1)ρ(0)...ρ(m2)............ρ(m1)ρ(m2)...ρ(0):,其估计量为 ρ ^ 2 ( k ) = r ^ ( k ) r ^ ( 0 )   ( 0 < k < n ) \hat{ρ}^2(k)=\frac{\hat{r}(k)}{\hat{r}(0)}\,(0<k<n) ρ^2(k)=r^(0)r^(k)(0<k<n) k < < n k<<n k<<n时,可简化为 ρ ^ 2 ( k ) = ∑ t = 1 n − k ( x t − x ˉ ) ( x t + k − x ˉ ) ∑ t = 1 n ( x t − x ˉ ) 2   ( 0 < k < n ) \hat{ρ}^2(k)=\frac{\displaystyle\sum_{t=1}^{n-k}(x_t-\bar{x})(x_{t+k}-\bar{x})}{\displaystyle\sum_{t=1}^n(x_t-\bar{x})^2}\,(0<k<n) ρ^2(k)=t=1n(xtxˉ)2t=1nk(xtxˉ)(xt+kxˉ)(0<k<n)

    3.检测方法:

    ①图检验:这种方法操作简单但带有主观性
      Ⅰ.时序图检验:平稳序列的时序图应显示序列值始终在1个常数附近波动,且波动范围有界、无明显趋势及周期特征
      Ⅱ.自相关图检验:平稳序列通常具有短期相关性,即其协方差随延迟期数的增大而衰减的速度比非平稳序列要快
    ②构造检验统计量进行检验
      Ⅰ.单位根检验:如果序列中存在单位根,就是非平稳序列
        i.DF检验
        ii.ADF检验
        iii.PP检验
    

    4.平稳时间序列的意义:

    ①时间序列结构的特殊性:包含多个随机变量,但每个变量只有1个观测值
    ②平稳性的意义:减少了随机变量个数,增加了待估变量观测值的数量,从而降低了时间序列分析的难度并提高了特征统计量的估计精度
    

    三.纯随机性检测
    1.概念:

    "纯随机序列"(Purely Random Series)又称"白噪声序列"(White Noise Series),是指各序列值间没有任何关系("没有记忆")且具有相同均值和
    方差的序列.即纯随机序列需要满足如下性质:
    

    ① E ( X t ) = μ ② γ ( t , s ) = { 0   ( t ≠ s ) σ 2   ( t = s ) ①E(X_t)=μ\\②γ(t,s)=\begin{cases}0\,(t≠s)\\σ^2\,(t=s)\end{cases} E(Xt)=μγ(t,s)={0(t=s)σ2(t=s)
    在这里插入图片描述

    2.相关统计性质
    (1)纯随机性:

    即满足 r ( k ) = 0   ( k ≠ 0 ) r(k)=0\,(k≠0) r(k)=0(k=0)这说明纯随机序列的各序列值间没有任何关系(即没有记忆).也就是说,这类序列进行的是完全无序的随机波动,是没有任何信息可供提取的平稳序列,因而应终止对这类序列的分析.反之,非春随机序列的序列值间存在着一定程度的相互关系(称为相关信息).时间序列分析的目的就是提取相关信息.一旦所有相关信息都被提取出来了,那么剩下的残差序列应为春随机序列.故纯随机性还可用于判断相关信息的提取是否充分

    (2)方差齐性:

    即满足 D ( X t ) = r ( 0 ) = σ 2 D(X_t)=r(0)=σ^2 D(Xt)=r(0)=σ2根据马尔可夫定理,只有方差齐性假定成立时,用最小二乘法得到的位置参数估计值才是准确有效的方差最小线性无偏估计;否则,拟合模型的精度会受到很大影响.另外,进行模型拟合时需要检验拟合模型的残差是否满足方差齐性假定.如果不满足,就说明残差序列还不是白噪声序列(即拟合模型没有充分提取随机序列中的相关信息),这时拟合模型的精度是值得怀疑的.如果随机序列不满足方差齐性假定,就需要使用条件异方差模型来处理异方差信息

    (3)巴利特定理:

    纯随机时间序列满足巴利特定理(Barlett Theorem),即对1个期数为 n n n的纯随机时间序列,其自相关系数满足 ρ ^ ( k ) ∼ N ( 0 , 1 n )   ( k ≠ 0 ) \hat{ρ}(k)\sim N(0,\frac{1}{n})\,(k\ne0) ρ^(k)N(0,n1)(k=0)

    (4)克努耶定理:

    纯随机时间序列满足克努耶定理(Quenouille Theorem),即对1个期数为 n n n的纯随机时间序列,其偏自相关系数满足 ρ ^ x t − 1 . . . x t − k + 1 ( k ) ∼ N ( 0 , 1 n )   ( k ≠ 0 ) \hat{ρ}_{x_{t-1}...x_{t-k+1}}(k)\sim N(0,\frac{1}{n})\,(k\ne0) ρ^xt1...xtk+1(k)N(0,n1)(k=0)

    3.检测方法
    (1)检验假设:

    原假设为: ρ ( i ) = 0   ( i = 1 , 2... m , m ≥ 1 ) ρ(i)=0\,(i=1,2...m,m\geq1) ρ(i)=0(i=1,2...m,m1)实践中通常取 m = 6 m=6 m=6 12 12 12.这是因为平稳序列通常具有短期相关性,相关关系通常只出现在延迟期数较小的序列值间.另一方面,如果考虑的期数过多,短期相关性可能被掩盖,因为平稳序列的协方差会随延迟期数的增大而迅速衰减,使延迟期数较大的自相关系数均为0

    (2)检验统计量:

    通常是构造检验统计量来进行检验,包括:
    ①Q统计量:即检验是否满足 Q = n ∑ k = 1 m ρ ^ k 2 ∼ χ 2 ( m ) Q=n\displaystyle\sum_{k=1}^m\hat{ρ}^2_k\sim\chi^2(m) Q=nk=1mρ^k2χ2(m);该统计量在样本数较少时效果不佳
    ②LB统计量:即检验是否满足 L B = n ( n + 2 ) ∑ k = 1 m ρ ^ k 2 n − k ∼ χ 2 ( m ) LB=n(n+2)\displaystyle\sum_{k=1}^m\frac{\hat{ρ}^2_k}{n-k}\sim\chi^2(m) LB=n(n+2)k=1mnkρ^k2χ2(m);该统计量更常用
    其中 n n n为序列长度, m m m为要检验的最大的延迟期数, ρ ^ ( k ) \hat{ρ}(k) ρ^(k)为延迟 k k k阶自相关系数的估计量

    更多相关内容
  • Jupyter中的时间序列预处理工作室:Jupyter笔记本中的时间序列数据预处理Studio
  • 时间序列数据预处理

    2022-03-19 00:15:19
    时间序列数据随处可见,要进行时间序列分析,我们必须先对数据进行预处理。时间序列预处理技术对数据建模的准确性有重大影响。在本文中,我们将主要讨论以下几点:时间序列数据的定义及其重要性。时间序...

    时间序列数据随处可见,要进行时间序列分析,我们必须先对数据进行预处理。时间序列预处理技术对数据建模的准确性有重大影响。

    在本文中,我们将主要讨论以下几点:

    • 时间序列数据的定义及其重要性。

    • 时间序列数据的预处理步骤。

    • 构建时间序列数据,查找缺失值,对特征进行去噪,并查找数据集中存在的异常值。

    首先,让我们先了解时间序列的定义:

    时间序列是在特定时间间隔内记录的一系列均匀分布的观测值。

    时间序列的一个例子是黄金价格。在这种情况下,我们的观察是在固定时间间隔后一段时间内收集的黄金价格。时间单位可以是分钟、小时、天、年等。但是任何两个连续样本之间的时间差是相同的。

    在本文中,我们将看到在深入研究数据建模部分之前应执行的常见时间序列预处理步骤和与时间序列数据相关的常见问题。

    时间序列数据预处理

    时间序列数据包含大量信息,但通常是不可见的。与时间序列相关的常见问题是无序时间戳、缺失值(或时间戳)、异常值和数据中的噪声。在所有提到的问题中,处理缺失值是最困难的一个,因为传统的插补(一种通过替换缺失值来保留大部分信息来处理缺失数据的技术)方法在处理时间序列数据时不适用。为了分析这个预处理的实时分析,我们将使用 Kaggle 的 Air Passenger 数据集。

    时间序列数据通常以非结构化格式存在,即时间戳可能混合在一起并且没有正确排序。另外在大多数情况下,日期时间列具有默认的字符串数据类型,在对其应用任何操作之前,必须先将数据时间列转换为日期时间数据类型。让我们将其实现到我们的数据集中:

    import pandas as pd
    
    passenger = pd.read_csv('AirPassengers.csv')
    passenger['Date'] = pd.to_datetime(passenger['Date']) 
    passenger.sort_values(by=['Date'], inplace=True, ascending=True)

    6a582d0b86f66d2cc6799b6d6165ce6b.png

    时间序列中的缺失值

    处理时间序列数据中的缺失值是一项具有挑战性的任务。传统的插补技术不适用于时间序列数据,因为接收值的顺序很重要。为了解决这个问题,我们有以下插值方法:

    插值是一种常用的时间序列缺失值插补技术。它有助于使用周围的两个已知数据点估计丢失的数据点。这种方法简单且最直观。处理时序数据时可以使用以下的方法:

    • 基于时间的插值

    • 样条插值

    • 线性插值

    让我们看看我们的数据在插补之前的样子:

    from matplotlib.pyplot import figure
    import matplotlib.pyplot as plt
    
    figure(figsize=(12, 5), dpi=80, linewidth=10)
    plt.plot(passenger['Date'], passenger['Passengers'])
    plt.title('Air Passengers Raw Data with Missing Values')
    plt.xlabel('Years', fontsize=14)
    plt.ylabel('Number of Passengers', fontsize=14)
    plt.show()

    620770f266fcdf9e3c7695c208cdc09a.png

    让我们看看以上三个方法的结果:

    passenger[‘Linear’] = passenger[‘Passengers’].interpolate(method=’linear’)
    passenger[‘Spline order 3’] = passenger[‘Passengers’].interpolate(method=’spline’, order=3)
    passenger[‘Time’] = passenger[‘Passengers’].interpolate(method=’time’)
    
    methods = ['Linear', 'Spline order 3', 'Time']
    
    from matplotlib.pyplot import figure
    import matplotlib.pyplot as plt
    for method in methods:
        figure(figsize=(12, 4), dpi=80, linewidth=10)
        plt.plot(passenger["Date"], passenger[method])
        plt.title('Air Passengers Imputation using: ' + types)
        plt.xlabel("Years", fontsize=14)
        plt.ylabel("Number of Passengers", fontsize=14)
        plt.show()

    ec184ac5d4db41611d25af5b1b34a2bf.png

    所有的方法都给出了还不错的结果。当缺失值窗口(缺失数据的宽度)很小时,这些方法更有意义。但是如果丢失了几个连续的值,这些方法就更难估计它们。

    时间序列去噪

    时间序列中的噪声元素可能会导致严重问题,所以一般情况下在构建任何模型之前都会有去除噪声的操作。最小化噪声的过程称为去噪。以下是一些通常用于从时间序列中去除噪声的方法:

    滚动平均值

    滚动平均值是先前观察窗口的平均值,其中窗口是来自时间序列数据的一系列值。为每个有序窗口计算平均值。这可以极大地帮助最小化时间序列数据中的噪声。

    让我们在谷歌股票价格上应用滚动平均值:

    rolling_google = google_stock_price['Open'].rolling(20).mean()
    plt.plot(google_stock_price['Date'], google_stock_price['Open'])
    plt.plot(google_stock_price['Date'], rolling_google)
    plt.xlabel('Date')
    plt.ylabel('Stock Price')
    plt.legend(['Open','Rolling Mean'])
    plt.show()

    47553d0a17d01920b797f6c26d52aedd.png

    傅里叶变换

    傅里叶变换可以通过将时间序列数据转换到频域来帮助去除噪声,我们可以过滤掉噪声频率。然后应用傅里叶反变换得到滤波后的时间序列。我们用傅里叶变换来计算谷歌股票价格。

    denoised_google_stock_price = fft_denoiser(value, 0.001, True)
    plt.plot(time, google_stock['Open'][0:300])
    plt.plot(time, denoised_google_stock_price)
    plt.xlabel('Date', fontsize = 13)
    plt.ylabel('Stock Price', fontsize = 13)
    plt.legend([‘Open’,’Denoised: 0.001'])
    plt.show()

    a0d69296c5ff6b3d80a61615a0a6d95a.png

    时间序列中的离群值检测

    时间序列中的离群值是指趋势线的突然高峰或下降。导致离群值可能有多种因素。让我们看一下检测离群值的可用方法:

    基于滚动统计的方法

    这种方法最直观,适用于几乎所有类型的时间序列。在这种方法中,上限和下限是根据特定的统计量度创建的,例如均值和标准差、Z 和 T 分数以及分布的百分位数。例如,我们可以将上限和下限定义为:

    09d5284f743f2485e8f4097294bae8c8.png

    取整个序列的均值和标准差是不可取的,因为在这种情况下,边界将是静态的。边界应该在滚动窗口的基础上创建,就像考虑一组连续的观察来创建边界,然后转移到另一个窗口。该方法是一种高效、简单的离群点检测方法。

    孤立森林

    顾名思义,孤立森林是一种基于决策树的异常检测机器学习算法。它通过使用决策树的分区隔离给定特征集上的数据点来工作。换句话说,它从数据集中取出一个样本,并在该样本上构建树,直到每个点都被隔离。为了隔离数据点,通过选择该特征的最大值和最小值之间的分割来随机进行分区,直到每个点都被隔离。特征的随机分区将为异常数据点在树中创建更短的路径,从而将它们与其余数据区分开来。

    4e5907f7f3b825a88c62ca1f2fb82900.png

    K-means 聚类

    K-means 聚类是一种无监督机器学习算法,经常用于检测时间序列数据中的异常值。该算法查看数据集中的数据点,并将相似的数据点分组为 K 个聚类。通过测量数据点到其最近质心的距离来区分异常。如果距离大于某个阈值,则将该数据点标记为异常。K-Means 算法使用欧几里得距离进行比较。

    222c9f25997433fd8450bcc873034288.png

    可能的面试问题

    如果一个人在简历中写了一个关于时间序列的项目,那么面试官可以从这个主题中提出这些可能的问题:

    • 预处理时间序列数据的方法有哪些,与标准插补方法有何不同?

    • 时间序列窗口是什么意思?

    • 你听说过孤立森林吗?如果是,那么你能解释一下它是如何工作的吗?

    • 什么是傅立叶变换,我们为什么需要它?

    • 填充时间序列数据中缺失值的不同方法是什么?

    总结

    在本文中,我们研究了一些常见的时间序列数据预处理技术。我们从排序时间序列观察开始;然后研究了各种缺失值插补技术。因为我们处理的是一组有序的观察结果,所以时间序列插补与传统插补技术不同。此外,还将一些噪声去除技术应用于谷歌股票价格数据集,最后讨论了一些时间序列的异常值检测方法。使用所有这些提到的预处理步骤可确保高质量数据,为构建复杂模型做好准备。

    作者:Shashank Gupta

    推荐阅读:

    我的2022届互联网校招分享

    我的2021总结

    浅谈算法岗和开发岗的区别

    互联网校招研发薪资汇总

    对于时间序列,你所能做的一切.

    什么是时空序列问题?这类问题主要应用了哪些模型?主要应用在哪些领域?

    公众号:AI蜗牛车

    保持谦逊、保持自律、保持进步

    94ecfc9502149f6f032b50db04358d4d.png

    发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)

    发送【1222】获取一份不错的leetcode刷题笔记

    发送【AI四大名著】获取四本经典AI电子书

    展开全文
  • 时间序列数据预处理

    千次阅读 2022-02-11 10:46:39
    时间序列数据随处可见,要进行时间序列分析,我们必须先对数据进行预处理。 时间序列预处理技术对数据建模的准确性有重大影响。 在本文中,我们将主要讨论以下几点: 时间序列数据的定义及其重要性。 时间序列数据...

    时间序列数据随处可见,要进行时间序列分析,我们必须先对数据进行预处理。 时间序列预处理技术对数据建模的准确性有重大影响。

    在本文中,我们将主要讨论以下几点:

    • 时间序列数据的定义及其重要性。
    • 时间序列数据的预处理步骤。
    • 构建时间序列数据,查找缺失值,对特征进行去噪,并查找数据集中存在的异常值。

    首先,让我们先了解时间序列的定义:

    时间序列是在特定时间间隔内记录的一系列均匀分布的观测值。

    时间序列的一个例子是黄金价格。在这种情况下,我们的观察是在固定时间间隔后一段时间内收集的黄金价格。时间单位可以是分钟、小时、天、年等。但是任何两个连续样本之间的时间差是相同的。

    在本文中,我们将看到在深入研究数据建模部分之前应执行的常见时间序列预处理步骤和与时间序列数据相关的常见问题。

    时间序列数据预处理

    时间序列数据包含大量信息,但通常是不可见的。 与时间序列相关的常见问题是无序时间戳、缺失值(或时间戳)、异常值和数据中的噪声。 在所有提到的问题中,处理缺失值是最困难的一个,因为传统的插补(一种通过替换缺失值来保留大部分信息来处理缺失数据的技术)方法在处理时间序列数据时不适用。 为了分析这个预处理的实时分析,我们将使用 Kaggle 的 Air Passenger 数据集。

    时间序列数据通常以非结构化格式存在,即时间戳可能混合在一起并且没有正确排序。 另外在大多数情况下,日期时间列具有默认的字符串数据类型,在对其应用任何操作之前,必须先将数据时间列转换为日期时间数据类型。 让我们将其实现到我们的数据集中:

    import pandas as pd
    
    passenger = pd.read_csv('AirPassengers.csv')
    passenger['Date'] = pd.to_datetime(passenger['Date']) 
    passenger.sort_values(by=['Date'], inplace=True, ascending=True)
    
    

    时间序列中的缺失值

    处理时间序列数据中的缺失值是一项具有挑战性的任务。 传统的插补技术不适用于时间序列数据,因为接收值的顺序很重要。 为了解决这个问题,我们有以下插值方法:

    插值是一种常用的时间序列缺失值插补技术。 它有助于使用周围的两个已知数据点估计丢失的数据点。 这种方法简单且最直观。 处理时序数据时可以使用以下的方法:

    • 基于时间的插值
    • 样条插值
    • 线性插值

    让我们看看我们的数据在插补之前的样子:

    from matplotlib.pyplot import figure
    import matplotlib.pyplot as plt
    
    figure(figsize=(12, 5), dpi=80, linewidth=10)
    plt.plot(passenger['Date'], passenger['Passengers'])
    plt.title('Air Passengers Raw Data with Missing Values')
    plt.xlabel('Years', fontsize=14)
    plt.ylabel('Number of Passengers', fontsize=14)
    plt.show()
    

    让我们看看以上三个方法的结果:

    passenger[‘Linear’] = passenger[‘Passengers’].interpolate(method=’linear’)
    passenger[‘Spline order 3’] = passenger[‘Passengers’].interpolate(method=’spline’, order=3)
    passenger[‘Time’] = passenger[‘Passengers’].interpolate(method=’time’)
    
    methods = ['Linear', 'Spline order 3', 'Time']
    
    from matplotlib.pyplot import figure
    import matplotlib.pyplot as plt
    for method in methods:
        figure(figsize=(12, 4), dpi=80, linewidth=10)
        plt.plot(passenger["Date"], passenger[method])
        plt.title('Air Passengers Imputation using: ' + types)
        plt.xlabel("Years", fontsize=14)
        plt.ylabel("Number of Passengers", fontsize=14)
        plt.show()
    

    所有的方法都给出了还不错的结果。当缺失值窗口(缺失数据的宽度)很小时,这些方法更有意义。但是如果丢失了几个连续的值,这些方法就更难估计它们。

    时间序列去噪

    时间序列中的噪声元素可能会导致严重问题,所以一般情况下在构建任何模型之前都会有去除噪声的操作。 最小化噪声的过程称为去噪。 以下是一些通常用于从时间序列中去除噪声的方法:

    滚动平均值

    滚动平均值是先前观察窗口的平均值,其中窗口是来自时间序列数据的一系列值。 为每个有序窗口计算平均值。 这可以极大地帮助最小化时间序列数据中的噪声。

    让我们在谷歌股票价格上应用滚动平均值:

    rolling_google = google_stock_price['Open'].rolling(20).mean()
    plt.plot(google_stock_price['Date'], google_stock_price['Open'])
    plt.plot(google_stock_price['Date'], rolling_google)
    plt.xlabel('Date')
    plt.ylabel('Stock Price')
    plt.legend(['Open','Rolling Mean'])
    plt.show()
    

    傅里叶变换

    傅里叶变换可以通过将时间序列数据转换到频域来帮助去除噪声,我们可以过滤掉噪声频率。然后应用傅里叶反变换得到滤波后的时间序列。我们用傅里叶变换来计算谷歌股票价格。

    denoised_google_stock_price = fft_denoiser(value, 0.001, True)
    plt.plot(time, google_stock['Open'][0:300])
    plt.plot(time, denoised_google_stock_price)
    plt.xlabel('Date', fontsize = 13)
    plt.ylabel('Stock Price', fontsize = 13)
    plt.legend([‘Open’,’Denoised: 0.001'])
    plt.show()
    

    时间序列中的离群值检测

    时间序列中的离群值是指趋势线的突然高峰或下降。 导致离群值可能有多种因素。 让我们看一下检测离群值的可用方法:

    基于滚动统计的方法

    这种方法最直观,适用于几乎所有类型的时间序列。 在这种方法中,上限和下限是根据特定的统计量度创建的,例如均值和标准差、Z 和 T 分数以及分布的百分位数。 例如,我们可以将上限和下限定义为:

    取整个序列的均值和标准差是不可取的,因为在这种情况下,边界将是静态的。边界应该在滚动窗口的基础上创建,就像考虑一组连续的观察来创建边界,然后转移到另一个窗口。该方法是一种高效、简单的离群点检测方法。

    孤立森林

    顾名思义,孤立森林是一种基于决策树的异常检测机器学习算法。 它通过使用决策树的分区隔离给定特征集上的数据点来工作。 换句话说,它从数据集中取出一个样本,并在该样本上构建树,直到每个点都被隔离。 为了隔离数据点,通过选择该特征的最大值和最小值之间的分割来随机进行分区,直到每个点都被隔离。 特征的随机分区将为异常数据点在树中创建更短的路径,从而将它们与其余数据区分开来。

    K-means 聚类

    K-means 聚类是一种无监督机器学习算法,经常用于检测时间序列数据中的异常值。 该算法查看数据集中的数据点,并将相似的数据点分组为 K 个聚类。 通过测量数据点到其最近质心的距离来区分异常。 如果距离大于某个阈值,则将该数据点标记为异常。 K-Means 算法使用欧几里得距离进行比较。

    可能的面试问题

    如果一个人在简历中写了一个关于时间序列的项目,那么面试官可以从这个主题中提出这些可能的问题:

    • 预处理时间序列数据的方法有哪些,与标准插补方法有何不同?
    • 时间序列窗口是什么意思?
    • 你听说过孤立森林吗? 如果是,那么你能解释一下它是如何工作的吗?
    • 什么是傅立叶变换,我们为什么需要它?
    • 填充时间序列数据中缺失值的不同方法是什么?

    总结

    在本文中,我们研究了一些常见的时间序列数据预处理技术。 我们从排序时间序列观察开始; 然后研究了各种缺失值插补技术。 因为我们处理的是一组有序的观察结果,所以时间序列插补与传统插补技术不同。此外,还将一些噪声去除技术应用于谷歌股票价格数据集,最后讨论了一些时间序列的异常值检测方法。 使用所有这些提到的预处理步骤可确保高质量数据,为构建复杂模型做好准备。

    https://www.overfit.cn/post/9274a9c482b0431a802f5318c15cd76d

    作者:Shashank Gupta

    展开全文
  • 时间序列预处理

    千次阅读 2020-12-19 21:43:55
           ...时间序列预处理流程图(侵删) 下面来详细介绍每个阶段的处理 数据预处理流程图 数据预处理-平稳性检验        

           数据预处理的主要流程为:数据清洗、特征选择、归一化处理、划分窗口、Shuffle和划分数据集等五个阶段。选用何种方法没有统一的标准,只能根据不同类型的分析数据和业务需求,在对数据特性做了充分的理解之后,再选择与其最适配的数据预处理技术。

    时间序列预处理流程图(侵删)

    下面来详细介绍每个阶段的处理

    在这里插入图片描述

    数据预处理流程图

    数据预处理-平稳性检验

           一种是根据时序图和自相关图做出判断的图检验方法;一种是构造检验统计量进行假设检验的方法。 图检验操作简便,运用广泛,它的缺点是判别结论带有很强的主观色彩。所以最好能用统计检验的方法加以辅助判断。目前最常用的平稳性检验方法是单位根检验(unit root test)。
    1.时序图检验
           根据平稳时间序列均值、方差Wie常数的性质,平稳时间序列的时序图应该是显示出该数列始终在一个常数值附近随机波动,而且波动的范围有界的特点。如下图中,图1为非平稳序列,图2为平稳序列。
    在这里插入图片描述

    图1:非平稳序列

    在这里插入图片描述

    图2:平稳序列

    2.自相关图检验
           自相关图就是一个平面二维坐标垂线图,一个坐标轴表示延迟时期数,另一个坐标轴表示自相关系数,通过以垂线表示自相关系数的大小。
           平稳时间序列通常具有短期相关性,该性质使用自相关系数来描述就是随着延迟期数k的增加,平稳时间序列的自相关系数ρ会很快地衰减为0;反之,非平稳序列的自相关系数ρ衰减向0的速度通常会比较慢。

    数据预处理-清洗转换

           当数据质量校验完成后,针对有问题的数据要进行的是数据清洗和转换,另外还包括对正常数据的转换。数据清洗的主要作用包括:纠正错误、删除重复项、统一规格、转换构造。

    一、纠正错误

           错误数据是数据源环境中经常出现的一类问题。数据错误的形式包括:
           数据值错误: 数据直接是错误的,例如超过固定域集、超过极值、拼写错误、属性错误、源错误等。
    数据类型错误: 数据的存储类型不符合实际情况,如日期类型的以数值型存储,时间戳存为字符串等。
           数据编码错误: 数据存储的编码错误,例如将UTF-8写成UTF-80。
           数据格式错误: 数据的存储格式问题,如半角全角字符、中英文字符等。
           数据异常错误: 如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期越界、数据前后有不可见字符等。
           依赖冲突: 某些数据字段间存储依赖关系,例如城市与邮政编码应该满足对应关系,但可能存在二者不匹配的问题。
           多值错误: 大多数情况下,每个字段存储的是单个值,但也存在一个字段存储多个值的情况,其中有些可能是不符合实际业务规则的。这类错误产生的原因是业务系统不够健全,尤其是在数据产生之初的校验和入库规则不规范,导致在接收输入后没有进行判断或无法检测而直接写入后台数据库造成的。
           具体示例:
           1.处理非等间隔
           处理非等间隔时间序列的方法有两类,一类是内插法,最常用的是线性内插法。然而内插法往往会带来显著的且不易量化的偏差,因为分析拟合误差时往往不能区分哪些是模型本身带来的误差,哪些是由于内插带来的误差。另一类是直接对数据建模,例如可以把处理等间隔时间序列方法通过某种变换再应用之,或者直接考虑新的适用于非等间隔序列的模型。
           2.处理缺失值
           常见的方法有两种,一种是直接丢弃含缺失数据的记录;另一种是用新值替代缺失数据。实际中,后者的处理方式更常用,因为前者对数据分析而言是很大的浪费。用新值替代缺失值的常见方法有如下几种:
           1)替代法: 可考虑用该序列中已观测序列值的均值替代;或最近邻域替代法,即设t时刻的序列值缺失,而已观测到t-1时刻的序列值 x t − 1 x_{t-1} xt1,则寻找整个序列中与 x t − 1 x_{t-1} xt1最接近的观测值x且其后一时刻 x s + 1 x_{s+1} xs+1非缺失,则可用 x s + 1 x_{s+1} xs+1替代t时刻的序列值。
           2)内插法: 线性内插法,即根据两个时刻的观测值内插得到这两个时刻之间的时刻的序贯估计值。例如,设某一天的温度序列中,一点钟的气温为20℃,三点钟时为14℃,可以用线性内插法推测一点半及两点钟时的气温分别是18。5℃及17℃;K-最近距离法,即根据欧式距离或相关分析选取离缺失值最近的K个已观测序列值,将这K个值按照距离长度加权平均来估计该样本的缺失数据。
           3)统计模型: 即通过一些建模方法获得缺失处的预测值,常见的有样条法和回归模型法。样条法是通过对已观测序列值建立样条模型,如三阶样条、光滑样条等,从而预测出缺失值。回归模型包括一元线性回归和多元线性回归,即根据观测序列,构造出回归模型所需的自变量和因变量,从而得到自变量与因变量之间的关系,并得到缺失处的预测值。
           4)多重插补: 其思想来源于贝叶斯估计,认为待插补的值是随机的。实际中,通常先估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值;对每个插补数据集合,都用针对完整数据集的统计方法进行统计分析,从而得到不同的结果;并根据评分函数进行选择,产生最终的插补值。
           以上四种插补方法,均值替代法是最容易实现的,也是以前人们经常使用的,但是它对样本存在极大的干扰,尤其是当插补后的值作为解释变量进行回归时,参数的估计值与真实值的偏差很大。实践证明,线性内插法等直观方法所产生的结果也并不理想。回归模型往往效果不错,即用已有数据作为训练样本来建立预测模型,预测缺失数据。该方法最大限度地利用已知的相关数据,是比较流行的缺失数据处理技术。此外,多重插补法综合比较其他各种处理方法,并得到在某种评分准则下最优的处理方法,故应用较多。
           除了上述处理方法之外,还有基于EM算法的替代模型,最大似然估计,外推法如增长量推算法、发展速度推算法、比例推算法等方法。
           3.处理离群点
           离群点(Outlier)是指一个时间序列中,远离序列一般水平的极端大值和极端小值。
           离群点可分为四种类型:
           1)加性离群点: 该干扰只影响发生的那一个时刻t时的序列值而不影响该时刻以后的序列值;
           2)更新离群点: 造成离群点的干扰不仅作用于Xt,且影响t时刻以后序列的所有观测值;
           3)水平移位离群点: 造成这种离群点的干扰是在某一时刻t系统的结构发生了变化,并持续影响t时刻以后的所有观测值,在数列上往往表现出t时刻前后的序列均值发生水平位移;
           4)暂时变更离群点: 造成这种离群点的干扰是在t时刻干扰发生时具有一定初始效应,以后随时间根据衰减因子的大小呈指数衰减。

    离群点常见的检测方法

           1.将序列值与平滑值(时间序列的平滑方法可百度/谷歌自查)进行比较,根据差异,结合相应的评价准则检验其是否显著大(或小)。这种方法比较简单,但对于判断离群点的类型存在着不足。
           2.干预分析法,其思想是,首先根据数据建立模型,利用拟合模型的残差序列计算特定的统计量,测出显著的离群点及其类型,并用所建立的模型对离群点进行修正,然后用修正后的时间序列再建立模型,重复上面的工作方法。
           3.检测序列值与其相应的时间序列平滑估计值的绝对离差是否大于某预先设定的值。

    离群点处理方法

           若是离群点正是我们所关心的信息,直接提取出来并加以分析;若离群点不是我们所希望见到的,可以考虑把离群点光滑化,即用某些值替代离群点,然后再对处理后的时间序列进行分析。

    二、 删除重复项

           由于各种原因,数据中可能存在重复记录或重复字段(列),对于这些重复项目(行和列)需要做去重处理。
    对于重复项的判断,基本思想是“排序和合并”,先将数据库中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。
           常见的排序算法:插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序、基数排序、希尔排序。
           常见的判断相似度的算法:基本的字段匹配算法标准化欧氏距离、汉明距离、夹角余弦、杰卡德距离、马氏距离、曼哈顿距离、闵可夫斯基距离、欧氏距离、切比雪夫距离、相关系数、信息熵。
           对于重复的数据项,尽量需要经过业务确认并进行整理提取出规则。在清洗转换阶段,对于重复数据项尽量不要轻易做出删除决策,尤其不能将重要的或有业务意义的数据过滤掉,校验和重复确认的工作必不可少。

    三、统一规格

           由于数据源系统分散在各个业务线,不同业务线对于数据的要求、理解和规格不同,导致对于同一数据对象描述规格完全不同,因此在清洗过程中需要统一数据规格并将一致性的内容抽象出来。
           数据字段的规则大致可以从以下几个方面进行统一:
           名称: 对于同一个数据对象的名称首先应该是一致的。例如对于访问深度这个字段,可能的名称包括访问深度、人均页面浏览量、每访问PV数。
           类型: 同一个数据对象的数据类型必须统一,且表示方法一致。例如普通日期的类型和时间戳的类型需要区分。
           单位: 对于数值型字段,单位需要统一。例如万、十万、百万等单位度量。
           格式: 在同一类型下,不同的表示格式也会产生差异。例如日期中的长日期、短日期、英文、中文、年月日制式和缩写等格式均不一样。
           长度: 同一字段长度必须一致。
           小数位数: 小数位数对于数值型字段尤为重要,尤其当数据量累积较大时会因为位数的不同而产生巨大偏差。
           计数方法: 对于数值型等的千分位、科学计数法等的计数方法的统一。
           缩写规则: 对于常用字段的缩写,例如单位、姓名、日期、月份等的统一。例如将周一表示为Monday还是Mon还是M。
    值域:对于离散型和连续型的变量都应该根据业务规则进行统一的值域约束。
           约束: 是否允许控制、唯一性、外键约束、主键等的统一。
           统一数据规格的过程中,需要注意的一点是确认不同业务线带来数据的规格一致性,这需要业务部门的参与、讨论和确认,以明确不同体系数据的统一标准。

    四、转换构造

           数据变换是数据清理过程的重要步骤,是对数据的一个的标准的处理,几乎所有的数据处理过程都会涉及该步骤。数据转换常见的内容包括:数据类型转换、数据语义转换、数据值域转换、数据粒度转换、表/数据拆分、行列转换、数据离散化、提炼新字段、属性构造、数据压缩等。
           1.数据类型转换
    当数据来自不同数据源时,不同类型的数据源数据类型不兼容可能导致系统报错。这时需要将不同数据源的数据类型进行统一转换为一种兼容的数据类型。
           2.数据语义转换
    传统数据仓库中基于第三范式可能存在维度表、事实表等,此时在事实表中会有很多字段需要结合维度表才能进行语义上的解析。例如,假如字段M的业务含义是浏览器类型,其取值分为是1/2/3/4/5,这5个数字如果不加转换则很难理解为业务语言,更无法在后期被解读和应用。
           3.数据粒度转换
    业务系统一般存储的是明细数据,有些系统甚至存储的是基于时间戳的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库中不同的粒度需求进行聚合。
           4.表/数据拆分
    某些字段可能存储多中数据信息,例如时间戳中包含了年、月、日、小时、分、秒等信息,有些规则中需要将其中部分或者全部时间属性进行拆分,以此来满足多粒度下的数据聚合需求。同样的,一个表内的多个字段,也可能存在表字段拆分的情况。
           5.行列转换
    某些情况下,表内的行列数据会需要进行转换(又称为转置),例如协同过滤的计算之前,user和term之间的关系即互为行列并且可相互转换,可用来满足基于项目和基于用户的相似度推荐计算。
           6.数据离散化
    将连续取值的属性离散化成若干区间,来帮助消减一个连续属性的取值个数。例如对于收入这个字段,为了便于做统计,根据业务经验可能分为几个不同的区间:0~3000、3001~5000、5001~10000、10001~30000、大于30000,或者在此基础上分别用1、2、3、4、5来表示。
           7.数据标准化
    不同字段间由于字段本身的业务含义不同,有些时间需要消除变量之间不同数量级造成的数值之间的悬殊差异。例如将销售额进行离散化处理,以消除不同销售额之间由于量级关系导致的无法进行多列的复合计算。数据标准化过程还可以用来解决个别数值较高的属性对聚类结果的影响。
           8.提炼新字段
    很多情况下,需要基于业务规则提取新的字段,这些字段也称为复合字段。这些字段通常都是基于单一字段产生,但需要进行复合运算甚至复杂算法模型才能得到新的指标。
           9.属性构造
    有些建模过程中,也会需要根据已有的属性集构造新的属性。例如,几乎所有的机器学习都会讲样本分为训练集、测试集、验证集三类,那么数据集的分类(或者叫分区)就属于需要新构建的属性,用户做机器学习不同阶段的样本使用。

    数据预处理-特征选择

    一、基于Filter的

           1.方差选择法  
           使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。
           2.相关系数法  
           使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值。
           3.卡方检验  
           经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:
    在这里插入图片描述
           不难发现,这个统计量的含义简而言之就是自变量对因变量的相关性。
           4.互信息法  
           经典的互信息也是评价定性自变量对定性因变量的相关性的,互信息计算公式如下:
    在这里插入图片描述

    二、基于Wrapper的

           递归特征消除法  
           递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。

    三、基于Embedded的

           基于惩罚项的特征选择法  
           使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。如LASSO:Least Absolute Shrinkage and Selection Operator 最小绝对收缩和选择算子。
           基于树模型的特征选择法  
           树模型中的GBDT也可用来作为基模型进行特征选择。

    数据预处理-降维

           主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。

    数据预处理-归一化处理

           数据归一化是对所有维度的数据进行数值上缩放到统一的固定区间,不同维度上的数据具有不同范围的数据将会导致模型收敛很慢甚至很难收敛。常用归一化方法主要为 Min-Max 和 Z-score。
           Min-Max 也被称为离差标准化,是对原有数据的线性变换,使得数据被缩放至[0,1]区间,其变换公式为: x ^ = x − x min ⁡ x max ⁡ − x min ⁡ \widehat{x}=\dfrac{x-x_{\min }}{x_{\max }-x_{\min }} x =xmaxxminxxmin
           Z-score 则利用原始数据的均值和方差进行放缩: x ^ = x − μ σ \widehat{x}=\dfrac{x-\mu }{\sigma } x =σxμ,归一化后的数据将符合标准正态分布,同时消除数据量纲对建模的影响。

    数据预处理-划分窗口

           划分窗口是将数据集按照时间步长进行划分,同时也意味着模型根据一个窗口长度的历史数据信息进行预测。

    数据预处理-Shuffle与数据集划分

           Shuffle 阶段是打乱上一步骤划分滑动窗口的输出序列,而数据集化分则将原始数据集大小按照 10%,10%,20%进行划分,其中训练集数据量占原始数据的 80%,验证集占10%用于调整模型参数,最后测试集占10%用于评估模型性能。


    学识浅薄,欢迎指正补充。

    展开全文
  • 二、时间序列预处理

    万次阅读 2018-06-11 11:28:29
    一般情况下,拿到一个观察值序列之后,首先要对它的平稳性和纯随机性进行检验,这两个重要的检验称为序列预处理。根据检验的结果可以将序列分为不同的类型,对不同类型的序列我们会采用不同的分析方法。 一、平稳...
  • 【Python算法】时间序列预处理1.时间序列预处理 拿到一个观察值序列后,首先要对它的纯随机性和平稳性进行检验,这两个重要的检验被称为序列的预处理。根据检验结果可以将序列分为不同的类型,对不同类型的序列会...
  • 在本次提交中,我们演示了如何在 MATLAB 中处理和清理存储在 Excel 工作表中、以多种格式和多种采样率存储的时间序列数据。 我们从使用“导入工具”从 Excel 表格导入数据开始。 接下来,我们关注如何准备数据以转换...
  • 时间序列预测(一)—— 数据预处理

    万次阅读 多人点赞 2019-05-20 15:20:56
    时间序列预测(一)—— 数据预处理   最近在做时间序列的预测问题,这里就稍微总结回顾一下,便于以后查阅,也希望能给大家提供到帮助,有什么问题欢迎多多交流。   这是一个系列的文章,主要从代码的角度分析...
  • 时间序列预处理流程

    千次阅读 2019-09-11 09:30:33
    时间序列分析之前,需要进行序列的预处理,包括纯随机性和平稳性检验,通过计算序列的四个特征统计量,根据检验结果可以将序列分为不同的类型,然后采取不同的分析方法。 四个特征统计量 1.均值 2.方差 3.自协方差...
  • 时序数据数据预处理、特征提取代码。分段特征、统计特征、熵特征。
  • 时间序列分析:数据预处理

    千次阅读 2020-06-03 19:17:22
    时间序列分析:数据预处理步骤引言:什么是时间序列分析一.平稳时间序列1.什么是平稳时间序列2.平稳时间序列的意义3.时间序列的特征统计量二.时间序列的平稳性检验1.导入数据(以分析某公司2000年--2003年每月销售...
  • 1 时间序列预处理 2 平稳性检验 2.1 特征统计量(概率分布的意义) 2.2 时间序列的概率分布 2.3 概率分布族应用的局限性 2.4 特征统计量(均值、方差) 2.5 平稳时间序列的定义(严平稳、宽平稳) 2.6 ...
  • 数据挖掘——时间序列预处理前言一、平稳非白噪声序列1、平稳时间序列的定义2、平稳性检验二、非平稳序列三、纯随机序列 前言 拿到一个观察值后,首先要对他的纯随机性和平稳性进行检验,这两个重要的检验称为序列...
  • python时间序列处理1-预处理时间序列平稳性判断时序图检验自相关图检验纯随机性检验LB检验Q检验 时间序列平稳性判断 时序图检验 import pandas as pd import numpy as np import seaborn as sns import ...
  • 深度学习模型数据预处理 WEBSITE
  • 待处理数据为间隔一秒的时间序列,但是其中有时间缺失,怎样把丢失的时间补齐并赋值为零并按天为单位进行reshape. 萌新一枚,首次提问还望大佬们赐教:)
  • 时间序列分析1-预处理时间序列分析简介时间序列的定义描述性时间序列分析频域分析方法时域分析方法时间序列预处理平稳性检验统计特征量平稳时间序列的定义平稳时间序列的统计性质平稳性的检验纯随机序列的检验学习...
  • 时间序列分析之预处理(一)

    万次阅读 2017-04-16 22:49:44
    该笔记基于《时间序列分析-基于R》 时间序列分析是非常有价值应用最广的统计分析方法也是最难的一种统计分析方法, 在对时间序列进行分析之前必须对数据进行预分析处理,如:平稳性检验与纯随机性检验 。一、时间...
  • 2.1-时间序列概念及预处理

    千次阅读 2018-07-11 17:31:03
    第一节 时间序列概念及预处理 (重点)平稳性检验 (重点)纯随机性检验 1.1 时间序列概要 引言1: 7000年前的古埃及人把尼罗河涨落的情况逐天记录下来,就构成所谓的时间序列。对这个时间序列长期的观察使...
  • 时间序列预处理

    万次阅读 2018-10-11 23:19:50
    本文转自时间序列ARIMA模型详解:python实现店铺一周销售量预测 顾名思义,时间序列是时间间隔不变的情况下收集的时间点集合。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。但是是...
  • 2、时间序列预处理

    2020-06-09 08:47:50
    时间序列预处理 平稳性检验 特征统计量 概率分布 分布函数 密度函数 特征统计量 (研究序列低阶矩) 均值 方差 自协方差函数 自相关系数 平稳时间序列的定义 严平稳 宽平稳 通过特征统计量定义...
  • EEG脑电数据预处理

    2021-11-04 11:31:19
    EEG数据预处理: 滤波: 低通滤波去除肌电信号等一些高频信号 常用的是高通滤波去除低于0.1HZ信号 一般为0.1-30HZ 高通滤波容易失真,低通滤波会变得光滑,高通滤波太高会诱导假峰值 带通滤波中间保留,带...
  • 时间序列分析方法分为描述性时序分析和统计时序分析。1、描述性时序分析通过直观的数据比较或绘图观测,寻找序列中蕴含的发展规律,这种分析方法就称为描述性时序分析。描述性时序分析方法具有操作简单、直观有效的...
  • 俗话说的好数据预处理真是要花费70%的时间,这次的数据有40多w条,原来是卫星数据,老师已经处理成csv了,减少了很多工作量。 数据是这样的,时间线补全,多个变量。 citycode为城市代码 首先,为数据分类,按...
  • 时序数据数据预处理、特征提取代码。分段特征、统计特征、熵特征。时间序列.rar
  • 利用内含心电数据进行仿真、预处理,可以作为心电入门的学习资料。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,417
精华内容 19,766
关键字:

时间序列数据预处理