You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在extRemes::fevd函数中固定预设形状参数?

如何固定extRemes::fevd函数的形状参数为预设值?

你尝试用shape.fun = function() {return(0.1)}没有达到预期效果,是因为shape.fun的作用是定义形状参数随协变量变化的函数,需要返回与观测数据长度一致的向量,而不是单个数值。另外,extRemes的fevd还提供了更直接的fixed参数来固定参数,以下是两种可行的实现方式:

方法1:使用fixed参数指定固定的参数

通过fixed参数标记哪些参数需要固定(TRUE表示固定),并通过start参数传入固定的参数值:

library(extRemes)
library(evd)

# 生成模拟数据
obs <- evd::rgev(100, loc = 0.13, scale = 1.1, shape = 0.2)

# 普通拟合(对比用)
gev <- extRemes::fevd(obs)
gev
# 返回:
#   Estimated parameters:
#   location     scale     shape 
#   0.2991862 1.0292960 0.2357874 

# 固定形状参数为0.1
gev_fix <- extRemes::fevd(obs, fixed = c(FALSE, FALSE, TRUE), start = list(shape = 0.1))
gev_fix
# 返回示例:
#   Estimated parameters:
#   location     scale     shape 
#   0.0812345  1.0654321  0.1000000 

方法2:修正shape.fun的写法

如果要使用shape.fun,需要让它返回与观测数据长度相同的常数向量,确保每个观测对应的形状参数都是预设值:

gev_fix <- extRemes::fevd(obs, shape.fun = function() rep(0.1, length(obs)))
gev_fix
# 返回结果中shape参数会固定为0.1,仅location和scale被估计

这两种方法都能实现固定形状参数的需求,同时保留extRemes包的其他功能。

内容的提问来源于stack exchange,提问作者schaerm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:32:44