如何找到经验数据集(股票收益)的最佳拟合参数分布?

问题描述 投票:0回答:2

给定一些实值经验数据(时间序列),我可以将其转换为直方图,以获得数据的(非参数)经验分布,但是直方图是块状和锯齿状的。

相反,我想从 scipy

scipy.stats
分布函数库中确定最拟合的
参数分布
,以便我可以人为地生成与真实数据的经验分布紧密贴合的参数分布。

例如,如果经验数据是经验 AAPL 股票收益的月度收益,我知道参数 Johnson-SU 分布 类似于并且可以模仿股票收益分布,因为它具有可定制的偏差。然而,

scipy
中的 Johnson SU 分布需要校准四个输入参数。如何从
scipy
中搜索该参数分布的最佳参数设置,使其适合我的 AAPL 回报样本的经验分布?

python scipy distribution finance quantitative-finance
2个回答
0
投票

Q : “我想从

scipy
scipy.stats
分布函数库中识别出最拟合的参数分布,这样我就可以人为地生成一个与我的真实经验分布紧密贴合的参数分布。数据。”

上面来自@SeverinPappadeux的链接可能会有所帮助(K-S测试很好),但它效果很好,但是对于一对已经完整的分布的分析比较,而不是其实际建设性生成的过程。

因此,让我们消除目标的歧义:
- 任务的重点是使用

scipy
/
scipy.stats
生成器吗?

- 任务的重点是实现生成与经验“原始”足够匹配的合成分布的过程?


如果前者是您的愿望,
那么
我们遇到了矛盾,寻求一个可参数化(脚本化)的分布式生成器引擎,它将(在某种意义上的“最佳”)匹配一个基本上不可编写脚本的经验分布好吧,因为一个人
可能仍然希望这样做然后
你确实会陷入某种痛苦的ParameterSPACE搜索策略(使用现成的或定制的
scipy

/
scipy.stats
 硬编码生成器)将尝试找到这些生成器硬编码参数的 ParameterSPACE 向量的“最佳”匹配值。这可能会在某种程度上教会您关于维度增长的罪恶(硬编码生成器的参数越多,参数空间搜索空间就越大,陷入 
O( n * i^N * f^M * c^P * b^Q)
 双重麻烦,具有 
N
-整数, 
M
-浮点型、
P
-基数和
Q
-各自硬编码生成器的布尔参数,这对您的时间预算来说非常不利,不是吗?)。


如果是后者,那么
我们可以通过正确定义什么是“匹配”
“原始”的“健康”来专注于更富有成效的方式。

第一个候选方法是生成一个相当随机的(很容易由 PRNG 产生的)噪声,如果 PriceDOMAIN 方向内的噪声不是太“强”,则可以简单地添加到经验 -

“原始” 中,我们开始.

可能会添加更多的复杂性,使用使用叠加、退出、频率特定技巧、异常值附加组件的相同技巧(如果稍后测试某些数据流响应策略等的稳健性的属性/限制)等)

无论如何,针对后一个目标的所有这些方法都有一个可爱的特性,即不会疯狂地进行高维参数空间的任何大量搜索,但通常与

O( n )

 缩放一样好——这很酷,不是吗? ?

所以,只有自己的

想象力才是极限:o)


0
投票

JSUparameters

 是一个 
R 包,可以满足您的需求;它将估计给定数据集的最佳拟合 Johnson $S_U$ 分布的参数。

该软件包可以从 CRAN 下载:

https://CRAN.R-project.org/package=JSUparameters

您还可以从其 GitHub 存储库查看正在使用的示例:

https://github.com/cjclarke98/JSUparameters

最后,您可以阅读有关该包的简短博客文章:

https://cjclarke.weebly.com/blog

© www.soinside.com 2019 - 2024. All rights reserved.