精华内容
下载资源
问答
  • 种平均数

    千次阅读 2020-02-15 10:15:13
    1、算数平均数:又称均值,是统计学中最基本,最常用的一平均指标,分为简单算术平均数、加权算术平均数。 设一组数据为X1,X2,...,Xn,简单地算术平均数的计算公式为: 加权算术平均:主要用于处理经分组整理...

    算数平均数、调和平均数、几何平均数的计算方法与应用场合

    总的来说:几种平均数的应用的取决于场景

    一、定义

    1、算数平均数:又称均值,是统计学中最基本,最常用的一种平均指标,分为简单算术平均数、加权算术平均数。

    设一组数据为X1,X2,...,Xn,简单地算术平均数的计算公式为:

     

    加权算术平均:主要用于处理经分组整理数据。

    设原始数据被分成K组,各组的组中值为X1,X2,...Xk,各组的频数分别为f1,f2,...fk,加权算术平均数的计算公式为:

     

    2、调和平均数:又称倒数平均数,是总体各统计变量倒数的算数平均数的倒数。分为数学调和平均数(数值倒数的平均数的倒数)和统计调和平均数(计算结果与加权算术平均数完全相等)。

    简单调和平均数是算术平均数的变形。

     

    加权调和平均数:

     

    3、几何平均数:几何平均数是对各变量值的连乘积开项数次方根。根据所拿掌握资料的形式不同,其分为简单几何平均数和加权几何平均数两种形式。

    简单几何平均数:

     

     

    加权几何平均数:

     

    二、应用

    1.算数平均数:凡是变量值的总和等于总体标志值总量的社会经济现象的平均数, 均可采用算术平均数的方法,但其也有缺陷容易受到极端值的影响,进而关注数据分布,并用中位数、众数等其他位置均值统计量进行综合分析。

    例:

    通常来说,如果统计分布是对称的,且最高点在中间,那么均值、中位数和众数相等。

    如果统计分布右偏,即大部分集中在左边,右边拖着一个长长的尾巴——通常像楼价、国民收入等等都属于此类分布,则一般来说均值>中位数>众数,这时只看均值可能会比较片面,需要三个参数全看,以帮助你对数据进而对研究对象有全面地认识。

     

    有右偏肯定就有左偏分布,这时均值<中位数<众数。

     

     

    在这个例子里,分布是这样的:

     

     

    显然这是一个右偏的分布,众数100<中位数200<平均值300。

    2.几何平均数:凡是变量值的连乘积等于总比率或总速度的社会经济现象, 都可以适应几何平均数计算平均比率或平均速度;有些对象的呈现指数型变化,群体内的数字变化巨大,如果拿算术平均数对比,少数样本可能会影响了总体结果,也通常会使用几何平均数。

    例1:例: 某机械厂有毛坯车间、 粗加工车间、 精加工车间、 装配车间四个流水作业的车间, 本月份第一车间制品合格率为 95%, 第二车间合格率为 92%, 第三车间合格率为 90%, 第四车间合格率为85%, 求平均产品合格率。
    分析: 对于这个问题不能采用算术平均数或调的平均数计算, 因为各车间产品合格率总和并不等于全厂总合格率,第二车间的合格率是在第一车间的基础上计算的, 第三车间的合格率是在第一、第二车间制品全部合格的基础上计算的,如此等等, 全厂产品的总合格率等于各车间合格率的连乘积, 所以要采用几何平均数计算平均车间合格率。

    例2:

    中印GDP的对比

    如果按算术平均数,1960年到2017年58年间中国GDP是印度的3.6倍,而实际上直到1994年中国才第一次GDP是印度的两倍,因为后面年份的GDP巨大,以至于前面很多年在平均值里可以忽略不计。

    如果按照几何平均数,1960年到2017年58年间中国GDP是印度的1.8倍。

    这相当于是把GDP取了对数后的算术平均。

    3.调和平均数

    经典的例子是以不同的速度通过相同的距离。

    考虑一次去便利店并返回的行程:

    • 去程速度为30 mph
    • 返程时交通有一些拥堵,所以速度为10 mph
    • 去程和返程走的是同一路线,也就是说距离一样(5英里)

    整个行程的平均速度是多少?

    如果不假思索地应用算术平均数的话,结果是20 mph((30+10)/2)。

    但是这么算不对。因为去程速度更快,所以你更快地完成了去程的5英里,整个行程中以30 mph的速度行驶的时间更少,以10 mph的速度行驶的时间更多,所以整个行程期间你的平均速度不会是30 mph10 mph的中点,而应该更接近10 mph

    为了正确地应用算术平均数,我们需要判定以每种速率行驶所花的时间,然后以适当的权重加权算术平均数的计算:

    1. 去程: 5 / (30/60) = 10分钟
    2. 返程: 5 / (10/60) = 30 分钟
    3. 总行程: 10 + 30 = 40分钟
    4. 加权算术平均数: (30 * 10/40) + (10 * 30/40) = 15 mph

    所以,我们看到,真正的平均速度是15 mph,比使用未加权的算术平均数计算所得低了5 mph(或者25%)。

    那如果用调和平均数呢?

    2 / (1/30 + 1/10) = 15

    一下子得到了真正的行程平均速度,自动根据在每个方向上使用的时间进行调整。

    需要注意的是,这里之所以可以直接应用调和平均数,是因为去程和返程的距离是相等的,如果两者距离不等(比如去程和返程走了不同路线),那么需要应用加权调和平均数

    在财经上,加权调和平均数可以用于计算组合投资多个股票的市盈率(P/E)。

    当然调和平均数还有很多应用场景,比如统计学上的F1评分,就是准确率和召回的调和平均数。

    因为是导数,所以是指数,从指数分布的变化率来看,调和平均更重视较小值:较小值的变化对调和平均的影响大于较大值的变化。

    展开全文
  • 简单移动平均 & 指数移动平均

    千次阅读 2019-02-27 14:30:13
    # 窗口为3的简单移动平均,min_periods指的是如ugo没有3个,有2个都可以做简单移动平均 smv_3 = data . rolling ( window = 3 , min_periods = 2 ) . mean ( ) print ( '时间序列数据:' ) print ( data )...

    参考自

    简单移动平均(Simple moving average)

    数据 p 1 , p 2 , . . . , p M p_1, p_2, ..., p_M p1,p2,...,pM的窗口为n的简单移动平均:
    p ‾ S M = p M + p M − 1 + . . . + p M − ( n − 1 ) n = 1 n ∑ i = 0 n − 1 p M − i \overline{p}_{SM}=\frac{p_M+p_{M-1}+...+p_{M-(n-1)}}{n}=\frac{1}{n}\sum_{i=0}^{n-1}{p_{M-i}} pSM=npM+pM1+...+pM(n1)=n1i=0n1pMi

    迭代的形式:
    p ‾ S M = p ‾ S M , p r e v + p M n − p M − N n \overline{p}_{SM}=\overline{p}_{SM, prev}+\frac{p_M}{n}-\frac{p_{M-N}}{n} pSM=pSM,prev+npMnpMN

    实现

    简单实现

    import pandas as pd
    s = [1,2,3,5,6,10,12,14,12,30]
    # 等价于data = pd.DataFrame(s)
    data = pd.Series(s)
    # 窗口为3的简单移动平均
    smv_3=data.rolling(window=3).mean()
    
    print('时间序列数据:')
    print(data)
    print('\n窗口为3的简单移动平均:')
    print(smv_3)
    

    结果:

    时间序列数据:
    0     1
    1     2
    2     3
    3     5
    4     6
    5    10
    6    12
    7    14
    8    12
    9    30
    dtype: int64
    
    窗口为3的简单移动平均:
    0          NaN
    1          NaN
    2     2.000000
    3     3.333333
    4     4.666667
    5     7.000000
    6     9.333333
    7    12.000000
    8    12.666667
    9    18.666667
    dtype: float64
    

    平均结果的NaN和数据中的NaN怎么办?

    min_periods字段

    平均结果的NaN
    import pandas as pd
    s = [1,2,3,5,6,10,12,14,12,30]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # 窗口为3的简单移动平均,min_periods指的是如ugo没有3个数,有2个数都可以做简单移动平均
    smv_3=data.rolling(window=3, min_periods=2).mean()
    
    print('时间序列数据:')
    print(data)
    print('\n窗口为3的简单移动平均:')
    print(smv_3)
    

    结果:

    时间序列数据:
    0     1
    1     2
    2     3
    3     5
    4     6
    5    10
    6    12
    7    14
    8    12
    9    30
    dtype: int64
    
    窗口为3的简单移动平均:
    0          NaN
    1     1.500000
    2     2.000000
    3     3.333333
    4     4.666667
    5     7.000000
    6     9.333333
    7    12.000000
    8    12.666667
    9    18.666667
    dtype: float64
    
    
    数据中的NaN
    import pandas as pd
    # 第三个数据是NaN
    s = [1,2,None,5,6,10,12,14,12,30]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # 窗口为3的简单移动平均
    smv_3=data.rolling(window=3, min_periods=2).mean()
    
    print('时间序列数据:')
    print(data)
    print('\n窗口为3的简单移动平均:')
    print(smv_3)
    
    

    结果:

    时间序列数据:
    0     1.0
    1     2.0
    2     NaN
    3     5.0
    4     6.0
    5    10.0
    6    12.0
    7    14.0
    8    12.0
    9    30.0
    dtype: float64
    
    窗口为3的简单移动平均:
    0          NaN
    1     1.500000
    2     1.500000
    3     3.500000
    4     5.500000
    5     7.000000
    6     9.333333
    7    12.000000
    8    12.666667
    9    18.666667
    dtype: float64
    

    指数移动平均(Exponential moving average)

    数据 p 1 , p 2 , . . . , p M p_1, p_2, ..., p_M p1,p2,...,pM的指数移动平均的迭代形式
    p ‾ E M = { p 1 M = 1 α p M + ( 1 − α ) p ‾ S M , p r e v M ≠ 1 \overline{p}_{EM}=\left\{ \begin{array}{rcl} p_1 && {M=1}\\ \alpha p_M+(1-\alpha)\overline{p}_{SM, prev} && {M \neq 1} \end{array} \right. pEM={p1αpM+(1α)pSM,prevM=1M̸=1

    如何理解指数移动平均

    把指数移动的公式展开:
    p ‾ E M = α ( p M + ( 1 − α ) p M − 1 + ( 1 − α ) 2 p M − 2 + . . . + ( 1 − α ) M − 1 p 1 ) \overline{p}_{EM}=\alpha(p_M+(1-\alpha)p_{M-1}+(1-\alpha)^2p_{M-2}+...+(1-\alpha)^{M-1}p_1) pEM=α(pM+(1α)pM1+(1α)2pM2+...+(1α)M1p1)

    M > > 1 M>>1 M>>1时,他其实就是一个历史数据的指数加权平均:
    p ‾ E M = ∑ i = 0 + ∞ α ( 1 − α ) i p M − i \overline{p}_{EM}=\sum_{i=0}^{+\infin}\alpha(1-\alpha)^{i}p_{M-i} pEM=i=0+α(1α)ipMi

    时间 T	:近->远
    值		: p_M->P_1
    权重		: w_0->w_{M-1}
    

    我们可以发现权重 p M − i p_{M-i} pMi对应的权重 w i = α ( 1 − α ) i w_i=\alpha(1-\alpha)^{i} wi=α(1α)i,我们计算所有权重之和看是否为1: ∑ i = 0 ∞ w i = α ( 1 + ( 1 − α ) + ( 1 − α ) 2 + . . . ) = α 1 1 − ( 1 − α ) = 1 \sum_{i=0}^{\infin}{w_i}=\alpha(1+(1-\alpha)+(1-\alpha)^2+...)=\alpha\frac{1}{1-(1-\alpha)}=1 i=0wi=α(1+(1α)+(1α)2+...)=α1(1α)1=1

    因此,我们用迭代的方式计算指数移动平均相当于把权 w i = α ( 1 − α ) i w_i=\alpha(1-\alpha)^i wi=α(1α)i赋给过去的值。

    而下面考察权重的变化,如果 α \alpha α足够小,则
    w 1 / α = α ( 1 − α ) 1 / α = α 1 e = 36.8 % α w_{1/\alpha}=\alpha(1-\alpha)^{1/\alpha}=\alpha\frac{1}{e}=36.8\%\alpha w1/α=α(1α)1/α=αe1=36.8%α

    指数移动平均与简单移动平均的关系

    可以通过指数移动平均与简单移动平均的关系来知道 α \alpha α的选取。

    注:下面质心的推导的坐标系是这样的:

    0------>1------>2------>...
    	   	p_M     p_{M_1}
    

    选取 α \alpha α的方法 × 两者的质心相同

    简单移动平均的质心为 1 + N 2 \frac{1+N}{2} 21+N
    指数移动平均的质心为 α [ 1 + 2 ( 1 − α ) + 3 ( 1 − α ) 2 + . . . ] = 1 α \alpha[1+2(1-\alpha)+3(1-\alpha)^2+...]=\frac{1}{\alpha} α[1+2(1α)+3(1α)2+...]=α1

    令二者的质心相同,则 1 + N 2 = 1 α \frac{1+N}{2}=\frac{1}{\alpha} 21+N=α1,即 α = 2 N + 1 \alpha=\frac{2}{N+1} α=N+12。当我想我的指数移动平均的历史加权的质心和N窗口简单移动平均质心是一样的。

    选取 α \alpha α的方法 × 指定指数移动平均的质心

    令质心为c,则 c = 1 α c=\frac{1}{\alpha} c=α1,即 α = 1 c \alpha=\frac{1}{c} α=c1

    例子,我令最新的数据为质心,则c=1,此时 α = 1 1 = 1 \alpha=\frac{1}{1}=1 α=11=1;

    注意如果质心选择的原点不一定会有影响

    p_M对应坐标1是我们之前的推导方式

    0------>1------>2------>...
    	   	p_M     p_{M_1}
    

    我们现在变为p_M对应坐标0

    0------>1------>2------>...
    p_M     p_{M_1}
    

    例子,我令最新的数据为质心,则 c ′ = 0 c'=0 c=0,此时有 c = c ′ + 1 c=c'+1 c=c+1,则 α = 1 c = 1 c ′ + 1 = 1 \alpha=\frac{1}{c}=\frac{1}{c'+1}=1 α=c1=c+11=1

    选取 α \alpha α的方法 × 最近的N个数所累计的权重和

    拖尾的权重{ w N , w N + 1 , . . . w_N, w_{N+1}, ... wN,wN+1,...}之和:
    w n , . . . = α ( ( 1 − α ) N + ( 1 − α ) N + 1 , . . . ) = a ( 1 − α ) N ( 1 + ( 1 − α ) + . . . ) = ( 1 − α ) N w_{n, ...}=\alpha((1-\alpha)^N+(1-\alpha)^{N+1}, ...)=a(1-\alpha)^N(1+(1-\alpha)+...)=(1-\alpha)^N wn,...=α((1α)N+(1α)N+1,...)=a(1α)N(1+(1α)+...)=(1α)N

    最近的N个数所累计的权重和:
    w 0 , . . , n − 1 = 1 − w n , . . . = 1 − ( 1 − α ) N w_{0, .., n-1}=1-w_{n, ...}=1-(1-\alpha)^N w0,..,n1=1wn,...=1(1α)N

    • 如何选取 α \alpha α,我们可以说让最近N个数所累计的权重和为刚刚 1 2 \frac{1}{2} 21,此时 1 2 = 1 − ( 1 − α ) N \frac{1}{2}=1-(1-\alpha)^N 21=1(1α)N,所以 α = 1 − e ln ⁡ ( 0.5 ) / N \alpha=1-e^{\ln(0.5)/N} α=1eln(0.5)/N

    • α \alpha α足够小时, w 0 , . . , n − 1 = 1 − ( 1 − α ) N = 1 − ( ( 1 − α ) 1 / − α ) − α N = 1 − e − α N w_{0, .., n-1}=1-(1-\alpha)^N=1-((1-\alpha)^{1/-\alpha})^{-\alpha N}=1-e^{-\alpha N} w0,..,n1=1(1α)N=1((1α)1/α)αN=1eαN

    • α \alpha α(足够小),则意味着 1 α \frac{1}{\alpha} α1个最近的数据包含了约 1 − e − 1 = 63.2 % 1-e^{-1}=63.2\% 1e1=63.2%的权重

    偏差修正

    偏差修正的主要目的是为了提高指数加权平均的精确度,主要是针对前期的加权平均值的计算精度。

    下面的例子中 α = 0.1 ; β = 1 − α = 0.9 \alpha=0.1;\beta=1-\alpha=0.9 α=0.1;β=1α=0.9观察到的序列为{40, 50},而的计算的指数平均为{4, 7.1},这样的结果精度是很差的。
    在这里插入图片描述

    下面我们进行修正偏差,得到修正指数平均 v t ′ v_t' vt
    v t ′ = v t 1 − β t v_t'=\frac{v_t}{1-\beta^t} vt=1βtvt

    因此,

    原序列:{40, 50}
    指数平均序列:{4, 7.1}
    修正偏差后的指数平均序列:{40, 37.37}
    

    实现

    Series.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)
    

    α \alpha α选择参数

    span, com, halflife分别对应前面所说的选择方法

    com : float. optional (注意,这里的com,第一个元素是对应0的)
    Center of mass: \alpha = 1 / (1 + com),
    
    span : float, optional
    Specify decay in terms of span, \alpha = 2 / (span + 1)
    
    halflife : float, optional
    Specify decay in terms of halflife, \alpha = 1 - exp(log(0.5) / halflife)
    

    基本实现

    # adjust=True的情况
    import pandas as pd
    s = [40, 50]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # span=19对应a=0.1
    emv=data.ewm(span=19).mean()
    ans_1=0.1*50+0.9*40
    print('时间序列数据:')
    print(data)
    print('\na=0.1指数移动平均:')
    print(emv)
    print('ans of time 1:', ans_1)
    
    时间序列数据:
    0    40
    1    50
    dtype: int64
    
    a=0.1指数移动平均:
    0    40.000000
    1    45.263158
    dtype: float64
    ans of time 1: 41.0
    

    我们发现计算结果,跟我们推到的结果ans_1不一致。原因在于,我们之前关于移动评价的公式是假设权重之和为1,但这只有是无穷级数求和的结果。

    • 真正的公式(即adjust=True)应该是
      y t = x t + ( 1 − α ) x t − 1 + ( 1 − α ) 2 x t − 2 + . . . + ( 1 − α ) t x 0 1 + ( 1 − α ) + ( 1 − α ) 2 + . . . + ( 1 − α ) t y_t = \frac{x_t+(1-\alpha)x_{t-1}+(1-\alpha)^2x_{t-2}+...+(1-\alpha)^tx_0}{1+(1-\alpha)+(1-\alpha)^2+...+(1-\alpha)^t} yt=1+(1α)+(1α)2+...+(1α)txt+(1α)xt1+(1α)2xt2+...+(1α)tx0
    • 快速迭代的公式(即adjust=False)应该是
      y 0 = x 0 , y t = ( 1 − α ) y t − 1 + α x t y_0=x_0, \\ y_t=(1-\alpha)y_{t-1}+\alpha x_t y0=x0,yt=(1α)yt1+αxt
    • 只有在t足够大时,adjust=False的结果才会接近adjust=True的结果,而adjust=False计算得快,但有一定精度损失
    import pandas as pd
    s = [40, 50]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # span=19对应a=0.1
    emv=data.ewm(span=19, adjust=False).mean()
    ans_1=0.1*50+0.9*40
    print('时间序列数据:')
    print(data)
    print('\na=0.1指数移动平均:')
    print(emv)
    print('ans of time 1:', ans_1)
    
    

    结果:

    时间序列数据:
    0    40
    1    50
    dtype: int64
    
    a=0.1指数移动平均:
    0    40.0
    1    41.0
    dtype: float64
    ans of time 1: 41.0
    

    数据中有NaN怎么办?

    参考前面的公式

    • When ignore_na is False (default), weights are based on absolute positions. For example, the weights of x and y used in calculating the final weighted average of [x, None, y] are (1-alpha)**2 and 1 (if adjust is True), and (1-alpha)**2 and alpha (if adjust is False).

    • When ignore_na is True (reproducing pre-0.15.0 behavior), weights are based on relative positions. For example, the weights of x and y used in calculating the final weighted average of [x, None, y] are 1-alpha and 1 (if adjust is True), and 1-alpha and alpha (if adjust is False).

    个人认为,四种搭配中这两种是比较合理的:

    1. ignore_na=True, adjust=False
    2. ignore_na=False, adjust=True
    

    下面的例子都考虑adjust=False的情况

    # ignore_na=True,忽略NaN
    import pandas as pd
    s = [40, None, None, 50, None]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # span=19对应a=0.1
    emv=data.ewm(span=19, adjust=False, ignore_na=True).mean()
    ans_1=0.1*50+0.9*40
    print('时间序列数据:')
    print(data)
    print('\na=0.1指数移动平均:')
    print(emv)
    print('ans of time 4:', ans_1)
    
    

    结果:

    时间序列数据:
    0    40.0
    1     NaN
    2     NaN
    3    50.0
    4     NaN
    dtype: float64
    
    a=0.1指数移动平均:
    0    40.0
    1    40.0
    2    40.0
    3    41.0
    4    41.0
    dtype: float64
    ans of time 4: 41.0
    
    
    # ignore_na=False,不忽略NaN
    import pandas as pd
    s = [40, None, None, 50, None]
    data = pd.Series(s)
    # data = pd.DataFrame(s)
    # span=19对应a=0.1
    emv=data.ewm(span=19, adjust=False, ignore_na=False).mean()
    ans_1=(0.1*50+(0.9**3)*40)/(0.1+0.9**3)
    print('时间序列数据:')
    print(data)
    print('\na=0.1指数移动平均:')
    print(emv)
    print('ans of time 4:', ans_1)
    
    

    结果:

    时间序列数据:
    0    40.0
    1     NaN
    2     NaN
    3    50.0
    4     NaN
    dtype: float64
    
    a=0.1指数移动平均:
    0    40.000000
    1    40.000000
    2    40.000000
    3    41.206273
    4    41.206273
    dtype: float64
    ans of time 4: 41.20627261761158
    

    二元移动窗口函数

    一些统计计算符,比如相关性和协方差,需要在两个时间序列上进行计算。例如,经济分析通常喜欢比较一只股票与基础指数标普500之间的相关性。

    更多

    展开全文
  • 线性和EWMA指数加权移动平均模型

    万次阅读 2018-03-26 22:08:04
    线性和EWMA指数加权移动平均模型 模型应用场景: 对历史测量值赋权重,对现在t时刻的数值做估计。 1 移动平均 移动平均是是技术分析其中一分析时间序列数据的工具移动平均可抚平短期波动,将长线趋势或周期...

    线性和EWMA指数加权移动平均模型

    模型应用场景:
    对历史测量值赋权重,对现在t时刻的数值做估计。

    1 移动平均

    移动平均是是技术分析其中一种分析时间序列数据的工具移动平均可抚平短期波动,将长线趋势或周期显现出来。数学上,移动平均可视为一种卷积。

    (1)简单移动平均

    简单移动平均(Simple moving average, SMA)是之前n个数值的未作加权算术平均。例如,收市价的10日简单移动平均指之前10日收市价的平均数。设收市价为p1至pn,则方程式为:

    p1+p2+...+pnn p 1 + p 2 + . . . + p n n

    (2)加权移动平均

    加权移动平均(Weighted moving average, WMA)指计算平均时个别数据乘以不同数值,在技术分析中,n日WMA的最近期一个数值乘以n、次近的乘以n-1,如此类推,一直到0:

    WMAM=npM+(n1)pM1+2pMn+2+pMn+1n+(n1)+...+2+1 W M A M = n p M + ( n − 1 ) p M − 1 + 2 p M − n + 2 + p M − n + 1 n + ( n − 1 ) + . . . + 2 + 1

    其加权为呈递减模型,如下图取n=15,显示第15个数值图形:
    这里写图片描述


    2 线性加权移动平均模型

    加权移动平均法不像简单移动平均法那样,在计算平均值时对移动期内的数据同等看待,而是根据愈是近期数据对预测值影响愈大这一特点,不同地对待移动期内的各个数据。对近期数据给予较大的权数,对较远的数据给予较小的权数,这样来弥补简单移动平均法的不足。加权移动平均法常用于进行趋势的预测。

    加权平均法的计算公式如下:

    Yn+1=nik+1n+1Yixi Y n + 1 = ∑ n − i − k + 1 n + 1 Y i x i

    式中:
    Yn+1 Y n + 1 ——第n+1期加权平均值;
    Yi Y i ——第i期实际值;
    xi x i ——第i期的权数(权数的和等于1);
    n——本期数;
    k——移动跨期;

    例如我们用该模型应用在高校教师的业绩考核上:
    我们就某高校某教室的为样本参考, Yt Y t 表示该教师t时间的业绩数据;一般移动步长去3年,即以前三年的成绩做为综合考虑对象,对其分别加权值;在选取权数的时候,应使离考核期越近的权数越大。权数的选取,听取了一些教育专家的建议,在综合各方面的建议后,将分别a1,a2,a3分别设定为0.5、0.3和0.2。这样,用来计算考核业绩的加权移动平均模型为:

    Mt=0.5Yt1+0.3Yt2+0.2Yt3 M t = 0.5 Y t − 1 + 0.3 Y t − 2 + 0.2 Y t − 3


    3 EWMA指数加权移动平均

    指数移动平均(Exponential Moving Average, EMA或EWMA)是以指数式递减加权的移动平均。各数值的加权而随时间而指数式递减,越近期的数据加权越重,但较旧的数据也给予一定的加权。
    加权的程度以常数α决定,α数值介乎0至1。α也可以用N(总数)来代表, a=2N+1 a = 2 N + 1 ,所此处当我们取N=19时,α=0.1。指数加权移动平均后图形应该呈现指数递减形式如下图:
    这里写图片描述

    这里假设p=昨日( t0 t 0 )市价,今日( t1 t 1 )EWMA的方程式为:

    EMAt1=ap+(1a)EMAt0 E M A t 1 = a p + ( 1 − a ) E M A t 0

    EMAt0 E M A t 0 分拆开如下:

    EMA=pn(1a)n+pn1(1a)n1+....+p2(1a)+p1(1a)n+(1a)n1+....+(1a)+1 E M A = p n ( 1 − a ) n + p n − 1 ( 1 − a ) n − 1 + . . . . + p 2 ( 1 − a ) + p 1 ( 1 − a ) n + ( 1 − a ) n − 1 + . . . . + ( 1 − a ) + 1

    理论上这是一个无穷级数,但由于1-α少于1,各项的数值会越来越细,可以被忽略。

    4 总结

    很明显指数加权移动平均比线性加权移动平均和简单移动平均都好,考虑了所有过去的参数值,赋予不同的权重估计下一个值。当然这里指数加权,也并不是只会考虑两个变量参数,有时计算移动平均时会加入其他变量,例如,交易量加权会加入交易量的因素等。

    csdn数学公式编写可参考:
    【1】
    https://blog.csdn.net/derrantcm/article/details/51628349#2%E5%A6%82%E4%BD%95%E8%BE%93%E5%85%A5%E4%B8%8A%E4%B8%8B%E6%A0%87
    加权移动平均:
    【2】
    http://wiki.mbalib.com/wiki/%E5%8A%A0%E6%9D%83%E7%A7%BB%E5%8A%A8%E5%B9%B3%E5%9D%87%E6%B3%95
    【3】
    https://blog.csdn.net/x_i_y_u_e/article/details/44194761


    展开全文
  • 最近在学习一些数据算法,看到很多不错的...指数或称为统计指数,在统计学中占有重要地位,是分析社会经济现象数量变化的一重要统计方法。18 世纪中叶,由于金银大量流入欧洲,欧洲物价飞涨,引起社会不安,于是...

    最近在学习一些数据算法,看到很多不错的总结性文章,突然想起自己这几年的工作主要集中在指数编制方面,也算是比较系统全面的研究并编制了一些指数,所以想把自己对指数编制的一些理解记录下来,做一个总结,方便查看同时也有助于个人理解。

    什么是指数?

    指数或称为统计指数,在统计学中占有重要地位,是分析社会经济现象数量变化的一种重要统计方法。18 世纪中叶,由于金银大量流入欧洲,欧洲物价飞涨,引起社会不安,于是产生编制物价指数的要求。当时用来比较商品价格涨落情况的相对数就称作物价指数。后来指数被推广应用到其他经济领域,如用来说明工业、农业产品综合变动的工业生产指数、农业生产指数;反映各种商品销售量综合变动情况的销售量指数;反映劳动生产率和单位成本变动情况的劳动生产率指数和单位产品成本指数等。在此基础上,指数也由动态扩展到静态,如反映计划、定额完成情况的计划完成指数和定额完成指数等。目前人们对于指数概念的认识,一般有以下两种理解,即广义指数与狭义指数。

    • 广义指数。相同种类的现象,在数量上的变化比率表现为相对数的形式,该相对数就可以叫做指数,它既可以反映单个现象的变动程度,有可以反映复杂事物的变动情况。
    • 狭义指数。有时候,复杂的社会经济现象的数量变动难以直接加总或无法直接对比,衡量这些事物的数量变动时就用到狭义指数。它是一种特殊形式的相对数。例如,在对我国工业产品的产量变动进行研究时,由于每种产品具有不同的使用价值,导致在计算某一时期的总产量是,不能简单加总计算,所以两个时期的总产量变动情况也就不能真实的反映工业产品产量的总动态。这就需要引入狭义指数来解决复杂事物不能加总的问题。

    指数分类有哪些?

    指数可以从不同的角度,有以下几种分类:

    • 按指数所反映现象的范围不同,分为个体指数和总指数。 个体指数是反映个别现象数量变动的相对数,如个别产品产量指数、个别商品价格指数等。总指数是综合反映复杂现象总体数量变动的相对数,如工业产品产量总指数、商品零售物价总指数等。由于指数理论主要是研究总指数的编制,在计算总指数时,为更加深入、全面地反映现象发展的动态,往往对总体包含的多种现象进行分类,分别计算每一类现象的指数,如粮食类价格指数、油料类价格指数。这样的指数称之为类指数,其编制方法相似于总指数。
    • 按指数所表明的指标的性质不同,分为数量指标指数和质量指标指数。数量指标指数如商品销售量指数、工业产品产量指数等,反映了研究现象总体数量规模的变动程度;质量指标指数如商品价格指数、 产品成本指数、劳动生产率指数等,说明了生产经营所取得的效益状态、工作质量的变动程度。在指数的应用中,必须重视这种区分,因为他们的编制方法不同。
    • 按指数的表现形式不同,分为综合指数、算术平均数指数及调和平均数指数。综合指数是计算总指数的基本形式,算术平均数指数、调和平均数指数合称为平均数指数,是综合指数的变形,他们从属于综合指数,又有独立的应用意义。此外,在指数分析法中,为分解加权平均指标的指标水平和单位构成变动的影响,要将两个时期加权平均指标加以对比,形成平均指标指数,它是测定同质总体内平均指标的各构成因素变动的,其基本原理仍属综合指数的范畴。
    • 按指数编制所采用的基期不同,分为定基指数和环比指数。统计要反映现象在长时间内不断变动的情况,常常要编制指数数列。例如,我国每年都计算工农业产品无量指数、国民经济发展状况的国内生产总值指数,这就形成在时间上前后衔接的指数数列。在一个指数数列中,各个指数都以某一固定时期作为基期来计算,成为定基指数;各个指数都以前一期作为基期来计算,成为环比指数。

    指数的作用有哪些?

    指数的作用主要有以下几种:

    • 综合反映复杂总体数量变动的方向和程度——因为社会经济现象中的复杂总体,其各构成单位(事物)不能直接相加汇总,但在社会经济管理与理论研究中,则要经常分析其总的变动情况,这就必须利用指数这一方法才能实现。如我国统计部门经常向社会提供的工业生产指数、农业生产指数、各种主要的价格指数等,都是综合反映有关复杂总体数量变动方向和程度的重要统计指数。
    • 根据指数之间的社会经济联系进行因素分析——社会经济现象之间是相互联系和相互制约的,一些现象的发展变化往往是其他一些现象变化影响的结果,利用指数之间的经济联系,可从数量上具体揭示某种现象的发展变化的原因及各构成因素对其具体影响,从而明确现象发展变化的主要原因及其主要矛盾,并对我们进行社会经济管理的具体成效做出客观的评价。
    • 研究社会经济现象在长期内的变动趋势——利用连续编制的指数数列,可以对社会经济现象在较长时期内发展变化的趋势进行描述和分析。如编制工业产品成本指数数列,可分析工业产品成本在某一时期内德变动趋势。还可以利用相互联系的指数数列,进行有关对比分析。如根据农产品价格指数数列和工业品零售价格指数数列,来分析工业农业产品综合比价的变化趋势,以及工农业产品价格差的变化趋势。

    指数编制流程?

    指数编制的基本流程大体上的固定的,当然也会随着不同的项目需求而有所差异。

    确定主题和目的-->确定编制方法-->指标体系构建-->指标及数据搜集-->数据处理-->指数测试-->指数论证发布
    
    • 首先是确定主题和编制目的。只有有了明确的主题和目的才能够着手设计指数编制方法,比如要编制反映股票市场走势的指数,很明显主题是股票,目的是要通过指数反映股票价格波动情况;如果要观测行业景气程度,那么主题就是所属行业,编制的目的就是通过指数度量行业发展的景气程度。
    • 其次是要确定编制方法。一般在主题和编制目的确定的情况下,编制方法基本就已经确定。比如上面说的反映股票市场走势的指数,方法应该是价格指数的方法。要观测行业景气程度的指数方法基本可以确定是景气指数方法或者发展指数方法。
    • 再次是确定指标体系。指标体系是一个指数的灵魂,往往在指数编制过程中很大一部分的工作是在指标体系的确定上。指标体系的确定需要从两方面着手,一方面是自上而下,先宏观再细化;另一方面是自下而上,先从微观方面的指标确定开始,基于指标数据可得性、代表性、指标相关性、替代性等方面的指标选择。甚至在指数测试阶段根据指标的表现,修改指标和指标体系的情况也是存在的。
    • 然后要进行的是指标数据的获取,数据处理(包括缺失值处理、标准化处理、异常值处理等),指标权重设计,指数测试、更新、修正等方法的设计。这一部分也是指数编制的关键步骤。因为很多指数之所以生命力比较强,很大一个原因是在当初设计的时候考虑比较长远,而不是只顾一时的需要仓促了事的。
    • 指数一般都需要经过一定的测试期,经过论证没毛病了以后才能公诸与众,指导公众作为参考。不然的话会误人误事,甚至可能会背负骂名。

    以上简单介绍了指数分类、作用及基本编制流程。作为指数编制序列的第一篇。后面将陆续介绍发展指数、评价指数、景气指数、价格指数等指数的编制方法以及指数编制中数据标准化、权重设置等方法。

    All things are difficult before they are easy.

    展开全文
  • 在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。 EMA的定义 指数移动平均(Exponential Moving ...普通的平均数: EMA:,其中,表示前条的平均值 ()...
  • 移动平均法是用一组最近的实际数据值来预测未来一期或几期内公司产品的需求量、公司产能等的一常用方法。移动平均法适用于即期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素
  • 指数

    千次阅读 2018-10-14 00:05:12
    一、基本问题 1、指数概念 指数,或称统计指数,是分析社会经济现象数量变化的一重要统计方法。...二是其表现形式为动态相对,既然是动态相对,涉及指标的基期对比,不同要素基期的选择就成为指数...
  • 以下有两种下载方式,如果链接失效可以搜索网上的资源 官方下载地址(可能需要梯子) 百度网盘下载 密码: 84pb 下载之后将其放在 mnist/data/ 文件夹下,目录结构如下 mnist mnist_all.py data/ train-...
  • 指数分布的定义形式及应用

    万次阅读 2015-06-08 11:24:02
    指数分布(Exponential distribution)是一连续概率分布。指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进机场的时间间隔、中文维基百科新条目出现的时间间隔等等。 指数分布的定义形式指数分布...
  • 由于上市股票种类繁多,计算全部上市股票的价格平均数指数的工作是艰巨而复杂的,因此人们常常从上市股票中选择若干富有代表性的样本股票,并计算这些样本股票的价格平均数指数。用以表示整个市...
  • 算术平均、几何平均、调和平均、平方平均和移动平均跟计算编程有什么关系:Just One Word,不能只会算术平均数,还有其他很多选择,以及不同场景使用不同的平均数。 算术平均 算术平均(Arithmetic mean)是最...
  • ECC中计算倍点的两种方法

    千次阅读 2018-03-28 16:26:59
    基于二进的计算方法中,分为两种遍历方式,一是从左向右遍历,二是从右向左遍历,该算法类似模幂运算中对于其指数的处理方式。具体算法如下。ECC中计算倍乘的算法:现计算kP,k=(kt-1,kt-2,.....,k1,k0)...
  • 加权平均

    千次阅读 2018-07-09 13:39:04
    在日常生活中,我们经常提到“平均数”。一般我们在求“平均数”时,通常是用“一组数据中所有数据之和再除以数据...“指数平均数”和“中位数”。 之前提到的,用“一组数据中所有数据之和再除以数据的个数”后所...
  • 指数衰减学习率使训练迭代更加有效:  学习率决定了每一次迭代训练过程优化神经网络的幅度,学习率的正确选取对于训练的效率、和效果均有一定的影响,如果我们学习率设定过大,则会可能导致参数在极值两侧跳动,...
  • 用Python做证券指数的三策略分析

    千次阅读 2018-02-06 00:00:00
    天恰好看到一本比较有趣的书,《FOF组合基金》。讲的是Fund of Fund,讲的是组合基金的理论,架构和实践。可以说是有既有理论高度,又有实践的策略。其中有段话比较值得玩味。“可行集中包括无数个可供投资者选择...
  • 它可以衡量当特定商品或服务价格发生变化对该组相对价格变动的影响,但由于不同商品和服务的价格变化并非同步,价格指数反映的是“平均”变化。例如,以某一时期为基期,该时期价格指数为 1或100,而其他时期的价格...
  •   统计学(二)中关于金钱与幸福指数的案例,它的样本只有一个被试。然而,正如我们所说的那样,在实际的例子当中,各领域的研究中大多数都是一个样本中包含着许多个体。所以本篇博文将考虑样本不止一个...
  • 来源:腾讯研究院5月21日,2019腾讯全球数字生态大会在昆明盛大开幕。在主峰会上,腾讯研究院发布《数字中国指数报告(2019)》(以下简称“报告”),推出2019数字中...
  • 滑动平均模型介绍 为了让MNIST数字识别模型更准确,学习几常用的模型优化手段: 学习率的优化 学习率的设置一定程度上也会影响模型的训练,如果学习率过小,那么将会经过很长时间才会收敛到想要的结果,反之,...
  • 具体到指数的省份排名,广东、江苏继续位居前2,北京超越浙江上升到第3位,河南上升位位居第6,上海超越湖南上升至总指数排名的第8位。河北首次跻身总指数排名前10的行列。 具体到城市,除“北上广深”外西部双子...
  • 智源导读:12月10日,Nature Index 发布了其 AI 增刊(Nature Index AI supplement),该刊分别使用了Nature Index(自然指数)数据和规...
  • 股票价格指数

    千次阅读 2008-11-17 17:39:00
    股票价格指数 股票价格指数简介 股票价格指数即股票指数。是由证券交易所或金融服务机构编制的表明股票行市变动的一供参考的指示数字。由于股票价格起伏无常,投资者必然面临市场价格风险。对于具体某一股票的...
  • 首先要明确pandas是做什么的,在确定是如何做的,通过哪些方式去做的? pandas是做什么的?  Python Data Analysis Library 或 pandas 是基于NumPy 的一工具,该工具是为了解决数据分析任务而创建的。Pandas ...
  • 概率论与数理统计基本知识点

    千次阅读 2018-12-13 19:14:57
     0-1分布 任何一个只有两种结果的随机现象,比如,抛硬币观察正反面,新生儿是男还是女,检查产品是否合格等,都可用它 来描述。  二项分布 属性数据分析的主要对象 超几何分布:主要应用于如费希尔精确检验等...
  • 指数平滑法——趋势平滑预测方法

    万次阅读 2019-07-09 09:08:09
    原文地址:... 指数平滑法(Exponential Smoothing,ES) 目录 1什么是指数平滑法 2指数平滑法的基本公式 3指数平滑的预测公式 3.1(一) 一次指数平滑预测 ...
  • 中国空气质量指数(AQI)及其计算方式

    千次阅读 热门讨论 2021-06-14 20:44:52
    从之前的3、5污染物到现在的6污染物标准,分别为:,具体如下: 表1 中国空气质量指数发展历程 2、AQI计算方法 如表1 所示,空气质量指数分为24h平均指数、1h平均指数以及8h平均,所以不同类型的指数计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,954
精华内容 15,981
关键字:

平均数指数的两种基本形式