【发布时间】:2013-06-17 09:18:49
【问题描述】:
我想使用加权最小二乘法估计 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 是未知的......
【问题讨论】:
-
是的,
nls被很多人大量使用。给我们a reproducible example,我们可以为您提供帮助。 -
我添加了一个示例,虽然它不是很有用,因为我的问题是我不知道如何制定代码。
-
什么是
x?data参数需要一个包含am、x和w的data.frame。您需要为nls提供起始值,例如start=list(location=...,scale=...,shape=...。找到这些起始值是您的工作。 -
x 实际上是当我想到它时。我更新了问题和代码。
-
回归需要 x 和 y 值。