周期时间序列(二)实例

作者: 卞卡727 | 来源:发表于2017-06-16 17:49 被阅读47次

商品销量变化周期计算及预测

假设某商品销量成周期性变化,分析其周期性变化特点。

思路:

  • 先进行时间周期的计算
  • 再以时间周期值为基础计算变化率和趋势
  • 根据趋势找到周期串
  • 用平均法对后面的周期进行预测
    例子:
    每周销售情况如下:
#每周销售情况如下
print("每周销售情况")
sale<-c(82,45,63,102,90,130,210,110,500,300,150,230,
+190,210,600,310,130,90,210,190,710,480,220,150,250,190)
print(sale)```

以两周为时间窗口计算平均值


#首先创建空向量,数值型,因为以两周为时间窗口所以长度是mysale的一半,ceiling是强制五入
`mysale=vector(mode="numeric",length=ceiling(length(sale)/2))`
#使用for循环计算相邻的每两周销售情况的平均值,作为时间窗口的值。

mysale<-vector("numeric",ceiling(length(sale)/2))

使用sep进行迭代起点为1,终点为向量长度,步长为2

for(i in seq(1,length(sale),by=2)){

  • salemp=(sale[i]+sale[i+1])/2 #按下标,取下标和下标+1的值进行平均
  • mysale[i/2+1]=salemp[1]} #暂时没明白内在逻辑,作用是把时间周期的值赋给mysale这个之前创建好的空向量.

mysale#到此以两周为时间单位,以两周均值为代表生成了新的序列
[1] 63.5 82.5 110.0 160.0 400.0 190.0 200.0 455.0 110.0 200.0 595.0 185.0 220.0```

有了时间窗口的值后再进行进一步分析,根据时间窗口的值计算变化率和趋势

当期相对与上期的变化率=(当期值-上期值)/上期值
#先创建变化率和趋势的空向量
myrate<-vector("numeric",ceiling(length(sale)/2)-1)#变化率
mytrend=vector(mode="numeric",length=ceiling(length(sale)/2)-1)#趋势
for(i in 2:length(mysale))#从创建好的时间窗口中的,第二个值开始提取
+{ratemp=(mysale[i]-mysale[i-1])/mysale[i-1] #(当期值-上期值)/上期值
+myrate[i-1]=ratemp#因i是从第二个值开始提取,i代表第二个元素下标,
                  #在对mytate这个空向量进行填充时要从第一个开始,所以用i-1
+if (ratemp>0){mytrend[i-1]=1}#if else是固定套路
                             #意思是如果符合第一个条件就……否则……。
+else{mytrend[i-1]=0}}#这里的含义是如果变化率(第二期相对与第一期)大于0(即增加)则趋势为1否则为0
> myrate#变化率
 [1]  0.29921260  0.33333333  0.45454545  1.50000000 -0.52500000  0.05263158  1.27500000
 [8] -0.75824176  0.81818182  1.97500000 -0.68907563  0.18918919
> mytrend#趋势
 [1] 1 1 1 1 0 1 1 0 1 1 0 1```

#未完,待续

相关文章

  • 周期时间序列(二)实例

    商品销量变化周期计算及预测 假设某商品销量成周期性变化,分析其周期性变化特点。 思路: 先进行时间周期的计算 再以...

  • 周期时间序列(一)

    对于一些零散的时间序列变量,它们成一些很不规律的变化,当你按照某一定的时间窗口对它们进行某种平均或某种汇总时会呈现...

  • Django 学习笔记

    [TOC] 学习路径 1. 序列化 对象处理 实例序列化 转json 2. 反序列化 恢复对象实例 (可选)序列化...

  • ABAP和Java单例模式的攻防

    ABAP 通过序列化/反序列化攻击单例模式: 绕过了单例的限制,构造了第二个实例。 Java 除了用序列化/反序列...

  • Redis存储对象

    两种方式(序列化和json字符串) 一、序列化 获取jedis实例 redis操作 测试 二:使用fastjson...

  • .net序列化及反序列化

    .net序列化及反序列化 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么...

  • html实现一个简单列表

    目标效果 知识点 html标签之 标签定义有序列表 实例: 显示效果: html标签之 标签定义无序列表 实例...

  • HTML 列表

    HTML支持有序、无序和定义列表 实例 无序列表 本例演示无序列表。 有序列表 本例演示有序列表。 无序列表 无序...

  • XML序列化与反序列化

    XML序列化 序列化XML使用的是 new XMLSerialize() 实例的 serializeToStrin...

  • HTML列表-14

    HTML 支持有序、无序和定义列表。无序列表实例: 有序列表实例: 自定义列表: 提示: 列表项内部可以使用段落、...

网友评论

    本文标题:周期时间序列(二)实例

    本文链接:https://www.haomeiwen.com/subject/xeruqxtx.html