我是这个网站的新手所以请耐心等待。我想要 链接:https://i.stack.imgur.com/cNpWt.png中所示的非线性模型,通过对参数a> 0和b> 0以及[0,1]中的gamma1施加约束。
在非线性模型[1]中,自变量是x(t),依赖是R(t),F(t)和ξ(t)是误差项。
此处可以显示数据集的示例:https://i.stack.imgur.com/2Vf0j.png 68行时间序列
为了估计非线性回归,我使用nls()函数没有问题,如下所示:
NLM1 = nls(** Xt~(a Rt-b Ft)/(1-gamma1 * Rt),start = list(a = 10,b = 10,lamda = 0.5 )**,algorithm =“port”,lower = c(0,0,0),upper = c(Inf,Inf,1),data = temp2)< / p>
我想估计NLM1,同时允许在残差上使用AR(1)。
基本上我想要从lm()到gls()的过程相同。我的问题是在gnls()函数中我不知道如何为模型参数a,b,gamma1设置约束,并且模型估计它们的错误值。
nls()具有下限和上限选项。我不能在gnls()
上做同样的事情在gnls()中:我需要添加类似于nls()lower = c(0,0,0),upper = c(Inf,Inf,1)
的约束NLM1_AR1 = gnls(model = Xt~(a Rt-b Ft)/(1-gamma1 * Rt),data = temp2,start = list(a = 13,b = 10, lamda = 0.5),相关性= corARMA(p = 1))
有没有人知道如何做到的解决方案?
谢谢