如何从 R 中的非平稳广义帕累托 (GP) 模型中提取参数?

How to extract parameters from a non-stationary generalized Pareto (GP) model in R?

我现在正在使用extRemes包构建一个非平稳的GP模型,我发现很难提取参数。

非平稳尺度参数

library(extRemes)
data(Fort)
fit1 <- fevd(Prec, Fort, threshold=0.395,
        scale.fun=~sin(2 * pi * (year - 1900)/365.25) + cos(2 * pi * (year - 1900)/365.25),
        type="GP", use.phi=TRUE, verbose=TRUE)

根据 fevd 帮助页面,log(scale(y)) = phi(y) = phi0 + phi1 * g1(y) + phi2 * g2(y) + ...

现在,我们从结果中得到phi0phi1phi2,但是上面函数中的g1(y)g2(y)是什么?

另外,fit1中的scale.fun怎么理解呢? scale.fun=~sin(2 * pi * (year - 1900)/365.25) + cos(2 * pi * (year - 1900)/365.25) 代表什么?例如,如果我们使用 scale.fun=~Fort$year,我们假设 yearscale 参数有线性影响。

非平稳阈值

fit2 <- fevd(Prec, Fort, threshold=0.475, threshold.fun=~I(-0.15 * cos(2 * pi * month / 12)),
        type="GP", verbose=TRUE)

fit2,我们如何根据threshold.fun = ~I(-0.15 * cos(2 * pi * month/12))计算变化的threshold值?感谢您的帮助。

g1(y) 等是您通过 scale.fun 参数赋予 fevd 的函数。所以,phi0 就像一个截距项,ph1 是 sin(2 * pi * (year - 1900)/365.25) 等的系数。因为你使用了 use.phi = TRUE,所以你的尺度参数模型是估计的为:log( scale ) = -0.84 - 0.23 * sin(2 * pi * (year - 1900)/365.25) - 0.25 * cos(2 * pi * (year - 1900)/365.25),以及你估计的形状参数大约是 0.21(如此重尾)。

抱歉,我没看到还有第二个问题。我建议给阈值参数一个不同阈值的向量,而不是使用 threshold.fun 参数。我不是 100% 确定该论点的真正作用。它应该与传递矢量相同,虽然它看起来相当接近,但我无法很好地解释它,因为我不明白。但是,在您的示例中,它应该是 u(month) = I(-0.15 * cos(2 * pi * month/12)).