如何为经验数据集股票收益找到最合适的参数分布?

问题描述

鉴于一些实值经验数据(时间序列),我可以将其转换为直方图,以具有数据的(非参数)经验分布,但直方图块状且呈锯齿状。

相反,我想从分布函数scipyscipy.stats库中找出最合适的参数分布,以便我可以人为地生成参数分布完全符合我的真实数据的经验分布。

例如,如果经验数据是AAPL经验性股票收益的月度收益,则我知道参数 Johnson-SU分布类似于并且可以模仿,因为其可定制的偏斜。但是,scipy中的Johnson SU分布需要校准四个输入参数。如何从scipy搜索与我的AAPL收益样本的经验分布相适应的参数分布的最佳参数设置?

解决方法

Q “我想从分布函数的scipyscipy.stats库中确定最合适的参数分布,以便我可以人为地生成与我的真实数据的经验分布非常契合的参数分布。”

上面@SeverinPappadeux的链接可能会有所帮助(KS测试很好),但效果很好,但是对于一对已经完全分布的分析比较,而不是针对实际的建设性产生。

因此,我们要消除目标的歧义:
-该任务是否专注于使用scipy / scipy.stats生成器?

-该任务专注于实现一个合成分布完全符合经验“原始”的过程?


如果您希望的是前者,
然后,
我们就会遇到矛盾,以寻求一种可参数化(脚本化)的分布式生成器引擎, “最佳” -某种程度的感觉)与基本上无法描述的经验分布相匹配
,因为可能仍然希望这样做
然后
,您的确会陷入某种痛苦的ParameterSPACE搜索策略(使用现成或自定义的scipy / scipy.stats硬编码生成器),该策略将试图找到“最佳” “-这些生成器的硬编码参数的ParameterSPACE-vector的匹配值。这可能会在某种程度上教会您有关维数增长的罪过(硬编码生成器拥有的参数越多,ParameterSPACE搜索空间越大,这会导致 O( n * i^N * f^M * c^P * b^Q) 双重麻烦,具有各自硬编码生成器的N整数,M浮点数,P基数和Q布尔值的参数,这对您的时间预算非常不利,不是吗?)。


是否应该是后者,
然后,
我们可以通过适当定义什么是“健康”或“匹配”来关注更有效的方式。 “原始”

第一个选择是生成一个相当随机的(很容易由PRNG产生的)噪声,如果在PriceDOMAIN方向上不太“强”,可以简单地将其添加到经验中-“原始” ,然后开始。

使用相同的技巧,如叠加,辍学,特定于频率的技巧,异常的附加组件,可以添加更多的复杂性(如果稍后测试某些数据流响应型的属性/健壮性限制)策略等)

无论如何,用于后一个目标的所有这些方法都具有一个可爱的特性,即它不会在任何大规模搜索高维ParameterSPACE的过程中疯狂奔放,但通常效果与O( n )缩放的一样好-很酷,是吗?

所以,只有一个人的想象力是这里的限制:o)