Leo Yeh's Blog

SAS 基礎程式 (9)

教學目標

初步了解 SAS 基礎程式如何有效進行統計分析。

重點概念

(請注意以下內容皆為課程心得筆記,若有不清楚的部份,建議上官方主辦的 SAS Programming 2 課程,謝謝。)

一般來說,研究人員針對收集的數據資料進行統計分析時,會遇到許多問題,尤其是在遺漏的情況發生時,若我們僅使用四則運算則會產生結果為遺漏值。

首先我們要如何計算遺漏值個數,主要可以透過 NMISS 和 CMISS 兩個函數,差別在於 NMISS 為計算數值和文字的遺漏值個數,而 CMISS 為計算數字的遺漏值數,請注意文字會先自動轉換數值,請參考下述程式。

找出遺漏值 SAS 程式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DATA statistic;
INPUT Var1 $ Var2 Var3 $ Var4 $ Var5;
_CMISS_ = CMISS(Var1,Var2,Var3,Var4,Var5);
_NMISS_ = NMISS(Var1,Var2,Var3,Var4,Var5);
DATALINES;
$12,345
23456
34,567
(45,678)
56789.00
;
RUN;
PROC PRINT;
RUN;

輸出結果

Obs Var1 Var2 Var3 Var4 Var5 CMISS NMISS
1 $12,345 23456 32,567 45,678.0 56789 0 3

接著我們會透過 SUM 、 MEAN 、MIN 、 MAX 、 LARGEST、SMALLEST、ORDIANL、PCTL … 等統計函數進行統計分析,其中 N 個變數可以搭配 OF 進行操作,同時若透過常用的統計運算函數時基本上就會忽略遺漏值。請參考下表。

函數名稱 使用方式 重點概念
SUM SUM(變數1, 變數2,…) 主要是計算非遺漏值變數的加總值。
MEAN MEAN(變數1, 變數2,…) 主要是計算非遺漏值變數的平均值。
MIN MIN(變數1, 變數2,…) 主要是計算非遺漏值變數的最小值。
MAX MAX(變數1, 變數2,…) 主要是計算非遺漏值變數的最大值。
LARGEST LARGEST(N,變數1, 變數2,…) 主要是在非遺漏值變數中找第 N 大。
SMALLEST SMALLEST(N,變數1, 變數2,…) 主要是在非遺漏值變數中找第 N 小。
ORDIANL ORDIANL(N,變數1, 變數2,…) 主要是先排序之後,接著在非遺漏值變數中找第 N 大。
PCTL PCTL (N,變數1, 變數2,…) 主要是先排序之後,接著在非遺漏值變數中找百分位第 N 大,範圍為 1 至 100。

再來我們處理數值變數時,通常會用到下述常用的數值計算函數。

函數名稱 使用方式 重點概念
ROUND ROUND(變數,小數點位數) 主要是針對變數進行四捨五入,其中還能夠設定小數點位數,取得更精確的結果。
ABS ABS(變數) 主要是針對變數取得絕對值。
CEIL CEIL(變數) 主要是針對變數進行無條件進位。
FLOOR FLOOR(變數) 主要是針對變數進行無條件捨去。
INT INT(變數) 主要是針對變數進行取整數位數。
MOD MOD(變數1, 變數2) 主要是將變數1 和變數 2 相除,變數1 為被除數,變數2 為除數,取得相除之後的餘數。
EXP EXP(變數) 主要是針對變數取得指數值。
LOG LOG(變數) 主要是針對變數取得自然對數值。
LOG2 LOG2(變數) 主要是針對變數取得以 2 為底的對數值。
LOG10 LOG10(變數) 主要是針對變數取得以 10 為底的對數值。

總結我們可以透過常用的統計運算函數和數值計算函數,讓研究人員針對收集的數據資料有效的進行統計分析。

相關資源

⬅️ Go back