SAS数据清洗之发现异常值
创作时间:
作者:
@小白创作中心
SAS数据清洗之发现异常值
引用
CSDN
1.
https://blog.csdn.net/2401_82677324/article/details/140595901
在数据清洗过程中,发现和处理异常值是一个重要的环节。本文将介绍如何使用SAS软件来检测数据集中的异常值,包括基于均数和标准差的方法,以及基于百分位数的方法。同时,本文还将提供具体的SAS编程代码示例,帮助读者更好地理解和应用这些方法。
1. 确定异常值定义
此处提供两种参考定义:
- 均数-3倍标准差~均数+3倍标准差为正常值,否则为异常
- p5~p95为正常值,否则为异常
2. 编程实现
1)均数-3倍标准差~均数+3倍标准差为正常值
方法一:使用PROC MEANS
proc means data=index mean std;
var height;
output out=std std=std mean=mean;
run;
data _null_;
set std;
call symput("uplimit",strip(put(mean+std*3,3.)));
call symput("lowlimit",strip(put(mean-std*3,3.)));
run;
data index1;
set index;
if height>&uplimit or height<&lowlimit then h_outfl="Y";
run;
使用异常值定义1)只发现一个异常值
方法二:使用PROC SQL
proc sql;
create table index2 as
select *,
case
when height>mean(height)+std(height)*3 or height<mean(height)-std(height)*3 then "Y"
else " "
end as h_outfl
from index;
quit;
结果与方法一输出一致。
2)p5~p95为正常值
proc univariate data=index outtable=stat;
var height;
run;
data _null_;
set stat;
call symput("p5",_P5_);
call symput("p95",_P95_);
run;
data index3;
set index;
if height>&p95 or height<&p5 then h_outfl="Y";
run;
通过百分位数的方法,10%的观测会被定义为异常值,比起1)定义会发现更多异常值。
3. 宏程序实现
%macro outlier_check(data,var);
%local rc dsid;
%let dsid=%sysfunc(open(&data));
%do j=1 %to %eval(%sysfunc(countc(&var,","))+1) ;
%let input_var&j = %upcase(%scan(&var,&j,",")) ;
%if %sysfunc(varnum(&dsid,&&input_var&j)) > 0 %then %do;
%put &&input_var&j EXIST;
proc sql;
create table _&j as
select &&input_var&j,
case
when &&input_var&j>mean( &&input_var&j) +std(&&input_var&j)*3 or &&input_var&j<mean(&&input_var&j)-std(&&input_var&j)*3 then "Y"
else " "
end as &&input_var&j.._FLAG
from &data;
quit;
%end;
%else %put &&input_var&j NOT EXIST;
data &data.4;
merge _1-
%do i=1 %to %eval(%sysfunc(countc(&var,","))+1);
%if %sysfunc(exist(_&i.)) %then _&i;
%end;
;
run;
%end;
%let rc = %sysfunc(close(&dsid));
%mend;
%outlier_check(index,height);
%outlier_check(index,%str(height,weight));
如果变量不存在,程序会忽略该变量。
参考资料
《sas数据统计分析》第六章
热门推荐
公司筹建期间的装修费用和预付的房租分别要计入哪个会计科目
公司成立前房租怎么处理?三类常见房租问题法律解答
如何预测黄金在十二月份的价格走势?哪些因素会影响这种走势?
论文如何降低AI率:七大策略助你提升原创性与质量
基于爬虫的国内城市空气质量数据采集可视化系统设计与实现
展望:电子战装备升级与新形态演化
展望:电子战装备升级与新形态演化
融资方与信托公司关系的法律分析及实务探讨
Excel中计算每个月总收入的完整指南
雷帝环氧彩砂填缝施工全攻略
牛顿第一定律:理解运动与静止的基础法则及其生活应用
伴随矩阵怎么求 有什么方法
道家思想能量,以自然为师,与生命共振
黄色彩椒的营养价值
朗兰兹纲领:数学统一理论的探索
辟谷对身体有什么好处?医生这样说
长沙的历史介绍
黑色素:功能、类型以及如何影响其自然产生
学中医,应该背哪些书?四位顶尖中医大师推荐的背诵书单全解析
尼龙66聚合工艺详解
婚姻幸福密码:这些小技巧让爱情翻倍!
特朗普政策吓坏华尔街:美股暴跌,科技股遭抛售,经济衰退恐慌加剧…
术前八项检查全解析:确保手术安全的重要保障
地铁车票怎么取票报销?一文详解不同城市、不同购票方式的报销流程
火车票报销不再愁!12306发票开具全攻略,轻松几步搞定报销难题
粉尘监测解决方案
知识丨拘留、逮捕、羁押,傻傻分不清楚?
工作意外怎么办?了解你的权益
第三届上海国际网文周开幕,网络文学如何成为一种世界文化现象?
立春吃什么传统食物