现在的位置: 首页 > 综合 > 正文

SAS逻辑回归实例

2017年11月12日 ⁄ 综合 ⁄ 共 2082字 ⁄ 字号 评论关闭

作为某商品类目公司的市场分析师,你可能需要为二值目标变量(purchase)建立逻辑回归模型,判断某个顾客是否会产生购买。输入数据集存放在SAS安装文件的SAMPSIO.DMEXA1中,该数据集包含1966个顾客观测值信息。它包含31个区间变量输入和18个分类变量输用于构建模型。该逻辑回归模型产生的打分公式应用在新的数据集中,给那些可能产生购买的顾客发送邮件。

1创建SAS EM工程

(连载)SAS逻辑回归实例

 

2添加输入数据源节点

(连载)SAS逻辑回归实例

设置SAMPSIO.DMEXA1数据集作为输入数据源

 

选择变量选项卡,设置purchase为目标变量,变量amount的模型角色为rejected

(连载)SAS逻辑回归实例

设置目标变量的层次,选择分类变量选项卡,目标变量的顺序值决定了事件级别。二值目标变量purchase拥有两种值01.0表示NO1表示YES。默认情况下,目标的顺序值设置为降序。在该实例中,主要判断顾客是否产生购买(event
level = YES
)。另外,还可以设置目标变量的目标信息。最后,关闭输入数据源节点。

 

3添加数据划分节点

(连载)SAS逻辑回归实例

对输入数据集运用层次抽样方法创建训练和验证数据集。训练数据集被用来拟合回归模型,验证数据集用来评估回归模型。层次抽样技术保留购买者和非购买者在训练集和验证集中的初时比率。

首先,在流程图空间加入数据划分节点,打开数据划分节点,在划分选项卡,设置输入数据集的70%作为训练集,30%作为验证集,测试为0。针对类型输入变量STATECOD,选择层次抽样方法单选按钮。

(连载)SAS逻辑回归实例

 

激活层次选项卡,在status列中,设置STATECOD的状态为use

 

关闭数据划分节点。

4添加变量转换节点

(连载)SAS逻辑回归实例

打开转换节点,创建二值变量wealth,当income大于40000同时homeval大于100000,则其值为1,否则为0

在主菜单中,选择工具,创建变量。

 

 

 

创建新的分类变量,对age进行分箱处理,划分为4个年龄组。右击age变量,选择transform,选择bucket菜单

 

 

右击frequent输入变量,查看分布

(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

 

从图中可以发现,frequent的倾斜度很大,极值会影响参数的预测。(连载)SAS逻辑回归实例

右击frequent,选择transform,选择方法log,进行转换。再查看导出变量的分布。

(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

 

在输入数据源节点,可以在区间变量和分类变量选项卡中,查看观测值的缺失值,在本案例中发现,没有缺失值。在实际中,若存在缺失值,可以加入replacement节点,进行处理。在回归模型中不能直接处理缺失值观测值。

(连载)SAS逻辑回归实例

打开回归模型节点,激活变量选项卡,在工具菜单选择interactive builder,选择recency变量,设置degree2,点击多项式按钮,产生新的变量recency
* recency
;然后,选择recencyntitle,点击cross,产生新变量recency
* ntitle

 

选择selection选项卡,方法选择stepwise。在Criteria中,设置Entry stay
Significance Levels
 0.1

 

模型选项卡变为:

(连载)SAS逻辑回归实例

 

 

关闭回归节点,运行回归模型节点,查看结果。

 

回归窗口是对输入变量重要性的统计性运用图形的方式进行描述。该模型有9个参数,对应8个输入变量。点击柱状图,可以识别相应的参数。柱状图的高度表示参数的重要性,颜色表示效果增加的方向。红色表示增长的效果,即相应输入的值越大,则贡献越大。反之,则越小。(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

 

6创建模型提升图

(连载)SAS逻辑回归实例

右击模型节点,选择模型管理器。在工具菜单,选择创建lift图。

 

7部署模型

SAS EM有两种方式部署模型,打分代码模块和打分数据集。

打分代码模块用来在外部环境产生预测的目标值。它可以创建sasc以及java等不同语言的代码。Sas代码可以直接嵌入在sas应用程序中产生预测。C语言形式的必须进过编译。

(连载)SAS逻辑回归实例

方式1创建评价数据集

在流程图空间加入输入数据源节点,设置数据集角色为score,关闭输入数据源节点

 

添加SAS打分节点和SAS代码节点

打开SAS打分节点,设置如下

 

执行该节点

打开SAS代码节点,在数据选项卡中,选择score单选按钮

(连载)SAS逻辑回归实例

(连载)SAS逻辑回归实例

 

export选项卡中,点击add,选择predict,得到数据集。然后,在program选项卡中输入下面的sas代码

data &_pre;

     set &_score;

     if p_purchaseyes lt 0.60 then delete;

run;

 

proc print data = &_pre;

var custid p_purchaseyes;

run;

 

从而得到预测结果。

 (连载)SAS逻辑回归实例

通过ODBC将结果导入到数据库中

libname MYLIB ODBC dsn='dsn name';

proc datasets library=MYLIB;

delete MY_SCORE_NAME;

run;

quit;

data MYLIB.MY_SCORE_NAME;

set &_SCORE;

keep variable;

run;

方式2:创建打分代码模块

打开打分节点,选择Score code选项卡

(连载)SAS逻辑回归实例

 

双击回归模型,得到score代码,右击,save该代码文件。

(连载)SAS逻辑回归实例

 

抱歉!评论已关闭.