使用R函数“nls”估算GEV参数

时间:2013-06-17 09:18:50

标签: r nls

我想使用加权最小二乘法估计GEV(广义极值)分布的参数。我使用R,我发现了一个名为nls的函数,我认为它可能用于此目的。它要求公式和可选数据集。我想GEV公式和年度最大值系列应该在这里,但我不知道如何。有没有人使用过nls并且对如何做到这一点有任何想法?

#Vector of ranged annual maxima
x <- c(21,24,29,32,32,34,35,35,35,36,37,37,38,40,40,41,43,47,47,52)
w <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2)
data <- list(x=x,w=w)
nls(y ~ exp(-(1+((x-location)/scale))^(-1/shape)),data=data, weights=w,start=list(location=5,scale=2,shape=0.10))                 

错误表示y缺失。 y是我们优化GEV参数时得到的结果,因此对于所有x,y变得尽可能接近x(也取决于权重)。因此,在我们估算GEV参数之前,y是未知的......

1 个答案:

答案 0 :(得分:0)

正如@Roland评论的那样,你需要有两个变量才能进行回归。在这种情况下,您只有一个:GEV的观测值。因此,您实际上并不想使用nls来拟合分布,而是使用其他算法,例如最大似然。查看具有处理GEV功能的包evd,包括从数据中拟合它们。