我一直在使用UNIVARIATE proccedure来获取一系列分布(对数正态,指数,伽玛)的p值,并且已经达到了以下问题:
我使用以下代码来获取每个发行版的拟合优度测试的p值:
ods select all/*ParameterEstimates GoodnessOfFit*/;
proc univariate data=results.Parametros_Prueba_1;
var Monto_1.;
histogram /
lognormal (l=1 color=red SHAPE=&ParamLOGN2_1 SCALE=&ParamLOGN1_1)
gamma (l=1 color=red SHAPE=&ParamGAM1_1 SCALE=&ParamGAM2_1)
exponential (l=2 SCALE=&ParamEXP1_1);
ods output GoodnessOfFit=results.Goodness_1;
run;
proc print data=results.Goodness_1;
运行上一代码后,我得到“结果”,它给出了直方图图形和其他关于测试的描述性信息。我正在寻找一种方法来获得这个“结果”打印,只显示与最后一行添加的“proc print”相对应的最后一部分。
提前致谢!
答案 0 :(得分:0)
如果您不想从PROC UNIVARIATE
输出到屏幕(结果窗口),那么最简单的答案是:
ods select none;
proc univariate ... ;
run;
ods select all;
proc print ... ;
run;
ods select none;
告诉ODS不要做任何ODS输出。尽管如此,你仍然可以获得你的ODS输出。
ods select none;
proc univariate data=sashelp.class;
var height;
histogram name='univhist' /
lognormal (l=1 color=red )
gamma (l=1 color=red )
exponential (l=2 );
ods output GoodnessOfFit=Goodness_1;
run;
ods select all;
proc print data=Goodness_1;
run;
现在,你会注意到你没有得到你的直方图;那个更难。不幸的是,每次运行它时都会更改其名称,即使您使用NAME =选项,它也只会在第一次运行时运行。您需要使用PROC GREPLAY
删除它。
proc greplay nofs igout=work.gseg;
delete 'univhist';
run; quit;
(假设UNIVHIST
是您指定的名称。)