设置指数衰减的截距

时间:2015-02-07 22:29:13

标签: r curve-fitting

我正在努力使我的数据符合指数模型

y=exp(a-b*x)

yx=0的值必须精确到13.75,所以我想在拟合数据之前设置截距。

a=log(13.75)

我正在使用函数gnm。我已经读过我应该使用constrainconstrainTo来设置系数;但是,我无法理解如何做到这一点。

x=seq(0,3120,120)

y= c(13.75, 13.74, 13.73, 13.71, 13.70, 13.69, 13.68,
     13.66, 13.65,13.64, 13.64, 13.63, 13.63, 13.62,
     13.62, 13.61, 13.61, 13.60,13.60, 13.60, 13.60,
     13.59, 13.59, 13.59, 13.59, 13.59, 13.59)

xl<-gnm(y ~ Exp(1 - x), verbose = FALSE,constrain=????)

大家好。非常感谢你。我一直在按照你的建议工作,我终于得到了一个非常好的合适。现在,我将研究重量以对其进行抛光。我这样做了:

xl<-gnm(y ~ Exp(1 + x) -1, verbose = FALSE,
constrain="Exp(.+x).Intercept",constrainTo=a,start=c(a,-0.05),
prior.weights=W,weights=W)   

也有一个大问题。我需要从y中减去一个数字,以便将我数据的水平渐近线置于零。

1 个答案:

答案 0 :(得分:0)

-1中使用Exp告诉模式不要在指数中设置拦截项。 尝试使用此模型: Exp(1 + x) -1,删除实际的y拦截。

要以指数形式设置截距,您可以尝试:

xl<-gnm(y ~ Exp(1 + x) -1, verbose = FALSE,constrain="Exp(.+x).Intercept",constrainTo=a,start=c(a,-0.05))
xl

必须为要估计的模型输入启动参数 要以交互方式选择约束参数,您还可以执行以下操作:

xl<-gnm(y ~ Exp(1 + x) -1, verbose = FALSE,constrain="[?]",constrainTo=a,start=c(a,-0.05))