pandas 指数加权滑动(ewm), 指数加权滑动平均(ewma)

pandas.DataFrame.ewm()

import pandas as pd
import numpy as npdf = pd.DataFrame([0.0, np.nan, 1.0, 2.0, np.nan, 3.0])
print(df)
    0
0   0.0
1   NaN
2   1.0
3   2.0
4   NaN
5   3.0
print('span=2,ignore_na=False, adjust= True :\n', df.ewm(span=2,ignore_na=False, adjust= True).mean())
print('\n span=2,ignore_na=True, adjust= True :\n', df.ewm(span=2,ignore_na=True, adjust= True).mean())
  • 忽略nan,就是从计算yt时候向前看,nan值不看,加权向历史走去
  • 不忽略nan时候,nan处也付给权重,但是最后算的结果nan位置的权重被占掉了。
  • 我们应该选择ignore_na=True合理一些。
  • nan数据的那个时刻的ewma由其前面历史数据计算得到,只有历史数据包括子自己全是nan,结果才是nan,这其实相当于是将平均的结果用其前面一个值填充!!!!

我们看下计算结果:

span=2,ignore_na=False, adjust= True :0
0  0.000000
1  0.000000
2  0.900000
3  1.702703
4  1.702703
5  2.828571span=2,ignore_na=True, adjust= True :0
0  0.000000
1  0.000000
2  0.750000
3  1.615385
4  1.615385
5  2.550000

滑动平均ewa时如何计算的?

When adjust=True we have y0=x0y0=x0y_0=x_0 and from the last representation above we have yt=αxt+(1−α)yt−1yt=αxt+(1−α)yt−1y_t=\alpha x_t+(1−\alpha)y_{t-1}, therefore there is an assumption that x0x0x_0 is not an ordinary value but rather an exponentially weighted moment of the infinite series up to that point.

adjust=True:

yt=xt+(1−α)xt−1+(1−α)2xt−2+...+(1−α)tx01+(1−α)+(1−α)2+...+(1−α)tyt=xt+(1−α)xt−1+(1−α)2xt−2+...+(1−α)tx01+(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}
这是考虑到历史数据的有限性,如果历史数据趋于无限的话,这个表达式的分母会变为 11−(1−α)11−(1−α)\frac{1}{1-(1-\alpha)}

adjust=False:

y0=x0,yt=(1−α)yt−1+αxty0=x0,yt=(1−α)yt−1+αxt

y_0=x_0, \\ y_t=(1-\alpha)y_{t-1}+\alpha x_t
等价于

wi=α(1−α)iifi<t(1−α)iifi=twi=α(1−α)iifi<t(1−α)iifi=t

w_i = \alpha(1-\alpha)^i\; if\; i
这种情况下,假定历史数据是无限长的。

参考链接:

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.ewm.html
http://pandas.pydata.org/pandas-docs/stable/computation.html#exponentially-weighted-windows

pandas: ewm的参数设置相关推荐

  1. pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串

    pandas使用read_csv函数读取文件时指定数据列的数据类型.pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串 目录

  2. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)

    pandas使用groupby函数对dataframe进行分组统计.使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index) 目录

  3. 【Python基础】Pandas参数设置的八个小技巧

    在日常使用pandas的过程中,由于我们所分析的数据表规模.格式上的差异,使得同样的函数或方法作用在不同数据上的效果存在差异. 而pandas有着自己的一套「参数设置系统」,可以帮助我们在遇到不同的数 ...

  4. pyradiomics的yaml文件参数设置解读、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(16)主要介绍: pyradiomics的yaml文件参数设置解读 pyradiomics 官网对yaml文件有详细说明: The th ...

  5. sklearn逻辑回归参数设置_【机器学习笔记】:逻辑回归实战练习(二)

    作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 前言 前几篇介绍了逻辑回归在机器学习中的重要性:5个原因告诉你:为什么在成为数据科学家之前,"逻辑回归&q ...

  6. pandas读取文件参数

    pandas读取文件参数 pd.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]],#文件路径或网址连接sep=',' ...

  7. 【SuperMap-Leaflet】等值线/面裁剪参数设置

    文章目录 前言 一.项目背景 二.使用步骤 1. clipRegion参数设置 2. 实例 总结 前言 超图GIS比赛参赛过程中的随笔. 虽然很支持我国的GIS相关产业发展,但就目前来说要赶上ESRI ...

  8. python可视化直方图的x轴参数设置_Python数据分析matplotlib可视化之绘图

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  9. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

最新文章

  1. CUDA FORTRAN编译器
  2. HSV颜色空间 HSV空间各通道分离实验
  3. 2019,从刷新你的运营知识库开始!
  4. appimage文件怎么安装_bauh:在一个界面中管理 Snap、Flatpak 和 AppImage | Linux 中国...
  5. oracle解析儒略日,利用to_char获取当前日期准确的周数!
  6. 重磅|前浪、后浪 一起迎接风口! BCS 2020向全球发起议题征集
  7. vue下载文件流图片
  8. 3D游戏图形API简史
  9. 计算机网络 路由选择,路由选择
  10. MIDI二进制文件格式简析
  11. Linux入门学习笔记
  12. 关于目标跟踪SiamMask的Youtube-VOS 数据库下载
  13. JavaWeb-错误:类xxx不是Servlet
  14. node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次 的解决方案
  15. 学生申请Axure RP10免费使用详细教程
  16. 微信公众号发送模板消息,发送消息到某个用户
  17. win10锁屏c语言,Win10怎样在锁屏状态下打开某种应用程序
  18. 计算机网络实验——用三层交换机实现VLAN通信
  19. 【研究生开学季】让你幸福感砰砰砰的宿舍神器
  20. python中temp是什么意思_pythontemp是什么

热门文章

  1. 电视80寸长宽是多少厘米
  2. Token流通量的变化能直接影响价格吗? | TokenInsight
  3. c++ 手写堆 (包括建堆、排序、添加元素、删除元素)
  4. 【COCI2013】slasticar
  5. (转载)屏蔽浏览器的百度、阿里妈妈推广等广告
  6. 万能计算机作文,万能机器人作文(共6篇)
  7. 《动物园之星》给模拟经营游戏带来了什么
  8. C语言在txt文本后面添加字符串函数总结
  9. 中国有嘻哈——押韵机器人
  10. python移动端内存、电量监控脚本