全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3599 6
2013-01-26
有谁知道去掉极值的outliers 的sas code 怎么写吗
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-26 11:00:26
Suppose you have a dataset test, run

proc univariate data=test;
   var _numeric_;
run;

From output window, you can find 5 lowest and 5 highest values for each variable, such as this
                                     Extreme Observations
                              ----Lowest----        ----Highest----
                              Value      Obs         Value      Obs
                               1.20       37         16.35       63
                               2.21       88         18.95       23
                               3.19       82         18.95       40
                               3.50       19         19.34       16
                               3.52       77         22.46        1

then delete the obsrvations you don't want.

data test_1;
    set test;
    if _N_ = 1 then delete;
run;
二维码

扫码加我 拉你入群

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

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

2013-1-26 11:26:00
data class;
  set sashelp.class;
run;

ods output extremeobs=outliers;
proc univariate data=class;
  var height;
run;

proc sql noprint;
  select lowobs, highobs
  into: lowobs separated by ' ' ,: highobs  separated by ' '
  from outliers;
quit;

%put  &lowobs   &highobs;

data want;
   set class;
if _n_ not in(&lowobs &highobs);
run;
二维码

扫码加我 拉你入群

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

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

2013-1-26 11:38:55
但是认真说来,确定一个值是否是outlier,并不是简单的最小,最大的五个值。可能还要看强影响点,杠杆值,并依据经验,专业知识。
二维码

扫码加我 拉你入群

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

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

2013-1-26 16:54:33
这个就是winsorize
用SAS+winsorize作为关键词在google上搜就可以找到现成的宏
我记得我在版上也贴过,你找找看吧
二维码

扫码加我 拉你入群

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

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

2013-1-26 21:34:03
removing 1% or 99% extreme may not be perfect, ROBUSTREG Procedure could give more reasonable idea,
here is example
http://support.sas.com/onlinedoc ... hlp/rreg_sect27.htm
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群