谁来帮忙看看是哪里错了啊,符号全是英文输入的,但是lingo就是算不出来
家人们破案了,是我不知道按了什么把lingo变成了lindo,所以算不出来
可能要加上单个 x1,x2……的约束条件?
针对此例我们假设非线性回归方程 进行回归求解。和线性回归一样,我们采用目标规划,这次我们引入
评价指标。数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE是衡量"平均误差"的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。于是我们将
最小作为目标函数求解最小值得到系数最优解。
目标函数:
约束条件:
lingo程序:
model:
sets:
data/1..9/:x,y,y_fit;!创建x,y,x_fit的原数据和回归矩阵;
endsets
data:
x=1.5,4.5,7.5,10.5,13.5,16.5,19.5,22.5,25.5;!读入x,y数据;
y=7,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2;
enddata
min=MSE;!目标函数为MSE最小;
MSE=@sum(data:(y_fit-y)^2)/@size(data);!计算MSE;
@for(data:y_fit=a*x+b*@log(x)+c);!回归函数;
@free(a);!释放a,b的取值范围;
@free(b);
end
求解结果如下表:
0.003873966 | |
0.08187599 | |
-2.398902 | |
7.893306 |
由于lingo不方便做图,采用Rstudio做出回归曲线: