数学建模社区-数学中国

标题: ODS trace与output的配合使用 [打印本页]

作者: 三省    时间: 2014-7-2 16:27
标题: ODS trace与output的配合使用
本帖最后由 三省 于 2014-7-2 16:53 编辑 1 t: L. T8 V4 v  F. D' R

2 w0 J& k; p" y1 n9 V# Q     TRACE的功能室查询输出管道的对象。实际应用中,编程人员绝对不会刻意记住每一个过程步的所有输出对象名称,通过TRACE就可以很容易获取所需要的输出对象的名称。
& t' h8 u! s8 `4 E+ [4 o& b# m6 i1 |+ }  ~1 T% f4 O- D- V0 y1 X
   OUTPUT的主要功能是将OUTPUT窗口的输出对象转换成SAS数据集。比如,UNIVARIATE过程步可以产生很多输出对象,如果想要将其中的基本部分(如极值观测、分位数等),输出成为SAS数据集,就需要用到OUTPUT输出管道。
. D" o  n# N  j1 w$ f5 Z& Q" ^" K( Q0 J- \$ L5 T
1. ODS TRACE& S& W3 Z) c# o, i6 H, @; ~1 a0 @/ I
例如运行如下代码:( J2 o; G9 ^: z( t& r

  C  j# v9 @# V: o+ ^5 {ods trace on listing; /*listing:输出对象记录(即名称、标签等)到OUTPUT窗口*/
: O6 s, V1 }' x3 _, Z: I$ jproc univariate data=sashelp.class;
) U1 K! n/ P7 s var age;
$ T/ A+ X4 G* b1 B: x: X" j/ q0 I( urun;! w8 }* V# i3 f# i- o
ods trace off;& x* D: B5 P) Y" X/ j5 ^
出现如下结果:' \8 q! t/ u3 Q9 Y
, R9 B) ]6 o  k$ d6 ]: F
下面是univariate过程的所有输出对象,即有如下的五个估计部分:. r$ ?2 m5 t- F1 q1 o
QQ截图20130702163311.png
8 o# K  S  ]) H1 {1 R( q
1 c. m  a0 E* x( I         QQ截图20130702162757.png , _% K- Y: D5 P: R
7 H6 o0 P; X( z+ H' ?" x! ?

  H( t& V3 Y9 A- i) n* i' Q其中红框部分的ExtremeObs(极值观测)、Quantiles(分位数)常常用于数值型变量的数据清洗工作。  
9 `& `: }$ M" W. h4 ~
4 t# B) @; _6 G* W5 s8 T7 E
8 E( k" `: }4 ~" F( l2. ODS OUTPUT6 T+ {1 s! O  @5 ]# s; l

, Q! v- f" M; m, Q5 ?假设研究人员关心的是基本测度、 ExtremeObs、Quantiles这三个部分的估计结果,那么就需要OUTPUT将基本测度、ExtremeObs与Quantiles三个对象输出为SAS数据集:
( s3 Z1 W2 \' [' ^# G; `0 q
* i3 T5 i- d$ M8 v, Zods listing close;6 Y8 Q, C: g0 O  z
ods results off;
0 T. \' @( v- T$ L1 y0 Uods output
) B: {0 \- }3 K$ r2 G0 s basicmeasures=basic) x4 e" E' n0 H' K' j1 k* K
extremeobs=extremes, ]! v( O: O! O- C) C4 J0 O
quantiles=quantiles& M+ Q  _' D5 p
;
1 u7 c; O& G- ~$ {9 e" z) i$ y% _' \proc univariate data=sashelp.class;
* M+ ~- x  N' Y1 J( I class sex;
( O6 [. ?+ E5 W5 s/ P var weight height;% r! J* Y! C, _, A7 s
run;
6 n3 ]! j+ E- m! e2 B; d* Zods output close;
( E; ]0 h! N9 F$ D' Y+ zods results on;
. |! D# `; P  eods listing;
9 B9 h0 I& P5 f! r# Y$ x) c* c* A  G2 [" l# Y
输出basic基本测量:
3 r2 I3 D8 i  B2 L, bproc print data=basic;run; $ f, P- q" Q5 Y; l( x
QQ截图20130702165111.png ) Y% X$ x$ S7 d! @

) h$ {$ u6 r/ }& r! _5 J' u, C输出extremes极值观测:+ ?: }9 b1 b. G9 l
proc print data=extremes;run;
3 a& i6 E9 d5 \, } QQ截图20130702165128.png
8 r- ~% U  X9 U' R% x
- R" M. r0 Z6 G0 U) U输出分位数
$ J! B( a1 P% N( a0 f% Wproc print data=quantiles;run;
: d2 C: m# ?* {( s; `& `, { QQ截图20130702165226.png ( K( w1 j7 J% l! Q9 e
1 h8 N$ _+ b5 v! O
9 x/ x! z; D$ U! m
根据上面的单变量分析的结果,可以帮助我们进行数据清洗的工作。
% a$ ^% [# v! J& p9 _7 F* l0 J" x9 s' T4 I; K1 ?7 ]
0 X: r9 s- c, a

, p8 o3 ]( {' E+ L4 b, G4 Q
6 i1 T% I5 F) Q9 O# _$ N* x




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5