zoukankan      html  css  js  c++  java
  • 数据窥视偏差:策略优化陷阱

    https://www.weivol.cn/2018/03/data-snooping-bias/

    数据窥视偏差

    数据窥视( data-snooping )是指从数据中发现统计上显著但实际并不存在的关系,是金融分析里面非常普遍和严重的一个问题。在金融分析中,因为我们可以对同一个数据集进行无数次的实证研究,如果有足够的时间、足够的尝试和足够的想象力,我们可以不需要考虑经济上的合理性而直接寻找金融变量统计上的关系,这样我们几乎能从任何数据集中推断出任何规律。通过数据窥探,我们可以让数据分析结果更显著来支持自己的立场,这些行为往往让实验无法重复。

    例如,在Wikipedia上的一个例子显示了拼字比赛获胜单词中的字母数(红)与被毒蛇杀死的美国人的数量(黑)之间的正相关关系,这种关系实际上并不真实。

    数据窥视

    Timothy Crack [1] 在文章里通过月相和股市波动率之间的例子,Andrew Lo [2] 在文章里通过一个以Carmichael数字来选股的例子,都说明了数据窥视偏差在金融分析应用中的危险性。

    由于投资策略的一个小偏差常常会导致投资业绩的巨大差异,数据窥视偏差( data-snooping bias)可能会导致严重的后果。在回测投资策略时,不管我们有没有选股思想,我们都可以不断通过调整现有参数或加入新的参数使某一策略在历史数据测试集的表现很好。从机器学习的角度来看,这即是过度拟合(Overfitting)。经过过度优化,投资策略虽然在回测数据上表现不错,然而实盘交易的表现却会明显不一样。

    如果不通过实验证明而仅仅通过数据推理,数据窥视偏差将不可避免。特别对于非线性模型来说,由于模型可以选取各种自由度,数据窥视偏差不能完全消除。可以说,只要我们使用数据,我们就会面临数据窥视偏差的问题。

    数据窥探偏差在几种情况下最有可能出现。

    1、当大量数据存在时,它更可能发生。显然,这适用于金融市场。

    2、当许多分析师使用完全相同的数据集。这种情况也适用于金融市场。

    3、缺乏经济理论、经验、直觉和判断。

    4、个人态度:认为只要数据推理能用就行,而不管为什么能用。

    数据窥视的本质在于,关注有趣的事件与试图弄清哪些事件是有趣的是完全不同的。前者可以通过统计来完成,后者则需要额外的理论支持。认识数据窥视偏差、了解数据窥视偏差的影响是处理这个问题的最重要的一步。为了避免数据窥视偏差,我们必须理解为什么可以使用该模型来解释数据,通过采用经济理论、心理学理论,等理论框架或者分析师的直觉、判断和经验来理解模型与数据。实际操作中,可以采用不断试错(trial and error)的方法来进一步学习数据。

    样本外测试

    我们的投资策略最终是要面向未来市场环境的。策略的历史回测结果,仅仅是这个策略在过去的业绩,更多是给自己看的,没有必要过于追求策略过去的收益率而过度优化模型。我们应更加深入的认识了解市场,通过对市场的认知来理解模型与数据,来设计投资策略。在实际策略回测中,我们可以使用样本外测试来减少数据窥视偏差对投资决策的影响。

    为了减少回测结果只是偶然发生的概率,我们可以把用于测试数据分为2个样本数据。
    1、样本内数据(in sample),用来设计投资策略,选出表现较好的策略。
    2、样本外数据(out-of-sample),用来测试样本内数据选出的表现好的投资策略。

    out of sample

    样本外测试充当一个过滤器,其中在样本外测试中表现的不如样本内测试的投资策略将被拒绝,只有同时通过这两个测试的策略才被接受。这种方法极大地降低了投资策略遭受数据窥视偏差不利影响的可能性。

    例如,我们可以从2010-2015年的数据作为样本内数据测试投资策略,并利用2015-2017年的数据进行样本外测试。在完成样本内测试时,选择符合我们的盈利标准的几个最佳策略,并创建策略列表。然后分析这个列表中的策略在样本外数据里的表现。

    我们应该仔细选择上述两个测试样本中使用的数据时间段。选择的两个样本期内最好不发生牛市/熊市,通货膨胀/通货紧缩等市场机制(market regime)变化。

    最后,我们可以引入第三个测试周期,即纸面交易(paper trading,或称模拟交易)。如果我们的投资策略通过了样本外测试,我们可以在真实的市场化环境中进行模拟交易,如果策略表现优秀,我们就可以转换成实盘交易。

    参考:

    1、Timothy Falcon Crack: A Classic Case of “Data Snooping” for Classroom Discussion,  1999

    2、Andrew W. Lo: Data-Snooping Biases in Financial Analysis, 1994

    本文是全系列中第6 / 6篇:模型风险

  • 相关阅读:
    存储过程 游标 有用
    Spring框架IOC容器和AOP解析 非常 有用
    业务逻辑;完成根据自动分单结果来决定进行的相关业务处理
    业务逻辑:完成基于分区关键字匹配的自动分单业务逻辑
    业务逻辑:完成基于CRM地址完全匹配的自动分单业务逻辑
    业务逻辑:完成客户下单后前台系统的数据处理并调用后台系统服务处理业务 webservice接口调用 有用
    Spring IOC 少
    Spring IOC 巨多 非常 有用
    Spring ioc
    LeetCode -- Remove Element
  • 原文地址:https://www.cnblogs.com/dhcn/p/15503841.html
Copyright © 2011-2022 走看看