proc sgplot data=sashelp.class; vbox age / category=sex; run;
基本箱线图
SAS中绘制箱线图最简单的方法是使用PROC SGPLOT过程中的VBOX语句。基本语法如下: PROC SGPLOT DATA=数据集; VBOX 连续变量 / CATEGORY=分类变量; RUN; 例如,使用SASHELP.CLASS数据集绘制年龄的箱线图,按性别分组: proc sgplot data=sashelp.class; vbox age / category=sex; run; 这将生成一个基本的垂直箱线图。
高级箱线图选项
你可以添加更多选项来美化箱线图。例如: proc sgplot data=sashelp.class; vbox age / category=sex fillattrs=(color=lightblue) outliers; yaxis label="Age"; run; 这里fillattrs填充颜色,outliers显示异常值,yaxis添加轴标签。
水平箱线图
要绘制水平箱线图,使用HBARPLOT语句: proc sgplot data=sashelp.class; hbox age / category=sex; run; 或者使用VBOX并旋转: ods graphics / rotate=landscape; proc sgplot data=sashelp.class; vbox age / category=sex; run;
多组箱线图
对于多个分类变量,可以使用GROUP选项: proc sgplot data=sashelp.class; vbox weight / category=sex group=sex; run; 这会按性别分组显示体重箱线图。
解读箱线图
箱线图由五数概括组成:最小值、下四分位数(Q1)、中位数、上四分位数(Q3)、最大值。箱体表示Q1到Q3的四分位距,中线为中位数。须子表示非异常值的范围,点表示异常值(小于Q1-1.5*IQR或大于Q3+1.5*IQR)。
自定义箱线图
使用更多选项: proc sgplot data=sashelp.class pad=(bottom=10%); vbox age / category=sex medianattrs=(color=red weight=3pt) whiskersattrs=(color=blue); run; 这自定义了中位线和须子的颜色和粗细。
FAQ
Q: SAS箱线图如何显示异常值?
A: 在VBOX语句中添加OUTLIERS选项,如vbox age / outliers;。
Q: 如何给箱线图添加标题?
A: 使用TITLE语句:title "年龄箱线图";。
Q: 箱线图中箱体代表什么?
A: 箱体代表下四分位数到上四分位数的范围,中线是中位数。
Q: 如何导出箱线图?
A: 使用ODS Graphics:ods graphics / imagefmt=png imagename="boxplot";。