【问题标题】:Python: Fitting copula to time series Data and placing new data within distributionPython:将 copula 拟合到时间序列数据并将新数据放入分布中
【发布时间】:2020-11-02 04:47:42
【问题描述】:

我正在导入价格数据并希望将这些数据放入从历史数据创建的 copula 中,我最初使用包 copulalib(也可以使用 copulas)来创建 copula(在本例中为 Gumbel),但我无法放置我的新价格数据分布。 当从这些包生成 u, v 时,它使用从均匀分布中提取的随机数,有没有办法使用定价数据来做到这一点?

【问题讨论】:

  • 我建议提供您提到的包的示例数据和链接。我猜这个包会生成一个随机向量 (u,v),具有均匀的边际和 Gumbel copula。根据 Sklar 定理,你需要的向量是 (X,Y)=(F^-1(U),G^-1(V)),其中 F 和 G 是 X 和 Y 的边际分布:什么是边际在您的定价数据集中需要?

标签: python-3.x time-series


【解决方案1】:

如果问题中没有提供任何数据,我建议从 Gumbel copula 中创建一个 theta = 2 的样本,然后尝试将 Gumbel copula 拟合到获得的样本中以猜测 theta

import openturns as ot

theta = 2
Original_copula = ot.GumbelCopula(theta)
sample = Original_copula.getSample(500)

# Fitting of a Gumbel copula
Fitted_distribution = ot.GumbelCopulaFactory().build(sample)
print("Guessed theta =", Fitted_distribution.getParameter()[0])
>>> Guessed theta = 2.1805628386645686

对于 5000 的样本量,我得到 猜测的 theta = 2.0099533501045226

More available OpenTURNS Copulas here

【讨论】:

    猜你喜欢
    • 2011-05-16
    • 1970-01-01
    • 2021-08-15
    • 2012-05-17
    • 2018-10-03
    • 2019-01-13
    • 2016-11-10
    • 2013-03-06
    • 2015-10-10
    相关资源
    最近更新 更多