SAS - 箱线图


箱线图是通过四分位数表示数值数据组的图形表示。箱线图还可能具有从箱(晶须)垂直延伸的线,指示上四分位数和下四分位数之外的变异性。盒子的底部和顶部始终是第一和第三四分位数,盒子内的带始终是第二四分位数(中位数)。在 SAS 中,使用PROC SGPLOT创建简单的箱线图,并使用PROC SGPANEL创建面板箱线图。

请注意,我们在第一个示例中创建了名为 CARS1 的数据集,并对所有后续数据集使用相同的数据集。该数据集保留在工作库中,直到 SAS 会话结束。

句法

在 SAS 中创建箱线图的基本语法是 -

PROC SGPLOT  DATA = DATASET;
   VBOX VARIABLE / category = VARIABLE;
RUN; 

PROC SGPANEL  DATA = DATASET;;
PANELBY VARIABLE;
   VBOX VARIABLE> / category = VARIABLE;
RUN; 

以下是所使用参数的描述 -

  • DATASET - 是所使用的数据集的名称。

  • VARIABLE - 是用于绘制箱线图的值。

简单箱线图

在简单的箱线图中,我们从数据集中选择一个变量,然后选择另一个变量来形成一个类别。第一个变量的值被分类为与第二个变量中不同值的数量一样多的组。

例子

在下面的示例中,我们选择变量 horsepower 作为第一个变量,并选择 type 作为类别变量。因此,我们得到了每种类型汽车的马力值分布的箱线图。

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

PROC SGPLOT  DATA = CARS1;
   VBOX horsepower 
   / category = type;

   title 'Horsepower of cars by types';
RUN; 

当我们执行上面的代码时,我们得到以下输出 -

箱形图_1

垂直面板中的箱线图

我们可以将变量的箱线图分成许多垂直面板(列)。每个面板都包含所有分类变量的箱线图。但箱线图使用另一个第三个变量进一步分组,该变量将图划分为多个面板。

例子

在下面的示例中,我们使用变量“make”对图表进行了分组。由于“make”有两个不同的值,因此我们得到两个垂直面板。

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE;
   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN; 

当我们执行上面的代码时,我们得到以下输出 -

箱形图_2

水平面板中的箱线图

我们可以将变量的箱线图划分为许多水平面板(行)。每个面板都包含所有分类变量的箱线图。但箱线图使用另一个第三个变量进一步分组,该变量将图划分为多个面板。在下面的示例中,我们使用变量“make”对图表进行了分组。由于“make”有两个不同的值,因此我们得到两个水平面板。

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;

   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN; 

当我们执行上面的代码时,我们得到以下输出 -

箱形图_3