Sas 获取宏(函数)的最小最大输出
我想找出宏产生的极值作为输入参数的函数: 例如,以下是一些数据:Sas 获取宏(函数)的最小最大输出,sas,sas-macro,Sas,Sas Macro,我想找出宏产生的极值作为输入参数的函数: 例如,以下是一些数据: data Input_data; input X Y; cards; 10 15 20 18 30 27 33 41 ; run; 下面的公式不是实际的公式(因为从分析上很容易找到最小值),我需要计算方法。 例如,我有一个半经验规则,其中包含三个参数: %macro Function(const1, const2 const3); data output;
data Input_data;
input X Y;
cards;
10 15
20 18
30 27
33 41
;
run;
下面的公式不是实际的公式(因为从分析上很容易找到最小值),我需要计算方法。
例如,我有一个半经验规则,其中包含三个参数:
%macro Function(const1, const2 const3);
data output;
set input;
X_eff1=((X > &const1.)*(X - &const1.)**2);
X_eff2=((X > &const2.)*(X - &const2.)**2);
X_eff3=((X > &const3.)*(X - &const3.)**2);
Residual= Y - (1.3*X_eff1 - 2.7*X_eff2+ 3.1*X_eff3);
run;
%mend;
我需要find const1,const2 const3,它为变量“restrain”生成最小值。SAS可以这样做吗?
需要考虑的几个选项:
a) 求全局最小值
b) 在边界条件内找到局部最小值,例如:const1[0,1]
const2[10,17]
,const3[20,22]
我可以生成一个巨大的表,然后用蛮力将它输入函数。然而,如果输入参数的数量增加,这是不可行的
我能做点什么吗
我可以在numpy(想到cipy.optimize的fmin)或R中这样做,如果SAS很难做到的话
关于如何解决这个问题有什么想法吗???残差之和的最小值?残差平方和的最小值?真正的问题/公式是样条回归类型还是其他类型?更多地了解实际问题将有助于人们提出过程解决方案,而不是数据步骤。好吧,让我们假设我想最小化总和(残差^2)。我将检查有关proc解决方案的文档。Thx.会调查PROC或(如果你有?)或者IML。如果你运气不好,可以在communities.sas.com上发布。有很多sas/stat人员将提供帮助(包括开发人员)。