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人员将提供帮助(包括开发人员)。