我想估计以下类型的非线性回归模型:
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] 表示以下指数阿尔蒙多项式加权函数:
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()
?
谢谢!