您的位置:首页 > 编程语言 > Python开发

python 时序数据分析

2017-05-16 20:34 183 查看
时序数据有四种主要的组成方式

1.trend 趋势: 可以是线性的也可以是非线性的,但可以研究其参数

2. seasonality 季度变化:可以是加法型的,也可以是乘法型的

3. noise 噪音:噪音一般都是数据中的一段,所以找到方法来减小噪音是分析过程的关键

4. 其他:例如意外值,缺失值等等

有这四种成分,我们可以得到分析时间序列的方法

描述:用这四种成分来描述一段数据

预测:预测未来的数据

控制:为了得到某个制定的数据,监控一个数据过程

对于实际数据采集的要求

1. 数据点需要等时间间隔的采集: 如果采集的点有缺失,或者不是等时间间隔的,则需要改正数据,重新采集

2. 数据点要超过50:可能一些经济学上的数据大致在12 个这样,但一个系列的数不能只有3,4个

3.这一系列的数据平稳,没有趋势,季度变化和噪音:有些实际的数据可能要去除趋势和季度变化

平滑Smooth

平滑用于去噪声

去噪的方法有很多,在实验数据采集里可以选择很多的点,来减少噪声,但在很多经济现象中数据量是一定的,所以需要平滑数据

 1.    窗口取平均: Xi点的平滑后的Si  Si=( Xi-k+...+Xi+k)/2K+1

2.    si=(wi-k *Xi-k+....wi+k*Xi+k)  其中的wi-k+...wi+k=1

3.    weight 可以用高斯方程来代替

f(x,a)=exp(-(x/a)^2)/(2*pi*a^2)^1/2 ,其中的a是指方差系数

python:

filt=gaussian(31,4)//filt

filt/=sum(filt)

padded=concatenate((data[0]*ones(31//2),data,data[n-1]*ones(31//2)))

smooth =convolve(padded, filt, mode='solid')

指数平滑法

单指数平滑:对于没有趋势和季度变化的数据集   Si=aXi+(1-a)Si-1    ,   Xi+h=Si

双指数平滑:对于有趋势但没有季度变化的数据集     Si=aXi+(1-a)(Si-1 +ti-1)

                                                                                              ti=B(Si-Si-1)+(1-B)ti-1      Xi+h=Si+hti

Holt-winter三指数平滑:对于既有趋势也有季度变化的数据集
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: