如何计算回归系数并将其放入table的每一行

How to calculate regression coefficient and put it into each row of a table

我有一个 SQL 可以为每个客户创建他的历史的简短摘录。假设我感兴趣的列是 TIMESTAMPPURCHASE VALUE。我想为每个客户计算线性回归并将此值放入 table。

proc sql;
   create table CUSTOMERHISTORY as
   select 
       TIME_STAMP
      ,PURCHASE_VALUE
      ,CUSTOMER_ID
   from <my data source>
;quit;

table比较大;如果 table 在计算之前不必加载到 RAM 中,那将是最好的。

我试过了

proc reg
   data = CUSTOMERHISTORY;
   model PURCHASE_VALUE=TIME_STAMP;
   outest = OUTTABLE;
   by CUSTOMER_ID;

但它从未向 OUTTABLE 写入任何内容。 (我在 http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_reg_sect007.htm 中找到参数 outest

根据您 link 的文档,outtest 是一个参数,您应该将其作为 proc reg 的选项提供。因此,要获得该特定输出,您的代码应如下所示:

proc reg
   data = CUSTOMERHISTORY
   outest = OUTTABLE;
   model PURCHASE_VALUE=TIME_STAMP;
   by CUSTOMER_ID;
run;

注意data = ...outtest = ...之间没有分号。