分類資料之列聯表分析案例with sas
阿新 • • 發佈:2019-02-05
*表一,隨機設計四格表; options validvarname=any; data test1; input 用藥 $ 敏感性 $ 計數; datalines; 服藥 不敏感 180 服藥 敏感 215 未服藥 不敏感 73 未服藥 敏感 106 ; proc freq data=test1 order=data; weight 計數; tables 用藥*敏感性 / chisq nocol; run; *兩個格子的理論頻數比1大比5小的情況,使用連續性校正卡方檢驗較優; data test2; input 年級 $ 近視情況 $ 計數; datalines; 四年級 非近視 26 四年級 近視 2 五年級 近視 5 五年級 非近視 9 ; proc freq data=test2 order=data; weight 計數; tables 年級*近視情況 / chisq nocol; run; * 頻數<40的情況,四格表的Fisher確切檢驗法較優; data test3; input 療法 $ 療效 $ 計數; datalines; 新療法 未治癒 2 新療法 治癒 7 保守療法 治癒 2 保守療法 未治癒 6 ; proc freq data=test3 order=data; weight 計數; tables 療法*療效 / chisq nocol; run; *配對設計四格表,應用配對四格表 (也叫McNemar)檢驗; data test4; input 培養基A $ 培養基B $ 計數; datalines; 陽性 陽性 48 陽性 陰性 24 陰性 陽性 20 陰性 陰性 106 ; proc freq data=test4 order=data; weight 計數; tables 培養基A*培養基B / chisq nocol; exact agree; run; * 完全隨機設計R×C表格; data test5; input 地區 $ 血型 $ 計數; datalines; 亞洲 A 321 亞洲 B 369 亞洲 AB 95 亞洲 O 295 歐洲 A 258 歐洲 B 43 歐洲 AB 22 歐洲 O 194 北美洲 A 408 北美洲 B 106 北美洲 AB 37 北美洲 O 444 ; proc freq data=test5 order=data; weight 計數; tables 地區*血型 / chisq nocol; run; data test6; input 藥物 $ 藥效 $ 計數; datalines; 新葯 有效 6 傳統藥 有效 11 安慰劑 有效 29 新葯 無效 42 傳統藥 無效 26 安慰劑 無效 8 ; proc freq data=test6 order=data; weight 計數; tables 藥物*藥效 / chisq nocol; run; *雙向無序的列聯表,類似配對設計,例如ABO血型與MN血型; data test7; input ABO血型 $ MN血型 $ 計數 @@; datalines; O M 431 O N 490 O MN 902 A M 388 A N 410 A MN 800 B M 495 B N 587 B MN 950 AB M 137 AB N 179 AB MN 32 ; proc freq data=test7 order=data; weight 計數; tables ABO血型*MN血型 / chisq nocol; run; *單向有序分類變數列聯表,如藥物療效是等級變數,秩和檢驗; data test8; input 藥物 $ 療效 $ 計數 @@; datalines; A藥 無效 5 A藥 好轉 31 A藥 顯效 49 A藥 治癒 15 B藥 無效 22 B藥 好轉 50 B藥 顯效 9 B藥 治癒 4 C藥 無效 24 C藥 好轉 45 C藥 顯效 15 C藥 治癒 1 ; proc freq data=test8 order=data; weight 計數; tables 藥物*療效 / cmh scores=rank nocol; run; *雙向有序分類變數,不同年齡組用秩和檢驗,年齡與眼睛晶狀體混濁程度相關性用等級相關檢驗; data test9; input 年齡 $ 表現 $ 計數 @@; datalines; 20~ + 215 20~ ++ 67 20~ +++ 44 30~ + 131 30~ ++ 101 30~ +++ 63 40~ + 148 40~ ++ 128 40~ +++ 132 ; proc freq data=test9 order=data; weight 計數; tables 年齡*表現 / cmh scores=rank; test scorr; run; *雙向有序並且屬性相同的,雙向均為按等級分類,一致性(Kappa)檢驗; data test10; input 對比法 $ 核素法 $ 計數 @@; datalines; 正常 正常 58 正常 減弱 2 正常 異常 3 減弱 正常 1 減弱 減弱 42 減弱 異常 7 異常 正常 8 異常 減弱 9 異常 異常 17 ; proc freq data=test10 order=data; weight 計數; tables 對比法*核素法 / agree norow nocol nopercent; test kappa wtkap; run;