我正在尝试用R中的DRC包来拟合曲线。
示例:
x_yrs<-c(2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
2015, 2016, 2017)
y<-c(1.89, 0.34, 0.47, 2.46, 2.13, 7.49, 47.24, 117.84, 202.8, 322.7,
540.72, 744.22, 1148.7)
MaxPop<-110000
Y_Adj<-y/MaxPop
EV<-drm(y~ x_yrs,fct = LL.3(fixed = c(NA, NA, NA)))
plot(EV, broken = TRUE, type = "all")
EV<-drm(y~ x_yrs,fct = LL.5(fixed = c(NA, NA, NA, NA, NA)))
plot(EV, broken = TRUE, type = "all")
x_yrs_Adj<- x_yrs-2004
EV<-drm(Y_Adj~ x_yrs_Adj,fct = LL.5(fixed = c(NA, NA, NA, NA, NA)))
plot(EV, broken = TRUE, type = "all",xlim = c(0, 40), ylim = c(0, 1))我想把曲线的最大值设为"1“或"MaxPop”,即作为上渐近线。
我该如何着手更改drm模型来实现这一点?
发布于 2018-12-04 05:59:30
“我想把未来的人口规模设定为11万。”我认为,根据您提供的数据,不可能将模型与该约束相匹配。您对函数支持的响应甚至还没有接近这一点(潜在的?)渐近区域。所以我认为你需要重新考虑你的方法。
除此之外,在drc中,您可以通过fixed函数参数指定特定参数的值来实现约束。
EV <- drm(Y_Adj ~ x_yrs_Adj, fct = LL.5(fixed = c(NA, 0, 1, NA, NA)))如果这样做,您可以找到有关各个参数的信息,例如?LL.5
LL.5(fixed = c(NA,NA),names = c("b","c","d","e","f"),...)
..。
五参数逻辑函数由以下表达式给出
f(x) =c+\frac{d-c}{(1+\exp(b(\log(X)-\log(E)^f}
因此,在本例中,我们将c设置为零,然后修复d = 1。
让我们来展示一下这个情节
plot(EV, broken = TRUE, type = "all", xlim = c(0, 40000), ylim = c(0, 1))你可以在这里看到这个问题。由于你没有更接近函数渐近行为的值x_yrs_Adj的任何支持,你的拟合(以及由此得到的估计参数)将会很差。

https://stackoverflow.com/questions/53601876
复制相似问题