贝叶斯定理在股票交易系统评测中的应用
农夫山泉xa
+关注
博主要求身份验证
登录用户ID:
开始本文之前,先看一个《贝叶斯定理在医疗 行业的应用》案例。
(以下文字复制于知乎 ,首先对作者表示感谢)======================================================================贝叶斯定理在医疗行业的应用每一个医学检测,都存在假阳性率和假阴性率。假阳性,就是没病,但是检测结果显示有病。假阴性正好相反,有病但是检测结果正常。即使检测准确率是99%,如果医生完全依赖检测结果,也会误诊。也就是说假阳性的情况,根据检测结果显示有病,但是你实际并没有得病。举个更具体的例子,因为艾滋病潜伏期很长,所以即便感染了也可能在很长的一段时间,身体没有任何感觉,所以艾滋病检测的假阳性会导致被测人非常大的心理压力。你可能会觉得,检测准确率都99%了,误测几乎可以忽略不计了吧?所以你觉得这人肯定没有患艾滋病了对不对?让我们用贝叶斯定理算一下,就会发现你的直觉是错误的。假设某种疾病的发病率是0.001,即1000人中会有1个人得病。现在有一种试剂可以检验患者是否得病,它的准确率是0.99,即在患者确实得病的情况下,它有99%的可能呈现阳性。它的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。现在有一个病人的检验结果为阳性,请问他确实得病的可能性有多大?好了,我知道你面对这一大推信息又头大了,我也是。但是我们不是有贝叶斯模板套路嘛,下面开始。第1步,分解问题1) 要求解的问题:病人的检验结果为阳性,他确实得病的概率有多大?病人的检验结果为阳性(新的信息)记为事件B,他得病记为事件A,那么要求的问题就是P(A|B),也就是病人的检验结果为阳性(B),他确实得病的概率(A)2) 已知信息:这种疾病的发病率是0.001,即P(A)=0.001试剂可以检验患者是否得病,准确率是0.99,也就是在患者确实得病的情况下(A),它有99%的可能呈现阳性(B),所以P(B|A)=0.99试剂的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。得病我们记为事件A,那么没有得病就是事件A的反面,记为A‘,所以这句话就可以表示为P(B|A‘)=5%2.应用贝叶斯定理1)求先验概率疾病的发病率是0.001,P(A)=0.0012)求可能性函数P(B|A)/P(B)其中,P(B|A)表示在患者确实得病的情况下(A),试剂呈现阳性的概率,从前面的已知条件中我们已经知道P(B|A)=0.99现在只有求出P(B)就可以得到答案。根据全概率公式,可以用下图求得P(B)=0.05094所以可能性函数P(B|A)/P(B)=0.99/0.05094=19.43463)带入贝叶斯公式求后验概率我们得到了一个惊人的结果,P(A|B)等于1.94%。也就是说,筛查的准确率都到了99%了,通过体检结果有病(阳性)确实得病的概率也只有1.94%[align=center]你可能会说,再也不相信那些吹的天花乱坠的技术了,说好了筛查准确率那么高,结果筛查的结果对于确诊疾病一点用都没有,这还要医学技术干什么?没错,这就是贝叶斯分析告诉我们的。我们拿艾滋病来说,由于发艾滋病实在是小概率事件,所以当我们对一大群人做艾滋病筛查时,虽说准确率有99%,但仍然会有相当一部分人因为误测而被诊断为艾滋病,这一部分人在人群中的数目甚至比真正艾滋病患者的数目还要高。你肯定要问了,那该怎样纠正测量带来这么高的误诊呢?造成这么不靠谱的误诊的原因,是无差别地给一大群人做筛查,而不论测量准确率有多高,因为正常人的数目远大于实际的患者,所以误测造成的干扰就非常大了。根据贝叶斯定理,我们知道提高先验概率,可以有效的提高后验概率。所以解决的办法倒也很简单,就是先锁定可疑的人群,比如10000人中检查出现问题的那10个人,再独立重复检测一次。因为正常人连续两次体检都出现误测的概率极低,这时筛选出真正患者的准确率就很高了,这也是为什么许多疾病的检测,往往还要送交独立机构多次检查的原因。这也是为什么艾滋病检测第一次呈阳性的人,还需要做第二次检测,第二次依然是阳性的还需要送交国家实验室做第三次检测。在《医学的真相》这本书里举了个例子,假设检测艾滋病毒,对于每一个呈阳性的检测结果,只有50%的概率能证明这位患者确实感染了病毒。但是如果医生具备先验知识,先筛选出一些高风险的病人,然后再让这些病人进行艾滋病检查,检查的准确率就能提升到95%。======================================================================看完了上面的案例分析,炒股的朋友很多会联想到这种对医学检测系统进行评测的方法,是否同样可以应用于股票交易系统的评测?这也正是本文所要探讨的。在前文引述的案例中,如果我们先做几个替换:艾滋病阳性——股票上涨,检测准确率——交易系统的准确率误报率——交易系统的误报率发病率——股票上涨的概率说明一点,关于发病率,前文的案例中举例为1‰,在做上面的概念替换时,我们把发病率替换为“股票上涨的概率”,下文的计算我们假定“股票上涨的概率”为50%,这样我们就得到一组股票上涨的案例信息(假设值):交易系统的准确率——90%交易系统发出信号后的误报率——5%股票上涨的概率——50%
仿照本文开始的知乎案例进入解题程序。第1步,分解问题3) 要求解的问题:系统发出上涨信号,它确实上涨的概率有多大?系统发出上涨的信号记为事件B,它确实上涨记为事件A,那么要求的问题就是P(A|B),也就是系统发出上涨信号(B),他确实上涨的概率(A)4) 已知信息:假定近段时间股票的上涨概率为50%,既有50%可能会上涨,即P(A)=0.5系统预告是否会上涨准确率是90%即0.90,也就是在股票确实以上涨收盘的情况下(A),系统有90%的可能在早盘就发出上涨信号(B),所以P(B|A)=0.90系统的误报率是5%,即在股票没能以红阳收盘的情况下,它有5%的可能在早盘发出的是上涨信号。收盘上涨我们记为事件A,那么收盘没有上涨就是事件A的反面,记为A‘,所以这句话就可以表示为P(B|A‘)=5%2.应用贝叶斯定理1)求先验概率上涨的概率是0.5,P(A)=0.52)求可能性函数P(B|A)/P(B)其中,P(B|A)表示在收盘确实上涨的情况下(A),早盘就发出上涨信号的概率,从前面的已知条件中我们已经知道P(B|A)=0.90现在只有求出P(B)就可以得到答案。根据全概率公式,可以求得P(B)= P(B|A) P(A)+ P(B|A’)P(A’)=0.9*0.5+0.05*0.9=0.475所以可能性函数P(B|A)/P(B)=0.90/0.475=1.89473)代入贝叶斯公式求后验概率P(A|B)= P(A)* P(B|A)/P(B)=0.5*1.8947=94.735%也就是说,当系统的准确率达到90%时,通过系统的上涨预报信号,在收盘确实上涨的概率为94.735%
应用上述的方法我们再做一次涨停的后验概率分析。其它的条件都不变,只是把上涨的概率50%修改为涨停的概率10%,先验概率P(A)=0.1全概率P(B)= P(B|A) P(A)+ P(B|A’) P(A’)=0.9*0.1+0.05*0.9=0.135可能性函数P(B|A)/P(B)=0.90/0.135=6.667后验概率P(A|B)= P(A)* P(B|A)/P(B)=0.1*6.667=66.7%这表示,在你的系统准确率达到90%时,你抓到涨停的而概率是66.7%。后验概率能达到60%以上的系统还是可信度比较高的,对于后验概率小于50的交易系统,说明还需要继续修炼完善,那样的系统还不能带你走上稳定盈利之路,只会让你的收益曲线在振荡与颠簸中爬行向前。