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的区别
错峰共享、智能车库、公共换乘车位……上海破解停车难有妙招
开烧烤店选址的9大讲究!你知道几个?
您知道“美瞳”或许不“美丽”吗?
2025 年立春有讲究!“春打五九尾”藏着啥玄机?
金融行业的盈利模式是什么?这种模式面临哪些挑战?
这样吃 变通畅
18F-FDG PET/CT:开启精准医疗的“透视眼”
铁路勘测技术的智能化转型:空天地一体化技术的应用
如何规范管理销售合同
轨道交通对城市房地产价格影响特征分析
长距离徒步,如何做到负重而不累?
揭秘比特币挖矿:它究竟是如何保障网络安全的?
TOEIC托业考试是什么?要考多少分才会有竞争力?
单摇臂 双摇臂 到底怎么选择 哪个更好
单摇臂 双摇臂 到底怎么选择 哪个更好
研究发现:喝咖啡不影响睡眠质量,但改变了记忆相关大脑结构
白酒储存全攻略:整箱白酒如何长期保存?
汽车玻璃被砸,保险公司却拒绝赔偿?这样报保险,结果可能不一样
“八小时睡觉论”是错的?医生提醒:过60岁,睡觉尽量做到这4点
眼受伤挂什么科
如何分析企业的经营状况?这种经营状况对行业竞争有何反映?
许永保参观北京和敬公主府
黑群晖硬盘如何设置RAID5
乳糖不耐症可以喝什么?10种奶类替代品及营养价值