【问题标题】:Step halving issue in gnls{nlme}gnls{nlme} 中的步骤减半问题
【发布时间】:2012-05-09 00:49:57
【问题描述】:

我正在尝试估计一些社区数据的广义最小二乘回归的参数。我已经成功地为一组数据完成了此操作,但是当我尝试使用相同的技术来估计另一组的参数时,我收到以下错误消息:

Error in gnls(SF ~ a * Site_Code^b, data = data, weights = varPower(form = ~Site_Code),  : 
  Step halving factor reduced below minimum in NLS step

我注意到其他人也有同样的问题。一种建议的解决方案是使用 gnlsControl 将 nlsTol 设置为 0.1 而不是 0.001(默认值),但是当我这样做时,我遇到了同样的问题。我的数据如下所示:

Site_Code   SF
5   3
5   0
5   2
5   0
5   0
5   0
5   2
5   0
5   0
5   0
5   0
5   3
1   0
1   1
1   29
1   15
1   7
1   0
1   10
1   12
1   55
2   0
2   5
2   0
2   0
2   3
2   24
2   49
2   17
2   1
3   4
3   48
3   7
3   1
3   31
3   0
3   0
3   1
4   8
4   16
4   29
4   0
4   1
4   2
4   1
4   7
4   3
7   2
7   0
7   0
7   0
7   0
7   0
7   2
7   1
7   0
7   1
7   0
7   0
8   1
8   2
8   1
8   2
8   0
8   0
8   3
8   0
8   2
6   0
6   6
6   0
6   0
6   0
6   0
6   0
6   0
6   0
6   2
6   0
6   3

【问题讨论】:

  • 您正在将一种专为连续数据设计的方法应用于在 Site_Code 中明确分类的数据集。您如何解释 Site_Code^b?在网站范围内假设某种权力关系真的合理吗????
  • @DWin - 是的 - 我没有在原始问题中写下这个,但站点代码对应于入侵物种的移除时间的时间序列。最近删除了更高的站点编号。我认为在这种情况下可以使用此方法。
  • 我想。不过,在目前的情况下,1/time 似乎是一个更易于解释的模型。

标签: r regression linear-regression


【解决方案1】:

对我来说工作得很好;你没有给出起始值,所以我看了一些。也许您的起始值更差?

此外,您在这里遇到问题也就不足为奇了——为了拟合均值,您有两个参数和只有 4 个独立的 x 值......对于方差估计也是如此。

dat <- read.table("gnlsdat.txt",header=TRUE)
plot(SF~Site_Code,data=x)

library(nlme)
g0 <- gnls(SF ~ a * Site_Code^b, data = dat,
           weights = varPower(form = ~Site_Code),
           start=list(a=30,b=-0.5))

结果:

Generalized nonlinear least squares fit
  Model: SF ~ a * Site_Code^b 
  Data: dat 
  Log-likelihood: -130.3289

Coefficients:
        a         b 
19.319493 -1.152149 

Variance function:
 Structure: Power of variance covariate
 Formula: ~Site_Code 
 Parameter estimates:
    power 
-0.885528 
Degrees of freedom: 33 total; 31 residual
Residual standard error: 28.10023 

剧情:

plot(SF~Site_Code,data=x)
pframe <- data.frame(Site_Code=seq(1,5,length=41))
lines(pframe$Site_Code,predict(g0,newdata=pframe))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    • 2010-12-02
    • 2012-04-03
    • 1970-01-01
    • 2010-10-22
    • 2021-03-25
    • 2015-02-24
    相关资源
    最近更新 更多