【问题标题】:How to choose a Threshold for Peaks over Threshold method in R如何在 R 中为峰值超过阈值的方法选择阈值
【发布时间】:2020-03-22 19:42:44
【问题描述】:

我有一个财务数据的数据集,并且已经做成了log return,所以所有数据都在-1到1之间。

我正在尝试使用以下代码:

getSymbols("^IXIC",from="2016-11-11",to="2018-11-08")
index<-as.vector(IXIC$IXIC.Close)
logret <- diff(log(index))

使用包绘制不同的阈值

library("ismev")
library("evir")
gpd.fitrange(logreturns, umin=0,umax=1)

但它给了我一个错误,我不知道如何以其他方式编码如何选择合适的阈值。如何选择合适的阈值?

【问题讨论】:

    标签: r statistics quantitative-finance risk-analysis


    【解决方案1】:

    我更喜欢 POT 包中的 tcplot 函数。它绘制了一个阈值选择图,即它估计不同阈值值的比例和形状参数。 然后,您可以使用这些图来获得一个好的阈值:一个好的阈值的特点是具有低方差的稳定估计。

    POT::tcplot(logret, which = 1, nt = 25, u.range = range(logret)* c(1, 0.99), ask = F)
    POT::tcplot(logret, which = 2, nt = 25, u.range = range(logret)* c(1, 0.99), ask = F)
    

    第一个函数根据比例参数绘制阈值选择图,第二个函数根据形状参数绘制阈值选择图。 nt指定图中的点数,u.range可以根据你的数据指定。

    【讨论】:

    • 我明白了:gpdmle 中的错误(data,u[i],corr = TRUE,...):没有超过阈值的数据另外:警告消息:1:在 gpdmle(data,u [i], corr = TRUE, ...) :观察到的信息矩阵是奇异的;将 std.err.type 传递给 expected'' 2: In gpdmle(data, u[i], corr = TRUE, ...) : observed information matrix is singular; passing std.err.type to expected'' 3:在 gpdmle(data, u[i], corr = TRUE, ...) 中:观察到的信息矩阵是奇异的;将 std.err.type 传递给“预期”
    • 我的错误,请改用u.range = range(large_drops) * c(1, 0.99)
    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2019-05-29
    相关资源
    最近更新 更多