“春节假期是难得的读书充电的时间。”--来自某boss。假期能写多少算多少,一个是题目中的这本书,另一个是《python核心编程》中的高级部分,再一个是拖着的《算法导论》。
------------------------------------------------------
一、时间序列研究目的主要有两个:认识产生观测序列的随机机制,即建立数据生成模型;基于序列的历史数据,也许还要考虑其他相关序列或者因素,对序列未来的可能取值给出预测或者预报。通常我们不能假定观测值独立取自同一总体,时间序列分析的要点是研究具有相关性质的模型。
二、下面是书上的几个例子
1、洛杉矶年降水量
问题:用前一年的降水量预测下一年的降水量。
第一幅图是降水量随时间的变化图;第二幅图是当年降水量与去年降水量散点图。
win.graph(width=4.875, height=2.5,pointsize=8) #这里可以独立弹出窗口
data(larain) #TSA包中的数据集,洛杉矶年降水量
plot(larain,ylab='Inches',xlab='Year',type = 'o') #type规定了在每个点处标记一下 win.graph(width = 3,height = 3,pointsize = 8)
plot(y = larain,x = zlag(larain),ylab = 'Inches',xlab = 'Previous Year Inches')#zlag函数(TSA包)用来计算一个向量的延迟,默认为1,首项为NA
从第二幅图看出,前一年的降水量与下一年并没有什么特殊关系。
2、化工过程
win.graph(width = 4.875,height = 2.5,pointsize = 8)
data(color)
plot(color,ylab = 'Color Property',xlab = 'Batch',type = 'o') win.graph(width = 3,height = 3,pointsize = 8)
plot(y = color,x = zlag(color),ylab = 'Color Property',xlab = 'Previous Batch Color Property')
len <- length(color)
cor(color[2:len],zlag(color)[2:len])#相关系数
>0.5549
第一幅图是颜色属性随着批次的变化情况。
第二幅图画一下前一批次与本批次是散点图。
上面的图显示了稍微向上的趋势,即数值较大的后一批次也趋向于更大的数值。但是并不明显,相挂系数只有0.5549.
3、加拿大野兔年丰度
win.graph(width=4.875, height=2.5,pointsize=8)
data(hare)
plot(hare,ylab='Abundance',xlab='Year',type='o') win.graph(width=3, height=3,pointsize=8)
plot(y=hare,x=zlag(hare),ylab='Abundance',xlab='Previous Year Abundance')
len <- length(hare)
cor(hare[2:len],zlag(hare)[2:len])
>0.7026
看一下下面的图,明显有周期性质。
上面的图看出前一年的数值跟本年度数值相关关系较大。相关系数为0.7026.
4、艾奥瓦州迪比克市月平均气温
非常明显的周期性。季节性模式。
5、滤油器月销售量
win.graph(width=4.875, height=2.5,pointsize=8)
data(oilfilters)
plot(oilfilters,type='o',ylab='Sales') win.graph(width=4.875, height=2.5,pointsize=8)
plot(oilfilters,type='l',ylab='Sales')
Month=c("J","A","S","O","N","D","J","F","M","A","M","J")#注意这里是从1983年7月到1987年6月
points(oilfilters,pch=Month) plot(oilfilters,type='l',ylab='Sales')
points(y=oilfilters,x=time(oilfilters),pch=as.vector(season(oilfilters)))#这里的season函数的返回值取决于传入数值
“向作者提供数据时,经理说没有理由认为销售量存在季节性。”“假如各年1月与1月的数据之间存在关联趋势,2月与2月的数据之间存在关联趋势,那么就有季节性。”
上面的图作者说没有显示明显的季节性。其实……还好,季节性比较明显了已经。
在加上月份的标识之后,确实比原来更能显示出季节性规律。
总之,恰当和有益于发现特定模式的绘图方法,有利于找到符合时间序列数据的合适模型。
三、建模策略
给时间序列寻找合适的模型并非易事,多步建模策略很有用,包括三个可反复使用的主要步骤:
1、模型识别
2、模型拟合
3、模型诊断
模型识别就是在时间序列模型类中选择适合观测值的模型。进一步可以观察时间序列图,计算一些统计量。选取的模型是有待考证的,选取原则是能表示模型的前提下选取参数少的。
第二步就是用数据将将选取模型中的参数估计出来,估计方法是最小二乘挥着极大似然。
最后就是对模型进行质量评估。针对一些问题对模型进行估计,看模型是否合理:比如模型对数据的拟合程度有多好,模型前提是否满足等。如果没有不足之处,就可以进行预测等任务,如果有不足之处,针对不足之处寻找其他模型,再进行上面三个步骤。
四、历史上的时间序列图
名言:“时间序列图是图形设计最常用的形式,其一个维度沿着秒、分、时、日、周、月、年、乃至千年等规则的时间节律延伸,时间标度的自然顺序赋予了这种设计以解释的力量和效率,这一点在其他图形设计上了无痕迹。”