SAS学习笔记(七)——关于异常值处理
2014-03-03 20:02
393 查看
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记分法的改进
识别连续型变量的异常值通常称为盒形图,一般采用
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记分法的改进
相关文章推荐
- for in 循环
- Matlab判断小数有多少位
- RBM训练指导手册粗略(A Practical Guide to Training Restricted Boltzmann Machines)
- 有一个整数数组,请求出两两之差绝对值最小的值
- SQL中Group By的使用
- 第一周(春)项目二 胖纸伤不起
- MyEclipse经常弹出An internal error occurred during: "HTML Syntax Validator". 处理办法
- lucene学习笔记:三,Lucene的索引文件格式
- HDU1385 Minimum Transport Cost
- MD5加密算法--->java使用md5存储密码
- 2014-03-03安装搜狗输入法
- 几种常见的开源协议比较
- Android反射机制实现与原理
- Linux vmstat命令详解
- win8JAVA环境配置
- 关于查找算法-
- 一个运营的自我修养:初级运营需要了解的书籍、网站、工具
- oracle中的commit-备忘
- ToStringBuilder 学习
- ZOJ Monthly, March 2014 (2014省赛练习)