首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R中的DRC软件包拟合曲线

用R中的DRC软件包拟合曲线
EN

Stack Overflow用户
提问于 2018-12-04 05:07:42
回答 1查看 285关注 0票数 0

我正在尝试用R中的DRC包来拟合曲线。

示例:

代码语言:javascript
复制
 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模型来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-12-04 05:59:30

“我想把未来的人口规模设定为11万。”我认为,根据您提供的数据,不可能将模型与该约束相匹配。您对函数支持的响应甚至还没有接近这一点(潜在的?)渐近区域。所以我认为你需要重新考虑你的方法。

除此之外,在drc中,您可以通过fixed函数参数指定特定参数的值来实现约束。

代码语言:javascript
复制
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

让我们来展示一下这个情节

代码语言:javascript
复制
plot(EV, broken = TRUE, type = "all", xlim = c(0, 40000), ylim = c(0, 1))

你可以在这里看到这个问题。由于你没有更接近函数渐近行为的值x_yrs_Adj的任何支持,你的拟合(以及由此得到的估计参数)将会很差。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53601876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档