一.建立數(shù)據(jù)集的基礎和高級議題
從最簡單的建立SAS數(shù)據(jù)集開始,逐步深入,介紹如何產(chǎn)生新變量、如何對數(shù)據(jù)集中的變量進行修飾、如何合理地運用輸入和輸出格式來完成一些實際工作。
二.介紹部分函數(shù)。
不僅是介紹函數(shù)本身,更重要的是介紹函數(shù)的使用思路,介紹如何應用函數(shù)來處理實際問題,而這正是目前國內(nèi)大部分書中所缺乏的。
三.介紹數(shù)據(jù)集處理過程
如何查找重復值、異常值、缺失值等,這是所有數(shù)據(jù)的必需過程。行數(shù)據(jù)清洗。
四.SAS做圖。
五.SAS制表。
不僅介紹了常規(guī)的制表程序,而且介紹了很多高級的深入用法,如對表格的詳細修飾,將表格直接輸出為標準的三線表等。
一.建立數(shù)據(jù)集的基礎和高級議題
1.多個產(chǎn)品的集合
SAS是個系統(tǒng),所以它不只是個統(tǒng)計軟件,而是多個產(chǎn)品的集合

2.界面

3.功能

4.運行方式

5.程序構成

6.建立數(shù)據(jù)集
SAS中建立數(shù)據(jù)集主要有兩種方式:直接輸入數(shù)據(jù),另一種是把數(shù)據(jù)從別的數(shù)據(jù)庫軟件導入到SAS中。這里只講直接輸入數(shù)據(jù)。
直接輸入一共就三句話:data、input和cards。
①data語句是給數(shù)據(jù)集起名字,data和數(shù)據(jù)集名之間用空格隔開。
data 數(shù)據(jù)集名;
數(shù)據(jù)集名只能由英文、數(shù)字和下劃線組成,而且第一個詞不能是數(shù)字【即必須以字母A到Z(不區(qū)分大小寫)或下劃線(_)開始】;不能超過32個字符;不能包含空格、中文和特殊字符。
②輸入變量用input語句,input語句的基本格式是:
input 變量1 變量2 ......;
各個變量之間用空格隔開,SAS默認是以空格作為分隔符來區(qū)分不同變量的,變量的名字與SAS數(shù)據(jù)集名的規(guī)則基本一樣。
③輸入數(shù)據(jù)用cards或datalines均可。它的基本格式是:
cards;
數(shù)據(jù)
;
數(shù)據(jù)是與變量相對應的,每行的多個數(shù)據(jù)之間最好用空格隔開。數(shù)據(jù)可以是數(shù)值,也可以是日期或數(shù)值以外的字符(包括中文)
舉例:
建立一個數(shù)據(jù)集,起名為first,變量包括我們兩個人的性別和年齡,性別男和女分別用1和0表示。
data first;
input gender age;
cards;
1 30
0 24
;
7.數(shù)據(jù)集的存放

建立在非Work文件夾下的數(shù)據(jù)集一般稱為永久數(shù)據(jù)集
data sasuser.first;
input gender age;
cards;
1 30
0 24
;
運行后,數(shù)據(jù)集first就存放到sasuser文件夾下,而不是work文件夾下了,此時first就是個永久數(shù)據(jù)集。
也可以自己新建一個文件夾,把數(shù)據(jù)集都放到這個文件夾里,第一,先在自己的電腦中找個位置建立一個文件夾,文件夾的名字隨意取,比如我們在G盤新建一文件夾命名為excel。第二,在SAS資源管理器中打開邏輯庫。

第二步或者通過
libname 邏輯庫文件夾名 硬盤的文件夾路徑和名稱;
即
libname fgs "g:\excel";
對于自己建立的邏輯庫,在調(diào)用數(shù)據(jù)集之前還需要用libname語句把邏輯庫與文件夾建立關聯(lián)。
還有一種非常簡單的建立永久數(shù)據(jù)集的方式,就是直接用data語句指定一個路徑和SAS數(shù)據(jù)集名。此時不需要用libname.
data "g:\excel\first";
input gender age;
cards;
1 30
0 24
;
舉例:
libname fgs "g:\excel"; /*調(diào)用之前仍需先用libname建立關聯(lián)*/
proc print data=fgs.first;
run
#或者
proc print data="g:\excel\ first ";
run;
總之,常見的建立永久數(shù)據(jù)集的方式有三種:一是在邏輯庫中用菜單新建文件夾,并與電腦上已有的某個文件夾關聯(lián)起來;二是用libname語句指定文件夾名,并與電腦上已有的某個文件夾關聯(lián)起來;三是用data語句直接指定電腦上已存在的文件夾路徑及SAS數(shù)據(jù)集名。
8.建立數(shù)據(jù)集的高級議題
SAS中的變量有數(shù)值型、字符型,日期在SAS中是作為數(shù)值型,所有日期型變量被作為輸入日期與1960年1月1日之差。如1980-1-1,SAS會默認這個值是7305,而且也會顯示為7305。
尤其是日期變量,一定要規(guī)定相應的輸入格式。輸入格式的基本形式是這樣的:
input 變量1 輸入格式1 變量2 輸入格式2 ......;
不同類型變量的輸入格式是不同的。
①數(shù)值型變量的輸入格式主要是w.d,6.3表示總位數(shù)是6,包括3位小數(shù);再如4.表示總位數(shù)是4,沒有小數(shù)。一定要注意,即使沒有小數(shù),點號也一定要加上。但大多時候?qū)?shù)值型變量是不加輸入格式的。
data fh;
input x 4.2; /*變量后的4.2表示變量x的寬度共4位,其中小數(shù)有2位*/
cards;
12
2.1
15.6
23.46;
proc print; /*這句話的作用是讓讀入的數(shù)據(jù)顯示在輸出窗口*/
run;

首先,SAS先根據(jù)設定的總位數(shù)來讀取數(shù)據(jù),也就是說,每個數(shù)只讀取前4位,這樣4個數(shù)分別是12、2.1、15.6和23.4。小數(shù)位數(shù)規(guī)定了2位,所以每個數(shù)必須有2位小數(shù)點,所以2.1、15.6和23.4分別變成了2.10、15.60和23.40,而SAS讀整數(shù)就是這樣,沒有小數(shù)點就自動把自己降為小數(shù)。如果你在錄入的時候是12.0,那就會讀成12.00,但12就讀成了0.12。此時對數(shù)值型指定格式就顯得畫蛇添足。
②字符型變量的輸入格式主要是符號是必須加的,w表示字節(jié)數(shù)(1個中文占2字節(jié)),一般只有在變量寬度超過8字節(jié)的時候才有必要加。因為SAS默認對字符只讀取8位。
data fh;
input pro $12.;
cards;
山東省青島市;
proc print;
run;
如果不加“12.”,只加一個美元符號,那么SAS最對多pro讀取8字節(jié),也就是4個中文字符,結果就會顯示“山東省青”。加上“美元符號12.”才能讓SAS完整讀取這6個字。字符串變量在結尾有一個$,數(shù)字值沒有它。
③日期型變量

9.特殊輸入符:
冒號的作用是告訴SAS,如果要讀取下一個變量,需要滿足下面任一條件:要么遇到空格,要么變量的寬度讀完了。
data fh;
input city: $18. zone$; /*在city后加了一個冒號*/
cards;
山東省蓬萊市 0536
山東省青島市市南區(qū) 0532
;
proc print;
run;

10.SAS文件擴展名
SAS程序,數(shù)據(jù)文件和程序的結果在Windows中以各種擴展名保存。
- .sas - 它表示可以使用SAS編輯器或任何文本編輯器編輯的SAS代碼文件。
- .log - 它表示SAS日志文件,它包含已提交的SAS程序的錯誤,警告和數(shù)據(jù)集詳細信息。
- .mht / * .html - 它表示SAS結果文件。
- .sas7bdat - 它表示SAS數(shù)據(jù)文件,其中包含SAS數(shù)據(jù)集,包括變量名稱,標簽和計算結果。
11.注釋
單行注釋
* This is comment ;
多行注釋
* This is first line of the comment
* This is second line of the comment;
或者
單行注釋
/* This is comment */
多行注釋
/* This is first line of the comment
* This is second line of the comment */
二.介紹部分函數(shù)
1.字符串函數(shù)
①SUBSTRN
此函數(shù)使用開始和結束位置提取子字符串。 如果沒有提到結束位置,它提取所有字符直到字符串結束。
SUBSTRN('stringval',p1,p2)
p1為提取的開始位置。
p2為提取的最終位置。
②TRIMN
此函數(shù)從字符串中刪除尾部空格。
TRIMN('stringval')
③lengthc
計算字符串長度
lengthc("String1")
④其他
data character_functions;
/* Convert the string into lower case */
lowcse_ = LOWCASE('HELLO');
/* Convert the string into upper case */
upcase_ = UPCASE('hello');
/* Reverse the string */
reverse_ = REVERSE('Hello');
/* Return the nth word */
nth_letter_ = SCAN('Learn SAS Now',2);
run;
proc print data = character_functions noobs;
run;

2.數(shù)組
①聲明數(shù)組
ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES
ARRAY是聲明數(shù)組的SAS關鍵字。
ARRAY-NAME是遵循與變量名稱相同的規(guī)則的數(shù)組的名稱。
SUBSCRIPT是數(shù)組要存儲的值的數(shù)量。
($)是一個可選參數(shù),僅當數(shù)組要存儲字符值時使用。
VARIABLE-LIST是變量的可選列表,它們是數(shù)組值的占位符。
ARRAY-VALUES是存儲在數(shù)組中的實際值。 它們可以在這里聲明,或者可以從文件或dataline中讀取。
舉例:
# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);
②使用OF運算符按行計算
當分析數(shù)組形式的數(shù)組以對數(shù)組的整個行執(zhí)行計算時,使用OF運算符。 在下面的示例中,我們應用每行中的值的和和均值。
舉例:
DATA array_example_OF;
INPUT A1 A2 A3 A4;
ARRAY A(4) A1-A4;
A_SUM=SUM(OF A(*));
A_MEAN=MEAN(OF A(*));
A_MIN=MIN(OF A(*));
DATALINES;
21 4 52 11
96 25 42 6
;
RUN;
PROC PRINT DATA=array_example_OF;
RUN;
結果:

③使用IN運算符檢查數(shù)組行中是否存在值
也可以使用IN運算符訪問數(shù)組中的值,該運算符檢查數(shù)組行中是否存在值。 在下面的例子中,我們檢查數(shù)據(jù)中顏色“黃色”的可用性。 此值區(qū)分大小寫。
舉例:
DATA array_in_example;
INPUT A1 $ A2 $ A3 $ A4 $;
ARRAY COLOURS(4) A1-A4;
IF 'yellow' IN COLOURS THEN available='Yes';ELSE available='No';
DATALINES;
Orange pink violet yellow
;
RUN;
PROC PRINT DATA=array_in_example;
RUN;
結果:

3.運算符
①
加 減 乘 除 冪
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
②
且 或 否
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
邏輯運算符的結果總是1或0.
③
等于 不等于 大于等于 小于等于 在
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
④
最小 最大
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
⑤
連接
concat_ = (COL1 || COL2 || COL3);
例如:'Hello'||'World' 輸出 Hello World
4.循環(huán)
①DO Index 循環(huán)
DO索引循環(huán)使用索引變量作為其開始和結束值。 重復執(zhí)行SAS語句,直到達到索引變量的最終值。
舉例:
DATA MYDATA1;
SUM=0;
DO VAR=1 to 5;
SUM=SUM+VAR;
END;
PROC PRINT DATA=MYDATA1;
RUN;
結果:

②DO WHILE 循環(huán)
DO WHILE循環(huán)使用WHILE條件。 重復執(zhí)行SAS語句,直到while條件為假。
舉例:
DATA MYDATA;
SUM=0;
VAR=1;
DO WHILE(VAR<6) ;
SUM=SUM+VAR;
VAR+1;
END;
PROC PRINT;
RUN;
結果:

③DO UNTIL 循環(huán)
DO UNTIL循環(huán)使用UNTIL條件。 重復執(zhí)行SAS語句,直到UNTIL條件變?yōu)門RUE。
舉例:
DATA MYDATA;
SUM=0;
VAR=1;
DO UNTIL(VAR>5) ;
SUM=SUM+VAR;
VAR+1;
END;
PROC PRINT;
RUN;
結果:

5.決策
IF-THEN-ELSE-IF語句由具有THEN語句的布爾表達式組成。 緊接著是一個ELSE聲明。
IF (condition1) THEN result1;
ELSE IF (condition2) THEN result2;
ELSE IF (condition3) THEN result3;
6.截斷
/* Nearest greatest integer */
ceil_ = CEIL(11.85);
/* Nearest greatest integer */
floor_ = FLOOR(11.85);
/* Integer portion of a number */
int_ = INT(32.41);
/* Round off to nearest value */
round_ = ROUND(5621.78);
run;
proc print data = trunc_functions noobs;
run;

三.介紹數(shù)據(jù)集處理過程
1.寫入數(shù)據(jù)集
將使用SASHELP庫中提供的名為cars的SAS數(shù)據(jù)集。
為了寫逗號分隔的文件,我們可以使用帶有值“csv”的dlm選項。 以下代碼寫入文件car_data.csv
proc export data=sashelp.cars
outfile=
'/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.csv'
dbms=csv;
run;
2.連接數(shù)據(jù)集
可以使用SET語句連接多個SAS數(shù)據(jù)集以提供單個數(shù)據(jù)集。 在連接的數(shù)據(jù)集中的觀察的總數(shù)是原始數(shù)據(jù)集中的觀察的數(shù)量的總和。 觀察的順序是連續(xù)的。
SET data-set 1 data-set 2 data-set 3.....;
3.合并數(shù)據(jù)集
可以基于特定的公共變量合并多個SAS數(shù)據(jù)集以給出單個數(shù)據(jù)集。 這是使用MERGE語句和BY語句完成的。 合并數(shù)據(jù)集中的觀察的總數(shù)通常小于原始數(shù)據(jù)集中的觀察的數(shù)量的總和。 這是因為當公共變量的值存在匹配時,變量形成兩個數(shù)據(jù)集合被合并為一個記錄。
MERGE Data-Set 1 Data-Set 2
BY Common Variable
4.子集數(shù)據(jù)集
通過使用KEEP和DROP語句完成變量的子設置,使用DELETE語句完成觀察的子設置。
①子設置變量
在這種方法中,我們只從整個數(shù)據(jù)集中提取很少的變量。
保留需要的
KEEP var1 var2 ... ;
等同于刪除不需要的
DROP var1 var2 ... ;
②子設置觀察
在這種方法中,我們只從整個數(shù)據(jù)集中提取少數(shù)觀測值。
IF Var Condition THEN DELETE ;
5.數(shù)據(jù)集排序
①正向排序(從低到高)
排序可以發(fā)生在任何單個變量以及多個變量。 用于在SAS數(shù)據(jù)集中執(zhí)行排序的SAS過程被稱為PROC SORT。 排序后的結果存儲在新數(shù)據(jù)集中,原始數(shù)據(jù)集保持不變。
PROC SORT DATA=original dataset OUT=Sorted dataset;
BY variable name;
變量名是排序發(fā)生的列名。
原始數(shù)據(jù)集是要排序的數(shù)據(jù)集名稱。
排序的數(shù)據(jù)集是排序后的數(shù)據(jù)集名稱。
②反向排序(從高到低)
通過使用DESCENDING語句實現(xiàn)反向排序。
舉例:
PROC SORT DATA=Employee OUT=Sorted_sal_reverse ;
BY DESCENDING salary;
結果:

6.格式數(shù)據(jù)集
例如,我們想要向有價格信息的變量添加美元符號和兩個小數(shù)位。 或者我們可能想要顯示一個文本變量,全部為大寫。 我們可以使用FORMAT來應用內(nèi)置的SAS格式,PROC FORMAT是應用用戶定義的格式。此外,單個格式可以應用于多個變量。
format variable name format name
變量名是在數(shù)據(jù)集中使用的變量名。
format name是要應用于變量的數(shù)據(jù)格式。
還可以使用PROC FORMAT來格式化數(shù)據(jù)
7.在SAS中使用SQL查詢
過程PROC SQL用于處理SQL語句。 此過程不僅可以返回SQL查詢的結果,還可以創(chuàng)建SAS表和變量。
PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;
SQL查詢寫在PROC SQL語句之后,后跟QUIT語句。
在SAS中應用SQL中的CRUD(創(chuàng)建,讀取,更新和刪除)操作
①SQL創(chuàng)建操作
使用SQL,我們可以創(chuàng)建新的數(shù)據(jù)集形式原始數(shù)據(jù)。 在下面的示例中,首先聲明一個名為TEMP的數(shù)據(jù)集,其中包含原始數(shù)據(jù)。 然后我們寫一個SQL查詢,從這個數(shù)據(jù)集的變量創(chuàng)建一個表。
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;
PROC PRINT data = EMPLOYEES;
RUN;

②SQL讀操作
SQL中的讀取操作涉及編寫SQL SELECT查詢以從表中讀取數(shù)據(jù)。 In以下程序查詢庫SASHELP中可用的名為CARS的SAS數(shù)據(jù)集。 查詢獲取數(shù)據(jù)集的某些列。
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
;
QUIT;

③SQL SELECT with WHERE Clause 條件查詢語句
以下程序使用where子句查詢CARS數(shù)據(jù)集。 在結果中,我們只得到了作為“Audi”和類型為“Sports”的觀察。
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;

④SQL UPDATE操作
我們可以使用SQL Update語句更新SAS表。 下面我們首先創(chuàng)建一個名為EMPLOYEES2的新表,然后使用SQL UPDATE語句更新它。
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;
PROC SQL;
UPDATE EMPLOYEES2
SET SALARY=SALARY*1.25;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
⑤在SQL中刪除操作
SQL中的刪除操作涉及使用SQL DELETE語句從表中刪除某些值。 我們繼續(xù)使用上面示例中的數(shù)據(jù),并從表中刪除雇員的工資大于900的行。
PROC SQL;
DELETE FROM EMPLOYEES2
WHERE SALARY > 900;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
四.數(shù)據(jù)展示
1.直方圖
在SAS中創(chuàng)建直方圖的基本語法是:
PROC UNIVARAITE DATA = DATASET;
HISTOGRAM variables;
RUN;
DATASET是所使用的數(shù)據(jù)集的名稱。
變量是用于繪制直方圖的值。
①簡單直方圖
proc univariate data=sashelp.cars;
histogram horsepower
/ midpoints = 176 to 350 by 50;
run;

②帶曲線擬合的直方圖
proc univariate data=sashelp.cars noprint;
histogram horsepower
/
normal (
mu = est #平均值和標準偏差值被稱為EST
sigma = est
color = blue
w = 2.5
)
barlabel=percent
midpoints = 70 to 550 by 50;
run;

2.條形圖
在SAS中創(chuàng)建條形圖的基本語法是:
PROC SGPLOT DATA = DATASET;
VBAR variables;
RUN;
DATASET是所使用的數(shù)據(jù)集的名稱。
變量是用于繪制直方圖的值。
矩形條中的數(shù)據(jù),條的長度與變量的值成比例
①簡單的條形圖
表示汽車的長度為條形
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=work.cars1;
vbar length ;
title 'Lengths of cars';
run;
quit;

②堆疊條形圖
是一個條形圖,其中相對于另一個變量計算數(shù)據(jù)集中的變量
計算每種車型的車輛長度
proc SGPLOT data=work.cars1;
vbar length /group = type ;
title 'Lengths of Cars by Types';
run;
quit;

③復式條形圖
創(chuàng)建一個集群的條形圖,其中汽車的長度是圍繞汽車類型聚類。所以我們看到在長度191兩個相鄰的條形圖,一為車型'轎車',而另一個用于汽車類型“旅行車”。
proc SGPLOT data=work.cars1;
vbar length /group = type GROUPDISPLAY = CLUSTER;
title 'Cluster of Cars by Types';
run;
quit;

3.餅圖
餅圖使用PROC TEMPLATE創(chuàng)建,它采用參數(shù)來控制百分比,標簽,顏色,標題等。
每個切片代表汽車類型與汽車總數(shù)的比例。
PROC SQL;
create table CARS1 as
SELECT make,model,type,invoice,horsepower,length,weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type /
DATALABELLOCATION = OUTSIDE
CATEGORYDIRECTION = CLOCKWISE
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;

4.散點圖
在SAS中創(chuàng)建散點圖的基本語法是:
PROC sgscatter DATA=DATASET;
PLOT VARIABLE_1 * VARIABLE_2
/ datalabel = VARIABLE group = VARIABLE;
RUN;
5.箱線圖
基本的語法來創(chuàng)建一個箱線圖在SAS是:
PROC SGPLOT DATA=DATASET;
VBOX VARIABLE / category = VARIABLE;
RUN;
PROC SGPANEL DATA=DATASET;;
PANELBY VARIABLE;
VBOX VARIABLE> / category = VARIABLE;
RUN;
五.統(tǒng)計函數(shù)
1.線性回歸
程序PROC REG用于找到兩個變量之間的線性回歸模型。
PROC REG DATA = dataset;
MODEL variable_1 = variable_2;
Dataset是數(shù)據(jù)集的名稱。
variable_1和variable_2是用于查找相關性的數(shù)據(jù)集的變量名稱。
2.卡方
卡方檢驗用于檢驗兩個分類變量之間的關聯(lián)。 它可以用于測試變量的依賴程度和獨立性程度。 SAS使用PROC FREQ和chisq選項來確定卡方檢驗的結果。
PROC FREQ DATA = dataset;
TABLES variables
/CHISQ TESTP=(percentage values);
Dataset是數(shù)據(jù)集的名稱。
變量是在卡方檢驗中使用的數(shù)據(jù)集的變量名。
百分比TESTP語句中的值表示變量的級別的百分比。
雙向卡方
當我們將測試應用于數(shù)據(jù)集的兩個變量時,使用雙向卡方檢驗。
proc freq data = sashelp.cars;
tables type*origin
/chisq
;
run;
3.單因素方差分析
ANOVA代表方差分析。 在SAS中,它使用PROC ANOVA完成。
PROC ANOVA dataset ;
CLASS Variable;
MODEL Variable1=variable2 ;
MEANS ;
dataset是數(shù)據(jù)集的名稱。
CLASS給出變量用作分類變量的變量。
MODEL使用數(shù)據(jù)集中的某些變量定義要擬合的模型。
Variable_1和Variable_2是分析中使用的數(shù)據(jù)集的變量名稱。
MEANS定義計算的類型和均值的比較。
4.t test
進行T檢驗以通過比較它們的均值和平均差異來計算一個樣本或兩個獨立樣本的置信限度。 名為PROC TTEST的SAS過程用于對單個變量和一對變量執(zhí)行t個測試。
PROC TTEST DATA = dataset;
VAR variable;
CLASS Variable;
PAIRED Variable_1 * Variable_2; #配對t檢驗,進行配對T檢驗以測試兩個因變量是否在統(tǒng)計學上彼此不同。
Dataset是數(shù)據(jù)集的名稱。
Variable_1和Variable_2是在t test中使用的數(shù)據(jù)集的變量名。
5.交叉表格
交叉制表涉及使用兩個或更多變量的所有可能組合來產(chǎn)生也稱為偶然表的交叉表。 在SAS中,它使用PROC FREQ以及TABLES選項創(chuàng)建。
PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;
Dataset是數(shù)據(jù)集的名稱。
Variable_1和Variable_2是需要計算其頻率分布的數(shù)據(jù)集的變量名稱。
6.相關性分析
相關性分析處理變量之間的關系。 相關系數(shù)是兩個變量之間的線性關聯(lián)的度量。相關系數(shù)的值總是在-1和+1之間。 SAS提供過程PROC CORR以找到數(shù)據(jù)集中的一對變量之間的相關系數(shù)。
PROC CORR DATA = dataset options;
VAR variable;
Dataset是數(shù)據(jù)集的名稱。
選項是附加選項,其中包括繪制矩陣等過程。
變量是用于查找相關性的數(shù)據(jù)集的變量名稱。