问题有些长,希望耐心读下去,是关于数据挖掘的一个很重要的问题。下面是程序:
数据集
data test;
input region $ state $ month monyy5. headcnt expenses revenue redm_flag;
format month monyy5.;
cards;
EASTERN VA FEB78 10 7800 15500 1
SOUTHERN FL MAR78 9 9800 1350 1
SOUTHERN GA JAN78 5 2000 8000 0
NORTHERN MA MAR78 3 1500 1000 1
SOUTHERN FL FEB78 10 8500 11000 0
NORTHERN NY MAR78 5 6000 5000 0
EASTERN VA MAR78 11 8200 16600 1
PLAINS NM MAR78 2 1350 500 0
SOUTHERN FL JAN78 10 8000 10000 1
NORTHERN NY FEB78 4 3000 4000 0
SOUTHERN GA FEB78 7 1200 6000 0
;
run;
进行如下的变量筛选(
完全仿照姚志勇的《SAS编程与数据挖掘商业案例》中的变量筛选)
proc contents data=test(drop=region state month redm_flag)
noprint out=origin_dev_variable;
run;
data origin_num_var;
set origin_dev_variable;
where type=1;
keep name;
run;
%macro var_chi();
%if %sysfunc(exist(origin_var_chisq_list)) ne 0 %then %do;
proc datasets lib=work;
delete origin_var_chisq_list;
quit;
data origin_var_chisq_list;
length var $40 scorechisq 5 probchisq 8;
stop;
run;
%end;
%let dsid=%sysfunc(open(origin_num_var));
%if &dsid gt 0 %then %do;
%let nobs=%sysfunc(attrn(&dsid,nobs));
%do i=1 %to &nobs;
%let rc=%sysfunc(fetchobs(&dsid,&i));
%let varnume=%sysfunc(varnum(&dsid,name));
%let variable=%sysfunc(getvarc(&dsid,&varnume));
ods listing close;
ods results off;
ods output
effectnotinmodel=var_chisq(keep=effect scorechisq probchisq rename=(effect=var));
proc logistic data=test desc;
model redm_flag=&variable./select=s sls=0.3 sle=0.3 maxstep=1 detail;
run;
ods output close;
ods results on;
ods listing;
proc append base=origin_var_chisq_list data=var_chisq force;run;
%end;
%let dsid=%sysfunc(close(&dsid));
%end;
%mend;
%var_chi;
问题:运行时
日志中提示Output 'effectnotinmodel' was not created-
File WORK.VAR_CHISQ.DATA does not exist.程序中哪里有问题呢??
还有就是
effectnotinmodel究竟起什么作用?帮助文档中解释为
Test for effects not in model,不太理解,希望高人多多指点,小弟感激不尽~~