时间序列分析(1)-移动平均法

更新时间:2023-06-24 11:42:55 阅读: 评论:0

时间序列分析(1)-移动平均法
⽂章⽬录
1.定义
时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。对时间序列进⾏观察研究,找寻它的发展规律,预测它将来的⾛势就是时间序列分析。
时间序列根据所研究的依据不同,可有不同的分类。
1. 按所研究的对象的多少分,有⼀元时间序列和多元时间序列.
2. 按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种.
3. 按序列的统计特性分,有平稳时间序列和⾮平稳时间序列.如果⼀个时间序列的概率分布与时间t⽆关,则称该序列为严格的(狭义的)
平稳时间序列。如果序列的⼀、⼆阶矩存在,⽽且对任意时刻t满⾜:
1. 均值为常数;
2. 协⽅差为时间间隔τ的函数
则该该序列为宽平稳时间序列,也叫⼴义平稳时间序列。
对于这⽅⾯的内容,详情可以多参考概率论的随机过程部分-有相似之处。
4. 按时间序列的分布规律来分,有⾼斯型时间序列和⾮⾼斯型时间序列。
本章的主要内容是分析⼀元的时间序列分析。
2.移动平均法、指数平滑法和季节模型
1.移动平均法
移动平均法是常⽤的时间序列预测⽅法,由于其简单⽽具有很好的实⽤价值.
设观测序列为y1,···,yT,取移动平均的项数N<T.⼀次移动平均值计算公式为
则有:
t+1期的预测值为
其预测标准误差为:
M(N)=
t
(1)
(y+
N
1
t y+⋅⋅⋅+y)=
t−1t−N+1y
N
1
i=0
∑N−1
t−i
M(N)=
t
(1)
(y+⋅⋅⋅+y)+
泌尿系感染的症状N
1
t−1t−N(y−
N
1
t y=
t−N)M(N)+
t−1
(1)
(y−
N
90后网络歌手
1
t y)
t−N
=
y t+1^M(N)
t
(1)
栗⼦:
汽车配件某年1~12年⽉份的化油器销售量(单位:只)统计数据见下表中第2⾏,试⽤⼀次移动平均法预测下⼀年1⽉份的销售量.化油器销售量及⼀次移动平均法预测值表:
⽉份123456789101112
预测
yi 423
358
434
的风俗445527429502480384427446N=3405
412
469467461452469455430419N=5
437
439
452
466
473
手机没信号怎么办444
444
448
分别取N=3,N=5,按预测公式
计算3个⽉和5个⽉移动平均预测值,分别见上表第三⾏和第四⾏。N=3时,预测的标准误差为56.5752;N=5时,预测的标准误差为39.8159.
通过预测后,可以看到,实际数据波动较⼤,经移动平均后,随机波动明显减少,且N越⼤,波动也越⼩。同时,也可以看到,⼀次移动平均法的预测标准误差还是有些⼤,对于实际数据波动较⼤的序列,⼀般较少采⽤此法进⾏预测。代码实现:
import  numpy as  np
y =np .array ([423,358,434,445,527,429,426,502,480,384,427,446])def  MoveAverage (y ,N ):    Mt =['*']*N
for  i in  range (N +1,len (y )+2):        M =y [i -(N +1):i -1].mean ()        Mt .append (M )    return  Mt
yt3=MoveAverage (y ,3)
s3=np .sqrt (((y [3:]-yt3[3:-1])**2).mean ())yt5=MoveAverage (y ,5)
s5=np .sqrt (((y [5:]-yt5[5:-1])**2).mean ())
print ('N=3时,预测值:',yt3,',预测的标准误差:',s3)print ('N=5时,预测值:',yt5,',预测的标准误差:',s5)
简单移动平均使⽤的是等量加权策略,可以利⽤卷积,相应代码如下:
S =
T −N
(−y )∑t =N +1T
y t ^t 2如果将作为t +y t +1^
1期的实际值,那么就可以⽤=y t +1^M (N )计算第t +t (1)
2期预测值.⼀般地,也可响应地求得以后各y t +2^(3)=y t +1^
M (3)
=t 1
,t =3
y +y +y t t −1t −23,4,⋅⋅⋅,12(5)=y t +1^
M (3)
=t 1
,t =3
y +y +y +y +y t t −1t −2t −3t −45,6,⋅⋅⋅,12
口红海报def sma(arr,n):
s(n)/n
volve(weights,arr)[n-1:-n+1]
import numpy as np
y=np.array([423,358,434,445,527,429,426,502,480,384,427,446])
n1=3; s(n1)/n1,y)[n1-1:-n1+1]##左开右闭 np.s(n1)/n1,y,mode='valid')  同样适⽤-且更加具有普适性s1=np.sqrt(((y[n1:]-yt1[:-1])**2).mean())
n2=5; s(n2)/n2,y)[n2-1:-n2+1]
s2=np.sqrt(((y[n2:]-yt2[:-1])**2).mean())
print('N=3时,预测值:',yt1,',预测的标准误差:',s1)
print('N=5时,预测值:',yt2,',预测的标准误差:',s2)
Returns the discrete, linear convolution of two one-dimensional quences.
The convolution operator is often en in signal processing, where it
models the effect of a linear time-invariant system on a signal [1]_.  In
probability theory, the sum of two independent random variables is
distributed according to the convolution of their individual
distributions.
If `v` is longer than `a`, the arrays are swapped before computation.
Parameters
今天我值日作文----------
a :(N,) array_like
First one-dimensional input array.
v :(M,) array_like
Second one-dimensional input array.
mode :{'full','valid','same'}, optional
'full':
By default, mode is'full'.  This returns the convolution
at each point of overlap,with an output shape of (N+M-1,). At
the end-points of the convolution, the signals do not overlap
completely,and boundary effects may be en.
'same':
Mode 'same' returns output of length ``max(M, N)``.  Boundary
effects are still visible.
'valid':
Mode 'valid' returns output of length
``max(M, N)-min(M, N)+1``.  The convolution product is only given
for points where the signals overlap completely.  Values outside
the signal boundary have no effect.
Returns
-------
out : ndarray
Discrete, linear convolution of `a` and `v`.
See Also
--------
scipy.signal.fftconvolve : Convolve two arrays using the Fast Fourier
Transform.
plitz : Ud to construct the convolution operator.
polymul : Polynomial multiplication. Same output as convolve, but also
accepts poly1d objects as input.
By default, mode is'full'.  This returns the convolution
at each point of overlap,with an output shape of (N+M-1,). At
the end-points of the convolution, the signals do not overlap
the end-points of the convolution, the signals do not overlap
completely,and boundary effects may be en.
城南一和默认情况下,模式为“完整”。这将返回卷积
在每个重叠点,总的输出形状为(N + M-1,)。在
卷积的端点,信号不重叠
完全可以看到边界效应。
使⽤栗⼦:
Examples
--------
Note how the convolution operator flips the cond array
before "sliding" the two across one another:
>>> np.convolve([1,2,3],[0,1,0.5])
array([0.,1.,2.5,4.,1.5])
Only return the middle values of the convolution.
Contains boundary effects, where zeros are taken
养生菜
into account:
>>> np.convolve([1,2,3],[0,1,0.5],'same')
array([1.,2.5,4.])
The two arrays are of the same length, so there
is only one position where they completely overlap:
>>> np.convolve([1,2,3],[0,1,0.5],'valid')
array([2.5])
了解什么是卷积:
References
----------
..[1] Wikipedia,"Convolution",
en.wikipedia/wiki/Convolution
卷积公式可以描述为在时刻t处函数f(τ)的加权平均值,其中权重由g(–τ)给出,仅移动量t即可。随着t的变化,加权函数会强调输⼊函数的不同部分。
离散序列的卷积求法
卷积关键词:权重-时间-叠加性-离散还是连续
2.⼆次移动平均法及趋势移动平均法
当预测变量的基本趋势发⽣变化时,⼀次移动平均法不能迅速适应这种变化.
当时间序列的变化为线性趋势时,⼀次移动平均法的滞后偏差使预测值偏低,不能进⾏合理的趋势外推。

本文发布于:2023-06-24 11:42:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1028441.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:序列   时间   移动
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图