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; 

以下是所用引數的說明:

  • **資料集** - 是所用資料集的名稱。

  • **變數** - 是用於繪製箱線圖的值。

簡單箱線圖

在簡單箱線圖中,我們從資料集中選擇一個變數作為第一個變數,另一個變數作為類別變數。第一個變數的值被分類為與第二個變數中不同值的個數一樣多的組。

示例

在下面的示例中,我們選擇變數 horsepower 作為第一個變數,type 作為類別變數。因此,我們獲得了每種型別汽車的 horsepower 值分佈的箱線圖。

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; 

執行上述程式碼後,我們將獲得以下輸出:

box_plot_1

垂直面板中的箱線圖

我們可以將一個變數的箱線圖劃分為多個垂直面板(列)。每個面板包含所有類別變數的箱線圖。但是,箱線圖將使用另一個第三個變數進一步分組,該變數將圖形劃分為多個面板。

示例

在下面的示例中,我們使用變數“make”對圖形進行了面板化。由於“make”有兩個不同的值,因此我們得到了兩個垂直面板。

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

   title 'Horsepower of cars by types';
RUN; 

執行上述程式碼後,我們將獲得以下輸出:

box_plot_2

水平面板中的箱線圖

我們可以將一個變數的箱線圖劃分為多個水平面板(行)。每個面板包含所有類別變數的箱線圖。但是,箱線圖將使用另一個第三個變數進一步分組,該變數將圖形劃分為多個面板。在下面的示例中,我們使用變數“make”對圖形進行了面板化。由於“make”有兩個不同的值,因此我們得到了兩個水平面板。

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

   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN; 

執行上述程式碼後,我們將獲得以下輸出:

box_plot_3
廣告