楼主: changgz
7991 2

[程序分享] 连续变量分箱Logit图 [推广有奖]

  • 2关注
  • 27粉丝

讲师版主

已卖:40份资源

讲师

13%

还不是VIP/贵宾

-

威望
0
论坛币
749999 个
通用积分
15.3027
学术水平
59 点
热心指数
57 点
信用等级
50 点
经验
3913 点
帖子
122
精华
2
在线时间
417 小时
注册时间
2013-10-28
最后登录
2025-8-10

楼主
changgz 发表于 2013-12-31 08:49:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在构建线形回归模型时,我们用观看x与y之间散点图的方式确定x以何种方式纳入回归模型,比如是取二次方形式,还是对数形式。而做逻辑回归时,也需要一种图形观看连续变量x与logit(y)的关系,可以SAS本身没有提供,需要我们自行绘制。以下就是做好的一个宏。

/****************************************************************************/
%Macro E_Logit(data,target,var,bins);
/*第一步:对变量进行RANK分组*/
proc rank data=&data groups=&bins out=out;
   var &var;
   ranks bin;
run;

/*第二步:对每一组计算该变量的平均值;响应事件数和总事件数**/

/*数据集BINS 包含:          */
/* &target = 每个BIN里面响应事件数 */
/* _FREQ_ =每个BIN里面总事件数 */
/* &var =每个BIN里面&var平均值 */

proc means data=out noprint nway;
   class bin;
   var &target &var;
   output out=bins sum(&target)=&target mean(&var)=&var;
run;

/*第三步:根据公式计算 empirical logit */
data bins;
   set bins;
   elogit=log((&target+(sqrt(_FREQ_ )/2))/
          ( _FREQ_ -&target+(sqrt(_FREQ_ )/2)));
run;


/*第四步:画LOGIT与原变量平均值;LOGIT与BIN变量的线图*/
/*proc sgplot data = bins;*/
/*title "Empirical Logit against &var";*/
/*series y=elogit x=&var;*/
/*scatter y=elogit x=&var;*/
/*run;*/
proc sgplot data = bins;
title "Empirical Logit against Binned &var";
scatter y=elogit x=bin;
series y=elogit x=bin;
run;quit;

/*第五步:用BIN变量替代原来的变量,并对BIN变量进行代码保存和改造*/

title;

proc means data = out noprint nway;
   class bin;
   var  &var;
   output out=endpts  max(&var)=max;
run;

filename rank "d:\rank.sas";

/*编写BIN代码*/
data _null_;
   file rank;
   set endpts end=last;
   if _n_ = 1 then put "select;";
   if not last then do;
     put "  when (&var <= " max ") B_&var =" bin ";";
     end;
   else if last then do;
     put "otherwise B_&var =" bin ";";
     put "end;";
   end;
run;

/* Use the code. */
data &data;
   set &data;
   %include rank /source2;
run;

/*proc means data = &data min max;*/
/*   class B_&var;*/
/*   var &var;*/
/*run;*/
proc delete data=out bins endpts;run;
%Mend E_Logit;

/****************************************************************************/
/*%Macro E_Logit(数据集,二分目标变量,连续自变量,分箱个数);*/
%E_Logit(gg,flag,score,5);
run;
%E_Logit(tel,churn,avPlan,4);
run;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Logit图 logit 连续变量 Log Empirical groups target 平均值 散点图 模型

无标题.jpg (5.42 KB)

无标题.jpg

沙发
YinHeng 发表于 2015-4-30 09:40:18
这个empirical logit是什么?怎么定义的如下的计算公式elogit=log((&target+(sqrt(_FREQ_ )/2))/
          ( _FREQ_ -&target+(sqrt(_FREQ_ )/2)));

藤椅
airy_KX 发表于 2015-9-10 21:27:49
YinHeng 发表于 2015-4-30 09:40
这个empirical logit是什么?怎么定义的如下的计算公式elogit=log((&target+(sqrt(_FREQ_ )/2))/
         ...
我也有此疑问,不知道你明白了没有,一直以为logit图的纵坐标是ln(p/(1-p))

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 17:47