sas统计分析学习笔记(三)
来源:互联网 发布:22端口liux教学 编辑:程序博客网 时间:2024/06/07 18:32
分析分类数据
一.列举变量的三种方法:
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;001091111232002452222422003351324442004271111121005682132333006651243425;PROC FREQ DATA=QUEST; TABLES GENDER -- AGEGRP;RUN;
(一些输出结果)还有一种不生成新变量的情况下重新编码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;
三.列联表
DATA ELECT; INPUT GENDER $ CANDID $ ; ***Note: only sample data here;DATALINES;M DEWEYF TRUMANM TRUMANM DEWEYF TRUMAN;PROC FREQ DATA=ELECT; TABLES GENDER CANDID GENDER*CANDID/CHISQ;***输出列联表,并进行卡方检验RUN;
DATA CHISQ; INPUT GROUP $ OUTCOME $ COUNT;DATALINES;DRUG ALIVE 90DRUG DEAD 10PLACEBO ALIVE 80PLACEBO DEAD 20;PROC FREQ DATA=CHISQ; TABLES GROUP*OUTCOME / CHISQ; WEIGHT COUNT;RUN;得到结果部分输出:
必须要加上weight 语句,没有weight语句出现的观测值将都是1.
DATA CHISQ; N + 1; DO ROW = 1 TO 2; DO COL = 1 TO 2; INPUT COUNT @; OUTPUT; END; END;DATALINES;3 5 8 610 20 30 40;PROC FREQ DATA=CHISQ; BY N; TABLES ROW*COL / CHISQ; WEIGHT COUNT;RUN;
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 32N P 15P N 30P P 23;PROC FREQ DATA=MCNEMAR;TABLES BEFORE*AFTER/AGREE;WEIGHT COUNT;RUN;
Kappa统计量一般用于测量两个评分者之间的一致性,如两个医生对患者的诊断结果,Kappa总是小于等于1的,越趋近于1,一致性越高。
6.针对案例-对照设计,优势比是常用的统计量
结果 案例对照接触是5020 否100130从表格看出案例组中接触苯的人的百分比更高,案例组苯接触的优势为50/100,对照组的优势为20/130,优势比为(50/130)/(20/130)
运行时在proc freq里的table后加/CHISQ CMH
对于群组研究,相对风险统计量更合适
结果 心脏病无心脏病胆固醇高2080 低15135高胆固醇的病人中,心脏病发生率是20/100,低胆固醇的病人中,心脏病发生率是15/135,发生率之比叫做相对风险。计算相对风险运行时在proc freq里的table后加/CMH
- sas统计分析学习笔记(三)
- sas统计分析学习笔记(一)
- sas统计分析学习笔记(二)
- sas统计分析学习笔记(五)
- sas统计分析学习笔记(六)
- sas统计分析学习笔记(九)——方差分析
- SAS学习笔记(三)
- SAS统计分析学习笔记(七)——相关和简单回归分析
- SAS统计分析学习笔记(八)——T检验和非参数比较
- SAS学习(三)
- SAS学习笔记(一)
- SAS学习笔记(二)
- sas 学习笔记(1)
- sas 学习笔记(2)
- SAS学习笔记(一)
- SAS学习笔记(二)
- SAS学习笔记(四)
- 世界三大统计分析软件sas splus spss
- c++ STL之栈和队列
- 【JavaSE学习笔记】IO流03_字节缓冲流、递归
- mysql语句优化总结(一)
- SAL必知必会(1)
- Spring AOP 实现机制
- sas统计分析学习笔记(三)
- redis集群原理及其实现
- php重要函数
- 关于CSS中的float和position
- java ssm框架学习——SpringMVC--1
- IOS逆向需要的工具
- 51nod 1445 变色DNA
- shell脚本实用知识点
- 《leetCode》:Reverse Nodes in k-Group