SAS 评分卡开发模型变量统计及输出
以下代码实现功能:
1、获取10个模型分别使用哪些变量
2、变量所模型使用的次数
3、把上表格输出到EXCEL中
%INCLUDE '00@HEADER.SAS';
%let dir=..\04@Model;
libname cc "&dir";
PROC FORMAT;
VALUE UseFmt
1='使用'
0='未使用'
OTHER='其它'
;
RUN;
PROC DATASETS LIBRARY=S NODETAILS NOLIST;
DELETE ModelVariableList VarFreq;
RUN;
%MACRO FreqAppend(DSIN,FN);
PROC FREQ DATA=&DSIN;
TABLES &FN/MISSING NOPRINT OUT=A;
RUN;
DATA B;
LENGTH FName $32. VAL $200.;
SET A;
VAL=&FN.;
FName="&FN.";
DROP &FN.;
RUN;
PROC APPEND BASE=S.VarFreq DATA=B;
RUN;
%MEND;
%MACRO ModelVariable;
%DO SM=0 %TO 99;
DATA A;
LENGTH ModelOrder $3.;
SET CC.model_params&SM;
ModelOrder="&SM.";
RUN;
PROC APPEND BASE=S.ModelVariableList DATA=A;
RUN;
%END;
DATA S.ModelVariableList;
SET S.ModelVariableList;
ARRAY NUM{*} _NUMERIC_;
DO I=1 TO DIM(NUM);
IF MISSING(NUM{I}) THEN NUM{I}=0;
ELSE NUM{I}=1;
END;
KEEP ModelOrder X1_WOE X2_WOE X3_WOE X4_WOE X5_WOE B1_WOE S1_WOE;
RUN;
%MEND;
%ModelVariable;
DATA _NULL_;
DO V='X1_WOE','X2_WOE','X3_WOE','X4_WOE','X5_WOE','B1_WOE','S1_WOE';
CALL EXECUTE('%FreqAppend(S.ModelVariableList,'||V||')');
END;
RUN;
PROC PRINT DATA=S.VarFreq;
RUN;
PROC SORT DATA=S.VarFreq OUT=A1(DROP=PERCENT);
BY FName;
RUN;
PROC TRANSPOSE DATA=A1 OUT=A2(DROP=_NAME_);
BY FName;
RUN;
DATA A2;
SET A2;
IF MISSING(COL2) THEN COL2=0;
RUN;
ODS TAGSETS.EXCELXP FILE='ModelVariableList.XLSX';
PROC PRINT DATA=S.ModelVariableList LABEL;
VAR ModelOrder X1_WOE X2_WOE X3_WOE X4_WOE X5_WOE B1_WOE S1_WOE;
FORMAT X1_WOE X2_WOE X3_WOE X4_WOE X5_WOE B1_WOE S1_WOE UseFmt.;
LABEL ModelOrder='模型号';
RUN;
PROC SORT DATA=A2;
BY DESCENDING COL1;
RUN;
PROC PRINT DATA=A2 LABEL;
LABEL FName='变量' COL1='进入模型次数' COL2='未进入模型次数';
VAR FName COL1 COL2;
RUN;
ODS TAGSETS.EXCELXP CLOSE;
SAS 评分卡开发模型变量统计及输出的更多相关文章
- python: 模型的统计信息
/*! * * Twitter Bootstrap * */ /*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-201 ...
- 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...
- Tensorflow模型变量保存
Tensorflow:模型变量保存 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 pyt ...
- TF:Tensorflow定义变量+常量,实现输出计数功能—Jason niu
#TF:Tensorflow定义变量+常量,实现输出计数功能 import tensorflow as tf state = tf.Variable(0, name='Parameter_name_c ...
- kettle转换设置变量,校验输出新变量
背景:有很多小的转换需要串联起来,如果前一个执行成功,后面继续接着执行,如果执行等待中,就让程序等一会再次获取数据分析,如果失败就中止,成功就进行下一个转换,以此类推.... 需求:通过job把参数传 ...
- SAS学习笔记46 宏变量的可使用范围
全局宏变量 在宏程序内部,除了使用%GLOBAL语句创建.在某些情况下,还可以直接使用DATA步中的CALL SYMPUT创建. 在一个宏程序中,在包含CALL SYMPUT的DATA步程序之前,如果 ...
- SAS学习笔记41 宏变量存储及间接引用
Macro Variables存储在“Symbol Table”中.它是由Macro Processor在SAS启动时自动创建并维护的.SAS提供了一张视图来供我们查看Symbol Table中的内容 ...
- SAS学习笔记10 宏变量
一个宏变量存放的值保持不变直到被修改(全局变量) 引用时,变量名前加上"&" 宏变量在引用时放在双引号之间会被解读(单引号不会被解读) 用户定义的宏变量,有三种方式: %l ...
- 在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
1) 在默认情况下,springmvc不能将String类型转成java.util.Date类型,所有我们只能在Action 中自定义类型转换器 <form action="${pa ...
随机推荐
- sharing-jdbc实现读写分离及分库分表
需求: 分库:按业务线business_id将不同业务线的订单存储在不同的数据库上: 分表:按user_id字段将不同用户的订单存储在不同的表上,为方便直接用非分片字段order_id查询,可使用基因 ...
- Autotools setting
./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ...
- linux学习--目录处理命令
- python的出生
1.语言的种类 机器语言------>汇编语言------>高级语言 高级语言按转换方式分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器 ...
- Windows下dos命令行
Dos命令--基本命令 1.求助命令 例如:del /? rd /? 2.基本常用命令 例如:dir :列出当前目录下的文件以及文件夹,后面可以接其他路径 md:创建目录(mkdir),一次创建多级目 ...
- Java EntityMapper
package org.rx.util; import org.rx.common.Func2; import org.rx.common.Action2; import org.rx.common. ...
- JavaWeb在线电子相册springmvc
(一) 这学期上了一们叫做J2EE的选修课,本以为很水,没想到这个课这么烦气,最后大实验是一个springmvc的电子相册,做了两个周,终于完事了,姑且把这一篇叫做(一)吧 粗略看了一下啊,两个人的实 ...
- java学习笔记39(sql事物)
在之前的学习中,我们学习了使用PreparedStatement类,使用这个类消除了sql注入的隐患,可是,还有些一些其他的隐患,这里以银行转账业务为例, 假设 一个银行,张三在里面存了1000元, ...
- linux do{} while(0)
do{}while(0) 在linux中,经常会看到do{}while(0)这样的语句,许多人开始都会疑惑,认为do{}while(0)毫无意义,因为它只会执行一次,加不加do{}while(0)效果 ...
- switch和数组两种方法对不同输入做不同响应
#include<stdio.h> int main(void) { int i; scanf("%d",&i); switch(i) { : printf(& ...