我正在努力使我的数据符合指数模型
y=exp(a-b*x)
y
中x=0
的值必须精确到13.75,所以我想在拟合数据之前设置截距。
a=log(13.75)
我正在使用函数gnm
。我已经读过我应该使用constrain
或constrainTo
来设置系数;但是,我无法理解如何做到这一点。
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中减去一个数字,以便将我数据的水平渐近线置于零。
答案 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))