现在的位置: 首页 > 综合 > 正文

分类数据之列联表分析案例with sas

2018年02月19日 ⁄ 综合 ⁄ 共 1856字 ⁄ 字号 评论关闭
*表一,随机设计四格表;
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;

抱歉!评论已关闭.