【发布时间】:2020-09-04 09:08:44
【问题描述】:
这可能是一个菜鸟问题,但我试图最小化 GAMS 中的平均绝对误差。 考虑 GAMS 中的以下数据:
set Time /0 * 2/;
parameter y(Time),u(Time),v(Time),yhat(Time),MAE;
scalar
alpha /0/
beta /0/;
y("0") = 24;
y("1") = 23;
y("2") = 26;
我想根据指数平滑做以下方程(方程取from here):
我可以在 GAMS 中通过循环做到这一点:
u("0") = y("0");
v("0") = 0;
loop(Time,
u(Time) = (alpha*y(Time))+(1-alpha)*(u(Time-1)-v(Time-1));
v(Time) = beta*(u(Time)-u(Time-1))+(1-beta)*v(Time-1);
yhat(Time) = u(Time-1)+v(Time-1);
);
由此我可以计算出平均绝对误差:
set Timesub(Time) / 1 * 2 /;
MAE = sum(Timesub,abs(yhat(Timesub)-y(Timesub)))/2;
但是,我不想假设 alpha 和 beta 的值,而是希望通过更改 alpha 和 beta 中的值来最小化 MAE 的值,但要遵守 0
但我不确定如何在 GAMS 中设置这个最小化问题。 谁能帮帮我?
【问题讨论】: