SAS学习笔记(七)——关于异常值处理

来源:互联网 发布:手机的危害数据 英文 编辑:程序博客网 时间:2024/05/19 22:01

SAS中对于类别变量(离散)分布观察用proc freq,对于连续变量则用proc univariate来完成。

识别连续型变量的异常值通常称为盒形图,一般采用

proc univariate data=train plot;

var variable;

run;

plot选项输出变量的茎叶图(观测数少)或者直方图(观测数多),盒形图,正态概率图。(同时输出这些图)

该方法只能识别某变量是否存在异常值,并不能将其标识,下面有两种方法用来标识异常值:

1)使用data 步

proc means data=train nopoint;

var variable;

output out=outlier p25=p25 p75=p75;  /*p25,p75分别是上四分位数,下四分位数*,outlier为离群值即异常值/

run;


data a;

set outlier;

IQR3=3*(p75-p25);/*四分位数差的三倍,即离群值的范围*/

call symputx('IQR3',IQR3);  /*将变量变成宏*/

call symputx('p75',p75);

call symputx('p25',p25);

run;


data outlier1; 

set train;

if(&p25-&IQR3)<=&var<=(&p75+&IQR3) then outlier=0;

else outlier=1;    /*观测值在外界之内,将outlier标识为0,在之外,则标识为1*/

run;

2)当变量符合正态分布,可以使用Z记分法来标识

3)Z记分法的改进


0 0
原创粉丝点击