R语言:TCGA数据分析数据科学与R语言R语言小技能

周期时间序列(二)实例

2017-06-16  本文已影响47人  卞卡727

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

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

思路:

#每周销售情况如下
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)){

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```

#未完,待续
上一篇 下一篇

猜你喜欢

热点阅读