zoukankan      html  css  js  c++  java
  • 时间序列分析学习笔记

    1、点序列

      模式发生时间的一个有序序列,se=<t1,t2,t3,t4,t5>

    2、周期点序列

      <0,5,10,15,20,27,30,35,40>是一个周期为5、时间容忍度为2的周期点序列。

    3、部分周期模式

      <0,5,10,15,27,30,35,40>可以分为<0,5,10,15>、<15,27>和<27,30,35,40>三个子序列,其中<0,5,10,15>和<27,30,35,40>都是周期为5,时间容忍度为2的周期点序列,因此<0,5,10,15,27,30,35,40>是部分周期点序列,其中[0,15]和[27,40]是开时间段,而[15,27]是关时间段。

     4、时间间隔周期点序列(基于方差的模式)

      定义4.1 给定一个时间点序列 se=<t1,t2,t3,t4,t5>,其对应的时间间隔序列为<(t2-t1),(t3-t2),(t4-t3),(t5-t4)>,其中每个元素为点序列中相邻两个时间点的时间间隔,如果该时间间隔序列的方差小于给定阈值(例如1.2,这个阈值的选择下面说),则称该序列是 周期为p的一个周期点序列,其中p为时间间隔的平均值,即

          

      同时模式e称为周期为p的周期模式

      如果用泊松过程来模拟一个事件的时间点序列的产生过程,事件发生概率均值为的泊松过程的时间间隔是服从指数分布的,其方差为,其中是两个事件时间间隔的均值。

      对于有N个时间点的时间序列来说,如果起始时间和最后一个时间点的时间差为T,称[0,T]为该时间点序列的时间窗,平均时间间隔为T/N,即=,因此方差为,计作

      从上面的公式可以看出,方差的大小与时间窗和窗口内的时间点数目有关,在给定时间窗的前提下,序列内的时间点越多,方差越小;因此,衡量一个序列是否具有周期性(或者说周期性的强度),需要有一个参照,我们可以选择相同时间窗下随机事件时间序列的方差来做对比,以此定义上文中的方差阈值为

      重新定义上面的4.1:

      定义4.5 给定一个时间点序列 se=<t1,t2,t3,t4,t5>,其对应的时间间隔序列为<(t2-t1),(t3-t2),(t4-t3),(t5-t4)>,如果该时间间隔序列的方差与相同时间窗相同长度的随机事件时间间隔序列的方差之比小于给定方差比阈值,则称该序列是周期为p的一个周期点序列,其中p为时间间隔的平均值,即

          

      同时模式e称为周期为p的周期模式

     5、基于方差的周期模式的类型

      上面定义4.5中是基本的周期模式,除此之外还有:

      (1)部分周期模式:点序列分割为不重叠的子序列,部分子序列是满足给定方差比阈值的周期点序列(简称为周期子序列),且周期均为p,其余子序列不满足方差比阈值,且至少存在这样的一个子序列,则称该序列是周期为p的部分周期点序列,同时模式e称为周期为p的部分周期模式

      根据应用背景的不同,部分周期模式可以加上另外的约束条件,例如属于周期点序列的子序列的个数占子序列总个数的比例大于给定阈值,或者关时间段占总时间窗的比例小于给定阈值等。

      (2)周期变化的周期模式:如果该点序列可以分割为不重叠的子序列,每个子序列都是满足给定方差比阈值的周期点序列,但周期不完全相同,即至少存在两个不同的周期,则称该序列为周期变化的部分周期点序列,同时模式e称为周期变化的部分周期模式

      (3)周期变化的部分周期模式:如果该点序列可以分割为多个不重叠的子序列,其中至少存在一个子序列不满足方差比阈值,其余每个子序列都满足给定方差比阈值,但周期不完全相同,即至少存在两个不同的周期,则称该序列为周期变化的部分周期点序列,同时模式e称为周期变化的部分周期模式

      周期变化的意义

      周期发生变化通常也隐含这事件发生的环境因素发生变化,因此这种模式的发现对于推荐系统识别上下文的改变也是有帮助的。另外,周期的增加或减少也隐含着其他的信息,例如,如果一个用户对某购物网站的访问周期变长,那预示着该用户可能转向其他网站购物,这对于防止用户的流失也具有潜在价值。

     6、周期模式的发现方法

      解决的问题是,给定一个模式及其点序列的时间间隔序列,如何判断该模式是否是周期模式、属于何种周期模式以及周期是多少的方法。

      周期模式发现两种方法:

      (1)贪婪分割法:高效,但有可能漏掉某些周期模式;

      (2)准遍历法(之所以叫“准”,是因为并不是完全遍历,对于一个满足条件的子序列的所有子序列将不再需要进一步检查):更全面地找出所有周期模式,但效率相对较低。

      实现方式:频繁模式或者频繁事件组(frequent episude)的发现方法来实现。

    (Aggarwal,et al.,2000;Agrawal and Srikant,1994;Bayardo,1998;Han,et al.,2004;Mannila,et al.,1997) 

      算法的输入输出如下:

      INPUT:

        (1)模式e的时间间隔序列;

        (2)方差比阈值

       (3)最小序列长度阈值;

         (4) 最小开时间段比例

       (5)最大周期差异比例

      OUTPUT:

        判断模式e属于哪种周期模式

      算法都分为2步实现:

        第一步是找出子序列:

          分割法用分割的方式找不重叠的子序列;准遍历法用近似遍历给定时间间隔序列的的方法寻找所有可能的子序列;

          这一步需要用到的参数是:

            “方差比阈值”:用来决定是否具有周期性;

            “最小序列长度阈值 ”:用来决定是否需要继续分割或者决定遍历的步长;

        第二步是判断所属的周期类型

          这一步两种方法都基本一样,主要通过几个参数来判断。

          “最大周期差异比例” :用来决定是周期变化还是等周期的模式;

          “ 最小开时间段比例” :用来决定是否是部分周期模式;

     7、预测事件的发生

      通过判断下一个发生的时间间隔的取值范围来预测该事件是否仍保持周期性。

      设 

    ,

      计算下一个时间间隔:

        

       

      预测的准确度:

      可以将序列的前五分之四作为已知序列,剩下的作为测试部分,如果已知序列满足周期模式的条件,则根据定理预测其下一个时间间隔的取值范围;如果测试部分的时间间隔落入这个取值范围,则视为预测准确;否则为错误。(要注意排除准确度跟序列长度本身的关系)

      其他的预测方法:隐马尔可夫模型,进行下一个时间间隔以及状态的预测,进一步提高预测的准确度。

      应用:

        用于预测事件的下一个发生时间,也便于在事件没有如期发生时让商家观察到客户行为的变化,从而采取适当的措施,例如挽留客户的行为。

     8、时间序列分析/预测的算法

      感觉更偏向于研究数据的统计分布、季节性时间周期什么的,这样的数据结构是会分 时序列、数值列 来输入,注重的是分布的规律,根据分布的规律来预测;

      holt winters

      arima

      garch

      decompose

      markov chain predict

        

    9、注意的问题

      个人用户的数据的周期或者发展趋势很有可能会受到总体数据趋势发展变化的影响,因此我们在分析个人的周期性行为或者预测发展趋势的时候,其实不妨先分析一下大盘的整体趋势是怎么样的。因为如果用户根本不是很个性化,那么整体的趋势可能更有说服力。

     参考书籍:《社会计算:用户在线行为分析与挖掘》刘红岩著

    python pandas

    http://www.cnblogs.com/foley/p/5582358.html

  • 相关阅读:
    Ext.Net 1.2.0_利用 Ext.Net 自定义 GridPanel Ajax 控件
    ASP.NET_0404_ASP.NET 重定向:页面传值
    程序设计_洗牌程序
    表单/验证表单——千万不要做一个只会拖控件、“照猫画虎”、copy/paste 程序员
    ASP.NET_0204_ASP.NET 重定向:如何将用户重定向到另一页
    Oracle 11g R1(11.1) Joins表连接
    隐藏 iframe 技术——Ajax 时代一个重要的环节
    Ext.Net 1.2.0_改变 Ext.Net.GridPanel 某行或某列的式样
    数据结构冒泡排序和直接插入排序
    XMLHttpRequest——Ajax 时代的到来
  • 原文地址:https://www.cnblogs.com/zichun-zeng/p/7732395.html
Copyright © 2011-2022 走看看