R 理解错误消息“;步骤减半系数降低到NLS步骤中的最小值以下;

R 理解错误消息“;步骤减半系数降低到NLS步骤中的最小值以下;,r,error-handling,nlme,R,Error Handling,Nlme,我正在尝试运行R中的gnls模型(包nlme),并对错误消息进行故障排除。到目前为止,我的模型是: Log13.5_Sum.T_gnls <- gnls(Weight ~ Asym/(1+exp((xmid-Age)*(v0 + v1*Sum.T))), data = WTS_w13.5, start = c(coef(Log13.5_gnls), v0= 0.16, v1= -0.

我正在尝试运行
R
中的
gnls
模型(包
nlme
),并对错误消息进行故障排除。到目前为止,我的模型是:

Log13.5_Sum.T_gnls <- gnls(Weight ~ Asym/(1+exp((xmid-Age)*(v0 + v1*Sum.T))),
                           data = WTS_w13.5,
                           start = c(coef(Log13.5_gnls), v0= 0.16, v1= -0.0059),
                           na.action=na.omit,
                           control= gnlsControl(nlsTol=0.01))

有没有关于如何解决这个问题的想法?

问题不在于第二个选项太低。正如错误所说,没有像
params[[i]][[2]]
这样的元素。我的猜测是,当您调用
gnls
时,它将最后一个参数
gnlsControl(nlsTol=0.01,nlsMaxIter=20)
作为
params
(请参见
?gnls
),而不是您想要的
控制。因此,请尝试命名它,即在最后一个参数前面添加
control=
。谢谢,您是对的。通过添加
控件=
越界错误消失。然而,我现在只剩下NLS步骤中的错误
步骤减半因子降低到最小值以下,这是我以前遇到过的。将
nlsTol
按数量级增量增加到1000仍然会产生相同的问题。有什么想法吗?我真的不知道。也许你可以试着对你的初始值进行一些调整,看看这是否能解决问题。否则,我建议您使用新问题编辑问题,其他人可能可以通过调整初始值来帮助我使其工作。谢谢
structure(list(Nest = structure(c(1L, 17L, 11L, 5L, 6L, 8L, 13L, 5L, 7L, 21L, 9L, 15L, 17L, 4L, 10L, 16L, 20L, 7L, 8L, 18L, 19L, 13L, 14L, 11L, 21L, 6L, 9L, 12L, 17L, 7L, 13L, 2L, 3L, 5L, 7L, 10L, 19L, 22L, 17L, 4L, 21L), .Label = c("WTSN00", "WTSN01", "WTSN02", "WTSN04", "WTSN05", "WTSN06", "WTSN07", "WTSN08", "WTSN09", "WTSN10", "WTSN12", "WTSN13", "WTSN14", "WTSN16", "WTSN18", "WTSN20", "WTSN21", "WTSN23", "WTSN24", "WTSN25", "WTSN26", "WTSN28", "WTSN29"), class = "factor"),
Hatch = structure(c(10957, 16177, 16181, 16165, 16185, 16188, 16181, 16165, 16189, 16189, 16193, 16195, 16177, 16177, 16181, 16200, 16173, 16189, 16188, 16182, 16176, 16181, 16180, 16181, 16189, 16185, 16193, 16177, 16177, 16189, 16181, 16177, 16177, 16165, 16189, 16181, 16176, 16181, 16177, 16177, 16189), class = "Date"),
Age = c(0, 6, 7.5, 8, 8, 8, 8, 8.5, 8.5, 8.5, 9, 9, 9, 9.5, 9.5, 9.5, 9.5, 10, 10, 10, 10, 10.5, 10.5, 11, 11, 11.5, 11.5, 11.5, 11.5, 12, 12, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 13, 13.5, 13.5),
Weight = c(1.022, 8.1, 8.5, 8.8, 8.8, 9.6, 8.6, 9.7, 11, 9.9, 11.1, 9.9, 12, 10.5, 10.5, 7, 11.2, 11.9, 11.4, 11, 11.9, 11.2, 11.7, 9.1, 12.3, 12.3, 13, 11.6, 13.4, 12.2, 11.1, 12.7, 11.3, 12.2, 12.4, 11.8, 12.9, 11.2, 13.2, 11, 14.1),
Sum.T = c(NA, 313.851904139019, 375.724003527149, NA, 406.89428107332, 463.691957819221, 445.28632226469, NA, 415.486307859544, 429.22166483835, 448.628929837252, 436.477157418387, 480.998397305757, 505.76849873214, 465.046041424436, 529.914690217322, NA, 488.827490583208, 582.676479904347, 570.255184933855, NA, 594.21509635292, 703.48545276177,  559.086005290723, 569.478435100335, 593.644945574203, 581.137438612915, 572.523390933983, 630.703808278039, 584.949067548094, 692.972360805858, 690.676762264357, 698.225577774177, NA, 608.229461789316, 637.728055232582, NA, NA, 722.027054861407, 759.276720390869, 701.235205362319)),
.Names = c("Nest", "Hatch", "Age", "Weight", "Sum.T"),
row.names = c(NA, 41L), class = "data.frame")