【问题标题】:Nonlinear multiple regression in SASSAS中的非线性多元回归
【发布时间】:2014-06-17 19:47:00
【问题描述】:

我有一个包含变量 y、x1 和 x2 的数据集。我想找到一个适合模型的方程:

y = k1*x1c1 + k2 *x2c2

通过查找 k1、c1、k2 和 c2。我如何在 SAS 中执行此操作?特别是如果 SAS Enterprise Guide 中有一种简单的方法,那就更好了。

【问题讨论】:

    标签: sas nonlinear-functions nonlinear-optimization enterprise-guide


    【解决方案1】:

    首先,我所知道的 EG 中没有 WYSIWYG 可以做到这一点。

    您可以使用许多过程,但要让它们收敛(PROC MODEL 可能是候选者)并不容易。在这个例子中,我使用了来自 SAS/OR 的 PROC OPTMODEL。

    data test;
    do i=1 to 1000;
    x1 = rannor(123)*10 + 100;
    x2 = rannor(123)*2 + 10;
    y = 10*(x1**2) + -10*(X2**3) + rannor(123);
    output;
    end;
    run;
    
    proc optmodel;
    num n=1000;
    set<num> indx;
    num y{indx}, x1{indx}, x2{indx};
    read data test into indx=[_N_] y x1 x2;
    
    var k1 init 1000, 
        k2 init 1000, 
        c1 init 1 ,
        c2 init 1 , 
        mean init 0;
    
    min sse = sum{i in indx}( (y[i]-(k1*x1[i]**c1 + k2*x2[i]**c2))**2 );
    
    solve with nlp / maxiter=1000 ms;
    print k1 k2 c1 c2;
    quit;
    

    生产:

                        The OPTMODEL Procedure
    
                           Solution Summary
    
              Solver                       Multistart NLP
              Algorithm                    Interior Point
              Objective Function                      sse
              Solution Status               Best Feasible
              Objective Value                976.35152997
    
              Number of Starts                        100
              Number of Sample Points                2560
              Number of Distinct Optima                78
              Random Seed Used                      18410
              Optimality Error               0.0049799881
              Infeasibility                             0
    
    
                         k1         k2    c1    c2
    
                     9.9999    -9.9993     2     3
    

    【讨论】:

    • 唉,我无权访问 SAS/OR。如果这是唯一/最好的方法,那么我会考虑得到它,但目前你还有其他想法吗?
    • SAS/ETS 中的 PROC MODEL 也可以满足此要求。问题是获得使其收敛的起始值。您有 SAS/ETS 和/或 SAS/IML?
    • 我实际上发现我确实可以远程访问 SAS/OR,而且 OPTMODEL 做得很好。感谢您的帮助!
    • 很高兴为您提供帮助。如果您需要回归诊断,请从 OPTMODEL 中获取值并将它们作为起始值放入 PROC MODEL。 MODEL 几乎会立即收敛,并为您提供您期望的所有回归统计数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    相关资源
    最近更新 更多