pandas应用之分组因子暴露和分位数分析

首先感谢原书作者Mes McKinney和batteryhp网友的博文, 俺在此基础上继续探索python的神奇功能.

用A股的实际数据, 以书里的代码为蓝本, 做一些实证探索. 发现不少问题

  • pandas版本升级之后, 函数调用的方式必须相应地改变. 比如 pd.rolling_mean 升级为Series.rolling().mean()等等
  • tushare的数据与yahoo财经的数据格式上的差异, 需要规整化, 等等
  • 至少会有两篇后续的博文详细记录探索历程.

《利用python进行数据分析》读书笔记--第十一章 金融和经济数据应用(一) - 司空格子Ored - 博客园 http://www.cnblogs.com/batteryhp/p/5060381.html

第十一章 金融和经济数据应用(一)

自从2005年以来, Python在金融行业的应用得到了迅猛的增长, 这主要受益于成熟的函数库和经验丰富的Python程序员. 很多机构都发现Python不仅非常适合交互式的分析环境, 而且也非常适合开发稳健的系统, 而且所需的时间要比Java或者C++少很多.

The use of Python in the financial industry has been increasing rapidly since 2005, led

largely by the maturation of libraries (like NumPy and pandas) and the availability of

skilled Python programmers. Institutions have found that Python is well-suited both

as an interactive analysis environment as well as enabling robust systems to be devel-

oped often in a fraction of the time it would have taken in Java or C++.

§1 数据规整化方面的话题(data munging topics)

前几章里涉猎过一些不错的金融应用领域方面的数据规整化的工具. 本章我将重点介绍这一问题领域的几个话题.

Many helpful data munging tools for financial applications are spread across the earlier

chapters. Here I’ll highlight a number of topics as they relate to this problem domain.

操作不同频率的时间序列(Operations with TS of different frequncies)

§2 分组变换和分析(group transforms and analysis)

§3 更多应用实例

在第九章中,已经学习了分组统计的基础,还学习了如何对数据集的分组应用自定义的变换函数。

2.1 分组因子暴露(group factor exposure)

因子分析(factor analysis)是投资组合定量管理中的一种技术。投资组合的持有量和性能(收益与损失)可以被分解为一个或多个表示投资组合权重的因子(风险因子就是其中之一)。例如,某只股票与某个基准(比如标普500指数)的协动性被称为其beta风险系数。下面以一个人为构成的投资的投资组合为例进行讲解,它由三个随机生成的因子(通常称为因子载荷)和一些权重构成。

Factor analysis is a technique in quantitative portfolio management. Portfolio holdings and performance (profit and loss) are decomposed using one or more factors (risk factors are one example) represented as a portfolio of weights. For example, a stock price’s co-movement with a benchmark (like S&P 500 index) is known as its beta, a common risk factor. Let’s consider a contrived example of a portfolio constructed from 3 randomly-generated factors (usually called the factor loadings) and some weights:

2.2 十分位和四分位分析(decimal and quantile analysis)

基于样本分位数的分析是金融分析师们的另一个重要工具,例如,股票投资组合的性能可以根据个股的市盈率被划分到四分位里(四个大小相同的象限)。通过pandas.qcutgroupby函数可以非常轻松地实现分位数分析.

在下面的这个例子里, 我们利用跟随策略或者动量交易策略通过SPY-ETF买卖标普500指数. 你可以从yahoo财经下载历史价格.

Analyzing data based on sample quantiles is another important tool for financial ana-

lysts. For example, the performance of a stock portfolio could be broken down into

quartiles (four equal-sized chunks) based on each stock’s price-to-earnings. Using pandas.qcut combined with groupby makes quantile analysis reasonably straightforward.

As an example, let’s consider a simple trend following or momentum strategy trading

the S&P 500 index via the SPY exchange-traded fund. You can download the price

history from Yahoo! Finance:

pandas应用之分组因子暴露和分位数分析的更多相关文章

  1. pandas聚合和分组运算——GroupBy技术(1)

    数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以参考下. pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作.根据一个或多个 ...

  2. pandas聚合和分组运算之groupby

    pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作.根据一个或多个键(可以是函数.数组或DataFrame列名)拆分pandas对象.计算分 ...

  3. pandas中的分组技术

    目录 1  分组操作 1.1  按照列进行分组 1.2  按照字典进行分组 1.3  根据函数进行分组 1.4  按照list组合 1.5  按照索引级别进行分组 2  分组运算 2.1  agg 2 ...

  4. pandas获取groupby分组里最大值所在的行,获取第一个等操作

    pandas获取groupby分组里最大值所在的行 10/May 2016 python pandas pandas获取groupby分组里最大值所在的行 如下面这个DataFrame,按照Mt分组, ...

  5. pandas学习(数据分组与分组运算、离散化处理、数据合并)

    pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...

  6. pandas之groupby分组与pivot_table透视表

    zhuanzi: https://blog.csdn.net/qq_33689414/article/details/78973267 pandas之groupby分组与pivot_table透视表 ...

  7. 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析

    数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...

  8. dubbo源码分析12——服务暴露3_doExportUrls()方法分析

    本文紧接上文,doExportUrls()方法位于ServiceConfig类中,代码入口如下: private void doExportUrls() { List<URL> regis ...

  9. Pandas学习(三)——NBA球员薪资分析

    欢迎加入python学习交流群 667279387 学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学 ...

随机推荐

  1. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. NDK开发-简介&环境搭建(Eclipse,Android Studio)

    NDK简介 NDK(Native Development Kit)是一套工具集,允许你在Android应用中嵌入c或c++. 使用NDK的好处主要有以下4点: 安全:由于apk的java层代码很容易被 ...

  3. 1016. Boundaries on A New Kind of Science 解题报告

    题目链接: http://soj.sysu.edu.cn/1016 题目大意: 给定一个字符串和256条规则,将某条规则应用于字符串,字符串将发生变化,给定一个数max,求出在max步内可以将字符串变 ...

  4. 【数论】X problem

    X problem      X问题     Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  5. XAF 如何基于业务规则禁用属性

    // Developer Express Code Central Example: // How to: Disable Property Editors Based on a Business R ...

  6. 在.NET中使用JQuery 选择器精确提取网页内容

    1. 前言 相信很多人做开发时都有过这样的需求:从网页中准确提取所需的内容.思前想后,方法无非是以下几种:(本人经验尚浅,有更好的方法还请大家指点) 1. 使用正则表达式匹配所需元素.(缺点:同类型的 ...

  7. SCALA XML pattern attrbute(属性)

    from: Working with Scala's XML Support 虽然这个guy炒鸡罗嗦,但是还是讲到我要的那句话:  Because Scala doesn't support XML ...

  8. Linux 文件操作监控inotify功能及实现原理【转】

    转自:http://blog.chinaunix.net/uid-26585427-id-5012973.html 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. ...

  9. Dynamics AX 2012 在BI分析中建立数据仓库的必要性

    AX系统已有的BI分析架构 对于AX 的BI分析架构,相信大家都了解,可以看Reinhard之前的译文[译]Dynamics AX 2012 R2 BI系列-分析的架构 . AX 的BI分析架构的优势 ...

  10. mysql分区交换exchange partition

    在表和分区间交换数据 mysql5.6开始支持alter table..exchange partition语法,该语句允许分区或子分区中的数据与另一个非分区的表中的数据进行交换,如果非分区表中的数据 ...