Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359216
  • 博文数量: 15
  • 博客积分: 10020
  • 博客等级: 上将
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-17 20:02
文章分类

全部博文(15)

文章存档

2008年(15)

我的朋友

分类:

2008-04-16 20:47:01

1. 检查各个变量的最大值,最小值,均值,分位数(P1P5P25P50P75P95P99),看是否有不合理的值。

proc means data=src.test;

            var a;

            output out=tmp(keep=_FREQ_ num mean std max p:)

      n=num mean=mean std=std min=p00 p5=p05 p25=p25 p50=p50           p75=p75 p95=p95 p99=p99 max=max;

run;

2. 对于错误的值,比如本应非负的变量中出现的负值,可以置零,或者按照Missing处理。

data tmp;

            set src.test;

            if a<0 then a=0;

            if b<0 then call missing(b);

run;

 

3. 对于Outlier值的处理方法有很多,一是用一个很大的截断值替换,一个是用P9x(我们常用P99)的值加上Outlier的五次方根来替换,也可以按Missing处理。

data tmp;

    set src.test;

    if a>200 then a = 200 + a ** (0.2);

run; 

4.对于Missing数据可以用均值(也可以根据实际背景采用其他形式)代替。

 

5. 因为造成数据Outlier的情况有很多(输入错误或者实际数据确实如此),可以根据实际情况处理,如果按照Missing处理,要两步,先将Outlier值置Missing,再处理Missing值。

阅读(1255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~