SAS有助于优化有限制的线性方程



我希望能够解决以下类型的问题:

给定观测数据x(1(。。。。x(n(和已知的固定"目标"b,求解参数a0,a1,&a2,其最小化:

b-[a0+a1*x(i)+a1*x(i)^2]*x(i), i=1 to n.

限制条件是[a0+a1*x(i)+a1*x(i)^2]项之和等于n,即[a0+a1*x(i)+a1*x(i)^2]的平均值等于1

我在SAS v9.4中尝试过PROC MODEL和PROC NLIN,但没有成功。这些模块允许对单个参数进行限制,但这里不需要(a0、a1&a2可以取任何值(。也许PROC IML可以解决这种受约束的问题。。。。?

感谢您的帮助!

PROC OPTMODEL就是您想要的。这将允许您添加任意复杂的约束。我不完全确定这是否是你在没有任何数据的情况下寻找的确切解决方案

%let target = 0;
/* Generate data */
data have;
do i = 1 to 100;
x = rand('normal');
output;
end;
run;
proc optmodel;
set OBS;
num x{OBS};
read data have into OBS = [i]
x
;
var a0, a1;

con restrict: sum {i in OBS} (a0 * a1*x[i] + a1*x[i]**2) = sum{i in OBS} 1;
min objective = sum {i in OBS} (&target. - (a0 + a1*x[i] + a1*x[i]**2)*x[i]);
solve;
print a0 a1;
quit;

最新更新