我想估计以下类型的非线性回归模型:
y=ß0 + ß1*( b[1,theta]*x1 + b[2,theta]*x2 )+ e
元素描述:
y: the regressand
x1: regressor 1
x2: regressor 2
ß0: parameter to be estimated
ß1: parameter to be estimated
e: iid random noise ~ N(mu, sigma)
最后,i = 1,2的b [i,theta]表示以下指数Almon多项式加权函数:
b[i,theta]= exp(theta1*i+theta2*k^2)/(exp(theta1*1+theta2*1^2) + exp(theta1*2+theta2*2^2))
它只代表x1和x2的两个衰减权重,仅此而已。但是这些权重取决于两个参数值,这两个参数值也需要估算:theta1和theta2。
现在,我想使用非线性最小二乘函数nls()来估计参数ß0,ß1,theta1和theta2的最优值(相对于RSS准则)。
我尝试了以下操作,结果出现错误消息:
nls(y~beta0+beta1*(exp(theta1*1+theta2*1^2)/1318837781*x1+exp(theta1*2+theta2*2^2)/1318837781*x2),data=d,start=list(beta0=1,beta1=1,theta1=.01,theta2=-.0099))
Error in nls(y ~ beta0 + beta1 * (exp(theta1 * 1 + theta2 * 1^2)/1318837781 * :
Parameters without initial values in 'data': x1, x2
注意:为了符号简单,我事先计算了加权函数的分母值,相当于1318837781.
似乎nls()
将x2和x2视为参数,但它们是回归量。我在这里做错了什么,我应该如何修改代码以获得合理的结果。或者用nls()
估算这种功能是不可能的?
谢谢!