具有正则化的SAS参数模型

时间:2017-07-24 07:25:57

标签: sas statistics regression

我想在SAS中使用正则化创建一个多元回归模型。该模型可以是线性的或非线性的,但我想确保系数小而正。 我该怎么做? 示例代码将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不完全确定在你的情况下什么构成小系数,但proc qlim允许简单和复杂的系数限制。为了演示,我们假设你想要一个系数都在-1和1之间的模型。bounds是解决这个问题的简单方法。

proc qlim data=sashelp.cars;
    model horsepower = cylinders mpg_city;
    bounds -1 <= cylinders <= 1
         , -1 <= mpg_city <= 1
    ;
run;

模型收敛并给出了答案。您还可以使用restrict语句执行更复杂的限制。

proc qlim data=sashelp.cars;
    model horsepower = cylinders mpg_city;
    restrict mpg_city + cylinders <= 1
    ;
run;

限制的进一步复杂性,例如非线性,将需要proc model

proc model data=sashelp.cars;
    endo horsepower;
    exo cylinders mpg_city;

    horsepower = b0 + b1*cylinders + b2*mpg_city;

    restrict b1/b2 >= 0;

    fit;
run;

proc model是最灵活的回归程序之一。因此,它需要大量的手动输入。使用proc model,您必须声明您的受抚养人和&amp;自变量,并输出每个参数。只要您声明您的依赖/独立,它就可以自动确定参数变量。