阅读(3983) (0)

SAS箱线图

2016-12-12 13:47:32 更新

箱线图是通过其四分位数的数字数据组的图形表示。 箱形图具有从箱(晶须)垂直延伸的线,表示上部和下部四分位数之外的变化。 箱子的底部和顶部总是第一和第三四分位数,箱子内的带总是第二四分位数(中位数)。 在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是用于绘制Boxplot的值。

简单的箱形图

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

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

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; 

垂直面板中的箱线图

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

在下面的例子中,我们使用变量'make'来绘制图形。 因为'make'有两个不同的值,所以我们得到两个垂直面板。

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

   title 'Horsepower of cars by types';
RUN; 

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

水平面板中的箱形图

我们可以将一个变量的Boxplots分成许多水平面板(行)。 每个面板包含所有分类变量的箱线图。 但是盒图使用另一个第三个变量进一步分组,该图将该图分成多个面板。 在下面的例子中,我们使用变量'make'来绘制图形。 因为'make'有两个不同的值,所以我们得到两个水平面板。

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

  VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN;