天天看點

sas統計分析學習筆記(三)

分析分類資料

一.列舉變量的三種方法:

1.直接羅列變量

 2.variable_name_1 -- variable_name_2表示包含了資料集從variable_name_1到variable_name_2之間依次排序的所有變量。

 3.有相同字根的變量可以使用ROOTn-ROOTm,如果我們記錄了50個選擇題,則可以命名為QUES1、……、QUES50

二.添加标簽

1.為變量添加标簽,利用LABEL語句給每個變量加上标簽;

2.為變量值添加标簽:第一步,為每個變量定義變量值的内容;第二步,用FORMAT語句把變量名和定義的格式語句連接配接

在format語句中,每個格式名後應有一個(.)句号

3.需要年齡組而不是實際年齡時,在定義格式裡寫出年齡分組,在input語句裡建立新的關于年齡分組的變量,并運用if-then語句寫各年齡落在哪一組,label語句裡注明關于年齡分組變量的釋義。

PROC FORMAT;
  VALUE $SEXFMT '1'='Male'
            '2'='Female'
		OTHER='Miscoded';
  VALUE $RACE '1'='White'
          '2'='African AM.'
     	      '3'='Hispanic'
	       '4'='Other';
  VALUE $OSCAR '1'='Single'
           '2'='Married'
		 '3'='Widowed'
		 '4'='Divorced';
  VALUE $EDUC  '1'='High Sch or Less'
           '2'='two Yr. College'
		 '3'='Four Yr. College'
		 '4' = 'Graduate Degree';
  VALUE LIKERT   1 = 'Str Disagree'
            2 = 'Disagree'
            3 = 'No opinion'
            4 = 'Agree'
            5 = 'Str Agree'

   VALUE AGEFMT   1 = '0-20'
            2 = '21-40'
		 3 = '41-60'
		 4 = 'GREATER THAN 60';   ***對定義變量名的格式
run;
           
DATA QUEST;
   INPUT ID        $ 1-3 
         AGE         4-5 
         GENDER    $   6 
         RACE      $   7 
         MARITAL   $   8 
         EDUCATION $   9
         PRESIDENT    10 
         ARMS         11 
         CITIES       12;
      IF AGE GE 0 AND AGE LE 20 THEN AGEGRP = 1;
      ELSE IF AGE GT 20 AND AGE LE 40 THEN AGEGRP = 2;
      ELSE IF AGE GT 40 AND AGE LE 60 THEN AGEGRP = 3;
      ELSE IF AGE GT 60 THEN AGEGRP= 4 ;
  LABEL MARITAL="Marital Status"
        EDUCATION="Education Level"
		PRESIDENT="President Doing a Good Job"
		ARMS="Arms Budget Increase"
		CITLES= "Federal Aid to Cities";   ***為變量定義标簽
  FORMAT GENDER       $SEXFMT.
         RACE         $RACE.
		 MARITAL      $OSCAR.
		 EDUCATION    $EDUC.
		 PRESIDENT ARMS CITLES LIKERT.;   ***用FORMAT語句把變量名和定義的格式語句連接配接
DATALINES;
001091111232
002452222422
003351324442
004271111121
005682132333
006651243425
;
PROC FREQ DATA=QUEST;
   TABLES GENDER -- AGEGRP;
RUN;

        
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)
(一些輸出結果)

 還有一種不生成新變量的情況下重新編碼AGE

PROC FORMAT;
  VALUE AGROUP LOW-20 = '0-20'
               21-40 = '21-40'
			   41-60 = '41-60'
			   61-HIGH='GREATER THAN 60'
			   .     ='DID NOT ANSWER'
			   OTHER ='OUT OF RANGE';run;
           

一旦定義了格式,我們就能把格式和變量關聯起來。如果隻想在proc freq裡重編碼,就将format語句放在proc步驟裡:

PROC FREQ DATA=QUEST;
 TABLE AGE;
 FORMAT AGE AGROUP.;
 RUN;
           

三.列聯表

1.雙向列聯表

DATA ELECT;
   INPUT GENDER $ CANDID $ ;
   ***Note: only sample data here;
DATALINES;
M DEWEY
F TRUMAN
M TRUMAN
M DEWEY
F TRUMAN
;
PROC FREQ DATA=ELECT;
 TABLES GENDER CANDID
        GENDER*CANDID/CHISQ;***輸出列聯表,并進行卡方檢驗
RUN;
           
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)

2.生成多元表格的捷徑: TABLES (PRESIDENT ARMS CITIES)* AGEGRP; 以上語句将建立AGEGRP與三個變量的交叉表,一共生成三個表格,當然也可以分開寫成 TABLES PRESIDENT*AGEGRP ARMS*AGEGRP CITIES*AGEGRP的形式 同樣可以寫TABLES  (PRESIDENT ARMS) * (AGEGRP GENDER),這将生成4個表格。

3.當已經有列聯表格資料時,對表格進行卡方檢驗過程如下:

DATA CHISQ;
      INPUT GROUP $ OUTCOME $ COUNT;
DATALINES;
DRUG ALIVE 90
DRUG DEAD 10
PLACEBO ALIVE 80
PLACEBO DEAD 20
;
PROC FREQ DATA=CHISQ;
   TABLES GROUP*OUTCOME / CHISQ;
   WEIGHT COUNT;
RUN;
           

得到結果部分輸出:

sas統計分析學習筆記(三)
sas統計分析學習筆記(三)

必須要加上weight 語句,沒有weight語句出現的觀測值将都是1.

4.多個表格卡方檢驗的程式:

DATA CHISQ;
   N + 1;
   DO ROW = 1 TO 2;
      DO COL = 1 TO 2;
         INPUT COUNT @;
      OUTPUT;
      END;
   END;
DATALINES;
3 5 8 6
10 20 30 40
;
PROC FREQ DATA=CHISQ;
   BY N;
   TABLES ROW*COL / CHISQ;
   WEIGHT COUNT;
RUN;
           
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)

5.配對樣本的McNemar檢驗

例如判斷觀看禁煙廣告前後對人們吸煙态度的影響,需要在proc freq裡的table語句後面加/AGREE得到McNemar卡方統計量和Kappa統計量,

當McNemar的p值小于0.05時,認為禁煙廣告有助于改變人們的吸煙态度。

對已有列聯表計算McNemar卡方統計量:

PROC FORMAT;
VALUE $OPINION 'P'='Positive'
               'N'='Negative';
run;
DATA MCNEMAR;
LENGTH BEFORE AFTER $1; ***給變量設定固定長度1,隻需要1個位元組來存儲,如果不設定,将配置設定8個位元組存儲;
INPUT BEFORE $ AFTER $ COUNT;
FORMAT BEFORE AFTER $OPINION.;
DATALINES;
N N 32
N P 15
P N 30
P P 23
;
PROC FREQ DATA=MCNEMAR;
TABLES BEFORE*AFTER/AGREE;
WEIGHT COUNT;
RUN;
           
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)
sas統計分析學習筆記(三)

Kappa統計量一般用于測量兩個評分者之間的一緻性,如兩個醫生對患者的診斷結果,Kappa總是小于等于1的,越趨近于1,一緻性越高。

6.針對案例-對照設計,優勢比是常用的統計量

結果
案例 對照
接觸 50 20
100 130

從表格看出案例組中接觸苯的人的百分比更高,案例組苯接觸的優勢為50/100,對照組的優勢為20/130,優勢比為(50/130)/(20/130)

運作時在proc freq裡的table後加/CHISQ CMH

對于群組研究,相對風險統計量更合适

結果
心髒病 無心髒病
膽固醇 20 80
15 135

高膽固醇的病人中,心髒病發生率是20/100,低膽固醇的病人中,心髒病發生率是15/135,發生率之比叫做相對風險。

計算相對風險運作時在proc freq裡的table後加/CMH