sas笔记
sas基本统计笔记

Range极差 mean(1,2,3)平均 std 标准差/**自动导入**/Libname cwb “”;proc importdatafile="E:\WORK\杂七杂八\SAS数据库\分期乐入池数据\明细数据(风险指标监控表&实际还款表)\荷包一期_风险指标监控表详细总表&today_date..xls"out=work.risk001dbms=excel replace;sheet='风险指标监控表总表';getnames=yes; 导入源文件字段名作为SAS数据集的字段名自动导入%macro chouc(today_date);datafile="C:\Users\抽查\一债权基础池报表&today_date..xls"out=work.chouc01dbms=excel replace;sheet="债权基础池";run;%mend;%chouc(20170116);导出:/4*先排序*/proc sort data=new_cy2;by _COL1 ;run;/***标题**打印*/proc print ;title'员工薪水';RUN;proc print data=cwb.result20170208 label;id package;var overdue_principal_za overdue_principal_fql;label overdue_principal_za="违法停车" overdue_principal_fql="林肯" ;run;proc print data=cwb.result20170208;where principal_sell > 20000000;run;/*统计表格*/1\proc tabulate data=work.risk005b;class _COL22; 分类变量var _COL5;分析变量table _COL22 _COL5;列维说明/选项(math chinese)*(mean var)反映男女生数学语文成绩的平均值方差run;2\proc tabulate data=work.risk005b;class _COL22;var _COL5 _COL4;table _COL22, (_COL4 _COL5)*(mean max min);run;table _COL22 all, (_COL4 _COL5)*(mean max min); 加个ALL,有求和,图2.也可写为例如table (_COL22 all)*(_COL4)*(mean);如图也可加标签 table (sex all), (math chinese)*(mean std);keylabel mean='平均值' std='标准差' all='总计';label sex='性别' math='数学' chinese='语文';run;/**复制*强制追加*把B加到A中*而SET是要新建一个的*/proc append base=chouc.chouc01 data=chouc.chouc02 force;/**force强制*/run;/**复制*强制追加*把B加到A中*而SET是要新建一个的*/proc sort data=chouc.chouc01 dupout=chouc.bb noduprecs;/**noduprecs一行完全相同的重复记录*/by descending _COL0 ;run;/**sql*联合查询**/Proc sql;Select * from aUnion /*多个查询结果合并成一个结果,并去掉重复** /Intersect /*查询公共部分数据*/Except /*把公共部分去掉的数据*/Outer union /*对多个查询结果横向合并*/Select * from b;Quit;/**去**重复**方法之一***/只显示nameselect name from tb group by name having count(*) > 1显示所有数据select * from name in (select name from tb group by name having count(*) > 1)*2、输出重复的观测值,使用nodupkey选项,注意:使用该选项后直接将原数据集中的重复值删除。
SAS笔记

一、VAR语句VAR语句在很多过程中用来指定分析变量。
在VAR后面给出变量列表:VAR 变量名1 变量名2 …变量名n;变量名列表可以使用省略的形式,如X1-X3,MATH--CHINESE等。
VAR用法例如:var math chinese;WHERE 语句WHERE 语句的格式很简单,只要后面跟用于数据筛选的逻辑表达式即可:WHERE logical-expression(s);下面的例子基于 test1 数据表生成 test2 数据表,但是只选择满足 sex='F' 并且 age>20 的数据行:data test2; set test1; where sex='F' AND age>20; run;表面看来,WHERE 语句和数据步骤中的SAS IF 语句的功能相近,都是筛选数据和。
实际上WHERE 语句和IF语句的运作机制是不同的。
WHERE 语句相当于对数据集执行了一个 SQL Select 的操作。
也就是说,在进入到操作前数据已经被整体筛选过了,而IF 语句是在数据步骤的每个循环中单独执行的,WHERE 语句显然效率要提高很多。
如果数据表是索引过的,那么WHERE 语句能够更加显著地提高效率。
WHERE 语句也有其限制。
因为它是对现存的数据表的整体性操作,故而只能对该数据表中已有的变量进行筛选操作,不能对数据处理后生成的变量操作,也不能对INPUT 语句定义的变量操作。
WHERE 语句不但能用于数据步骤中还能用于过程语句中。
操作符除了一般的 SAS 操作符(见SAS 语法),WHERE 语句还支持一些特有的操作符。
between ... and。
比如:where x between 10 and 20;其实相当于:where 10<=x<=20;contains。
字符串包含。
可以用问号代替。
比如:where firstname contains 'john'; where firstname ? 'john';is null 或is missing。
SAS 画图 学习笔记

SAS 画图、proc template;define statgraph scatterplot;begingraph;entrytitle "Weight and Age by Sex";layout overlay;scatterplot x=age y=weight /group=sex name="abc";discretelegend "abc";endlayout;endgraph;end;run;ods html;proc sgrender data=sashelp.class template=scatterplot; run;proc template;define statgraph scatterplot;begingraph;entrytitle "Weight and Age by Sex";entrytitle halign=left "Weight and Age by Sex"/ border=true *是否加边框,ture 是加,false 是不加; opaque=true *透明度;backgroundcolor=lightgreen *背景的颜色;textattrs=(color=bluefamily='Arial'size=14style=italicweight=bold); * 文本的格式;entryfootnote halign=center 'SMOON Confidential'halign=right "MIB";layout overlay;scatterplot x=age y=weight /group=sex name="abc";discretelegend "abc";endlayout;endgraph;end;run;ods html;proc sgrender data=sashelp.class template=scatterplot; run;从图形可以看到,设置backgroundcolor=lightblue后,背景颜色变成淡蓝色了;设置border=true和borderattrs=(color=pink thickness=3)后,边框变成粉红色并且加粗了;设置designwidth=400px和designheight=400px后,图表大小改变并且变成正方形了;设置pad=(bottom=50 right=50)后,下边和右边空白区域变大了。
SAS学习(初识)

SAS 初识(学习笔记)1自顶向下的设计,自底向上的运行2 SAS程序由一个数据步data work.filenam ; ....... run;若干执行步proc print ....... run;proc KEYword ...... run;可归纳为DATA步和PROC步两个部分。
DATA步生产、整理数据报表编写,文件管理、信息检索等都在DATA中完成。
PROC步分析数据管理数据、生成报告和图表及对数据排序等在PROC中完成。
3 SAS语句通常以SAS关键字开头,以分号(;)结束4 SAS数据集是一个由SAS创建并且处理的文件,是一个包含数据值的特殊结构性文件。
数据必须以SAS数据集的形式存在才能用SAS程序和一些DA TA步语句处理。
SAS数据集由描述信息部分,包括一般信息和变量信息用contents 过程浏览proc contents DATA=SAS-data-set ;run;数据值部分是由字符或数字数据值组成的表格。
用PRINT过程浏览proc print DA TA=SAS-data-set;run;数据部分是一个由字符和/或数字数据值组成的矩形表格。
变量名称是描述部分的一部分,而不属于数据部分。
5 SAS逻辑厍是SAS文件的集合。
就是一个目录。
在使用中要通过一个引用名来识别。
SAS逻辑库分临时库和永久库,名为的work是临时库,由SAS 自动创建,随着SAS会话的结束,其中的数据文件将被删除;永久库则会保存下来。
当我们在磁盘上创建了一个文件目录并将使其做为SAS永久库时,需要使用LIBNAME语句分配一个逻辑库引用名libname x_name‘s:\workshop’;由此SAS建立了逻辑库(引用)名与操作系统上的文件目录的物理位置建立了连接。
当SAS会话结束后,逻揖库引用名与文件的物理位置之间的走接就会切断。
数据集是逻辑库中的一个SAS文件,在物理上是逻辑库对应的那个目录中的一个文件。
SAS各过程笔记+描述性统计+线性回归+logistic回归+生存分析+判别分析+聚类分析+主成分分析+因子分析

第一部分:基本统计方法注:主要讲述过程:means(描述性统计);freq(算频数表);univariate(检验);anova(方差分析);ttest(检验);glm(广义线性回归);npar1way(非参,wilcox)一:计量资料的统计分析方法1.01均值+频数表+百分位数+正态检验、茎叶图、箱形图、正态概率图data ex2_1;input x@@;low=2.3;dis=0.3;z=x-mod(x-low,dis);cards;3.964.23 4.42 3.595.12 4.02 4.32 3.72 4.76 4.164.61 4.263.774.20 4.36 3.07 4.89 3.97 4.28 3.64 4.66 4.044.55 4.254.63 3.91 4.41 3.525.03 4.01 4.30 4.19 4.75 4.144.57 4.264.56 3.79 3.89 4.21 4.95 3.98 4.29 3.67 4.69 4.124.56 4.264.66 4.28 3.83 4.205.24 4.02 4.33 3.76 4.81 4.173.96 3.274.61 4.26 3.96 4.23 3.76 4.01 4.29 3.67 3.39 4.124.27 3.614.98 4.24 3.83 4.20 3.71 4.03 4.34 4.69 3.62 4.184.26 4.365.28 4.21 4.42 4.36 3.66 4.02 4.31 4.83 3.59 3.973.964.495.11 4.20 4.36 4.54 3.72 3.97 4.28 4.76 3.21 4.044.56 4.254.92 4.23 4.47 3.605.23 4.02 4.32 4.68 4.76 3.694.61 4.263.894.21 4.36 3.425.01 4.01 4.29 3.68 4.71 4.134.57 4.264.035.46 4.16 3.64 4.16 3.76;/*freq语句,算频数表*/proc freq;tables z;run;proc means data=ex2_1n mean std stderr clm;var x;run;data ex2_1;input x f@@;cards;3.07 23.27 33.47 93.67 143.87 224.07 304.27 214.47 154.67 104.87 65.07 45.27 2;run;proc means;freq f;var x;run;/*把freq f改成weight f就是把f当权重或频数来算,f则在0,1之间*//*计算x的95%的置信区间*/proc univariate data=ex2_1;var x;output out=pctpctlpre=ppctlpts=2.5 97.5;run;proc print data=pct;run;/*正态检验、茎叶图、箱形图、正态概率图*/proc univariate data=ex2_1normalplot;var x;run;/*Extreme Observation显示的值是最小的5个极值和最大的5个极值*/1.02几何均值data ex2_5;input x f@@;y=log10(x);cards;10 420 340 1080 10160 11320 15640 141280 2;proc means noprint;/*调用means过程,不显示结果*/var y;freq f;output out=b/*结果输出到数据集b中*/mean=logmean;/*把数据集b中均数的变量名mean改为logmean*/run;data c;/*新建数据集c*/set b;/*调用数据集b*/g=10**logmean;/*计算变量logmean的反对数,该值就是x的几何均数,将该值赋值给变量g*/ proc print data=c;var g;run;/*这个是计算平通平均数的值*/proc means data=ex2_5;var x;freq f;run;1.03已知均值和方差求置信区间-单样本+单样本与总体/*单样本*/data ex3_2;n=10;mean=166.95;std=3.64;t=tinv(0.975,n-1);pts=t*std/sqrt(n);lclm=mean-pts;uclm=mean+pts;proc print;var lclm uclm;run;/*单样本与总体均值*/data ex3_5;n=36;/*样本量*/s_m=130.83;/*样本均值*/std=25.74;/*样本标准差*/p_m=140;/*总体均值*/df=n-1;/*自由度*/t=(s_m-p_m)/(std/sqrt(n));p=(1-probt(abs(t),df))*2;/*根据t值计算p值*/run;proc print;var t p;run;1.06双样本均值相等检验+两组分开+两组一起算+两组样本量不同/*双样本分开算*/data ex3_4;n1=29;n2=32;m1=20.10;m2=16.89;s1=7.02;s2=8.46;ss1=s1**2*(n1-1);ss2=s2**2*(n2-1);sc2=(ss1+ss2)/(n1+n2-2);se=sqrt(sc2*(1/n1+1/n2));t=tinv(0.975,n1+n2-2);lclm=(m1-m2)-t*se;uclm=(m1-m2)+t*se;proc print;var t se lclm uclm;run;/*双样本相减后再算*//*用MEANS作配对资料两个样本均数比较的t检验*/data ex3_6;input x1 x2 @@;d=x1-x2;cards;0.840 0.5800.591 0.5090.674 0.5000.632 0.3160.687 0.3370.978 0.5170.750 0.4540.730 0.5121.200 0.9970.870 0.506;proc means t prt;var d;run;/*用UNIVARIATE过程作配对资料两样本均数比较的t检验*/ proc univariate data=ex3_6;var d;run;/*双样本两组样本量不同*/data ex3_7;input x@@;if _n_<21 then c=1;/*当观测数小于21时,变量c的值为1,表示试验组*/else c=2;/*其余变量c的值为2,表示对照组*/cards;-0.70 -5.60 2.00 2.80 0.70 3.50 4.00 5.80 7.10 -0.502.50 -1.60 1.703.00 0.404.50 4.60 2.50 6.00 -1.403.70 6.50 5.00 5.20 0.80 0.20 0.60 3.40 6.60 -1.106.00 3.80 2.00 1.60 2.00 2.20 1.20 3.10 1.70 -2.00;proc ttest;/*调用ttest过程*/var x;/*定义分析变量为x*/class c;/*定义分组变量为c*/run;1.08-1.13anova方差分析过程+一维分组+二维分组+三维分组/*只有一组分组因素*/data ex4_2;input x c @@;cards;3.53 1 2.42 2 2.86 3 0.89 44.59 1 3.36 2 2.28 3 1.06 44.34 1 4.32 2 2.39 3 1.08 42.66 1 2.34 2 2.28 3 1.27 43.59 1 2.68 2 2.48 3 1.63 43.13 1 2.95 2 2.28 3 1.89 43.30 1 2.36 2 3.48 3 1.31 44.04 1 2.56 2 2.42 3 2.51 43.53 1 2.52 2 2.41 3 1.88 43.56 1 2.27 2 2.66 3 1.41 43.85 1 2.98 2 3.29 3 3.19 44.07 1 3.72 2 2.70 3 1.92 41.37 12.65 2 2.66 3 0.94 43.93 1 2.22 2 3.68 3 2.11 42.33 1 2.90 2 2.65 3 2.81 42.98 1 1.98 2 2.66 3 1.98 44.00 1 2.63 2 2.32 3 1.74 43.55 1 2.86 2 2.61 3 2.16 42.64 1 2.93 23.64 3 3.37 42.56 1 2.17 2 2.58 3 2.97 43.50 1 2.72 2 3.65 3 1.69 43.25 1 1.56 2 3.21 3 1.19 42.96 13.11 2 2.23 3 2.17 44.30 1 1.81 2 2.32 3 2.28 43.52 1 1.77 2 2.68 3 1.72 43.93 1 2.80 2 3.04 3 2.47 44.19 1 3.57 2 2.81 3 1.02 42.96 1 2.97 23.02 3 2.52 44.16 1 4.02 2 1.97 3 2.10 42.59 1 2.31 2 1.68 33.71 4;proc anova;/*调用anova过程*/class c;/*定义分组变量为c*/model x=c;/*定义模型,分析g对x的影响*/means c/dunnett;/*用LSD法对多组均数过行两两比较*/means c/hovtest;/*作方差齐性检验,默认levene法,p值大于0.05,则认为是g组方差相等*/run;quit;/*有两组分组因素*/data ex4_4;input x a b@@;cards;0.82 1 10.65 2 10.51 3 10.73 1 20.54 2 20.23 3 20.43 1 30.34 2 30.28 3 30.41 1 40.21 2 40.31 3 40.68 1 50.43 2 50.24 3 5;proc anova;class a b;/*定义分组变量a和b*/model x=a b;/*定义模型,分析a和b对x影响*/means a/snk;/*用SNK法对变量a的多组均数进行两两比较*/run;quit;1.15嵌套设计资料的方差分析glm过程一级因素+二组因素/*嵌套设计资料的方差分析*/data ex11_6;input x a b @@;cards;82 1 184 1 191 1 288 1 285 1 383 1 365 2 461 2 462 2 559 2 556 2 660 2 671 3 767 3 775 3 878 3 885 3 989 3 9;proc glm;/*调用glm过程*/class a b;/*定义分组变量为a和b*/model x=a a(b);/*定义模型,以a为一组因素,b为二级因素*/run;quit;1.17重复测量资料的方差分析data ex12_2;input t1 t2 g@@;/*确定变量名称,t1和t2分别为两个时间点的分析变量,g为处理因素变量,b为区组变量*/cards;130 114 1124 110 1136 126 1128 116 1122 102 1118 100 1116 98 1138 122 1126 108 1124 106 1118 124 2132 122 2134 132 2114 96 2118 124 2128 118 2118 116 2132 122 2120 124 2134 128 2;proc glm;/*调用glm过程*/class g;/*定义分组变量g*/model t1 t2=g;/*定义模型,分析g对变量t1和t2的影响*/repeated time 2/*命名重复因子为time,有2个水平*/contrast(1)/*表示以第一时间点为对照点*//summary;/*考察不同时间点与对照时间点比较的结果*/run;quit;data ex12_3;input t0-t4 g@@;cards;120 108 112 120 117 1118 109 115 126 123 1119 112 119 124 118 1121 112 119 126 120 1127 121 127 133 126 1121 120 118 131 137 2122 121 119 129 133 2128 129 126 135 142 2117 115 111 123 131 2118 114 116 123 133 2131 119 118 135 129 3129 128 121 148 132 3123 123 120 143 136 3123 121 116 145 126 3125 124 118 142 130 3;proc glm;class g;model t0-t4=g;repeated time 5/*命名重复因子为time,有2个水平*/contrast(1);run;quit;二:计数资料的统计分析方法2.1四格表资料的卡方检验data ex7_1;input r c f@@;/*确定变量名称,r为行变量,c为列变量,f为频数变量*/ cards;1 1 991 2 52 1 752 2 21;proc freq;/*调用freq过程*/weight f;/*定义f为频数变量*/tables r*c/*作r*c的列联表*//chisq/*对列联表作卡方检验*/expected;/*输出每个格的理论频数*/run;2.5阳性事件发生的概率(二项分布)data ex6_1;do x=6 to 8;/*建立循环,变量x从6到8*/p1=probbnml(0.7,10,x);/*计算二项分布随机变量不大于x的概率*/p2=probbnml(0.7,10,x-1);/*计算二项分布随机变量不大于x-1的概率*/p=p1-p2;*/计算出现x的概率*/output;/*结果输出*/end;proc print;var x p;run;2.6正态分布法计算总体率的可信区间data ex6_3;n=100;x=55;p=x/n;sp=sqrt(p*(1-p)/n);u=probit(0.975);usp=u*sp;lclm=p-usp;uclm=p+usp;proc print;var n p sp lclm uclm;run;2.7样本率与总体率的比较(直接法——单侧检验)data ex6_4;d=probbnml(0.55,10,8);p=1-d;proc print;var p;run;2.8样本率与总体率的比较(直接法——双侧检验)data ex6_5;p01=probbnml(0.6,10,9);p02=probbnml(0.6,10,8);p0=p01-p02;/*计算出现9的概率*/do i=0to10;/*建立循环,变量i从0到10*/p11=probbnml(0.6,10,i);p12=probbnml(0.6,10,i-1);p1=p11-p12;/*计算出现i的概率*/if i=0then p1=p11; /*定义出现0的概率*/if p1<=p0 then output; /*如果出现i的概率小于出现9的概率,则保留在数据集中*/ end;proc means sum;var p1;run;2.9两个样本率比较的z检验data ex6_7;n1=120;n2=110;x1=36;x2=22;p1=x1/n1;p2=x2/n2;pc=(x1+x2)/(n1+n2);/*计算合并发生率*/sp=sqrt(pc*(1-pc)*(1/n1+1/n2));/*计算两个率相差的标准误差*/u=(p1-p2)/sp;/*计算u值*/p=(1-probnorm(abs(u)))*2;/*计算p值*/format u p 5.4;/*输出格式为小数点后保留4位*/proc print;var pc sp u p;run;2.10.Poisson分布的样本均数与总体均数比较(直接法)data ex6_12;n=120;/*确定样本例数*/pai=0.008; /*确定总体率*/lam=n*pai; /*计算总体均数lamda*/x=4; /*确定实际发生数*/p=1-poisson(lam,x-1);/*计算实际发生数所对应的概率*/proc print;var lam p;run;2.11 Poisson分布的样本均数与总体均数比较(正态近似法)data ex6_12;n=25000;/*样本量*/x=123; /*样本均数*/pi=0.003; /*确定总体率*/lam=n*pi; /*计算总体均数*/u=(x-lam)/sqrt(lam*(1-pi)); /*计算u值*/p=1-probnorm(abs(u)); /*计算u值所对应的p值*/proc print;var lam u p;run;2.14负二项分布的参数估计data ex6_16;input x f@@;cards;0 301 142 83 44 25 06 2;proc univariate;var x;freq f;output out=mv2var=v;run;data k;set mv2;k=mu**2/(v-mu);proc print;var mu k;run;三、非参数统计方法3.2单个样本中位数和总体中位数比较data ex8_2;input x1@@;median=45.30;/*假设中位数为45.30*/d=x1-median; /*计算x1和假设中位数的差值*/cards;44.21 45.30 46.39 49.47 51.05 53.1653.26 54.37 57.16 67.37 71.05 87.37;proc univariate; /*调用univariate过程度*/var d;run;proc means median; /*调用means过程计算x1实际的中位数*/var x1;run;3.3两个独立样本比较的Wilcoxon秩和检验(R对应函数wilcox.test())data ex8_3;input x c @@;/*确定变量名称,x、c分别为分析变量和分组变量(类别多于两类一样的写法)*/2.78 13.23 14.20 14.87 15.12 16.21 17.18 18.05 18.56 19.60 13.23 23.50 24.04 24.15 24.28 24.34 24.47 24.64 24.75 24.82 24.95 25.10 2;proc npar1way wilcoxon;/*调用npar1way过程,进行wilcoxon分析*/var x;/*定义分析变量为x*/class c;/*定义分组变量为c*/run;3.4等级资料的两样本比较data ex8_4;input c g f@@;/*确定变量名称,f为频数,c为分类,g为要分析的变量(分类多种类似)*/ cards;1 1 11 2 81 3 161 4 101 5 42 1 22 2 232 3 112 5 0;proc npar1way wilcoxon;/*调用npar1way过程,进行wilcoxon分析*/freq f;/*确定频数变量为f*/var g;/*定义分析变量g*/class c;/*定义分组变量c*/run;第二部分:多元统计分析方法注:主要讲述过程:reg(回归),corr(相关分析),nlin(对数曲线回归),logistic(逻辑回归),phreg(条件logistic回归分析+cox回归),life test(生存分析),discrim(判别分析),stepdisc(逐步回归),cluster(聚类),varclus(指标聚类),princomp(主成分分析),factor(因子分析),cancorr(典型相关分析)一:回归和相关分析1.1两个变量的直线回归分析data ex9_1;input x y;/*确定变量名称*/cards;13 3.5411 3.019 3.096 2.488 2.5610 3.3612 3.187 2.65;proc reg;/*调用reg过程*/model y=x;/*定义模型,以y为应变量,以x为自变量*//*在model语句后面加上选项,得到一些有用的统计量,常用的有:stb(输出标准化偏回归系数)、p(输出每个观测的实际值、预测值和残差)、cli(输出每个观测预测值均数的双侧95%置信区间)、clm(输出每个观测预测值的双侧95%置信范围)*//*例如:model y=x /stb p cli */plot y*x;/*画出散点图*/run;1.2两个变量的直线相关分析data ex9_5;input x y;cards;43 217.2274 316.1851 231.1158 220.9650 254.7065 293.8454 263.2857 271.7367 263.4669 276.5380 341.1548 261.0038 213.2085 315.1254 252.08;proc corr;/*若要求作spearman相关分析,则可以写成proc corr spearman */ var x y;run;/*得到一个相关系数矩阵*/1.4加权直线加回data ex9_9;input x y;w=1/(x*x); /*设置权重变量w*/cards;0.11 4.000.12 5.100.21 9.500.30 9.000.34 17.200.44 14.000.56 18.900.60 29.400.69 22.100.80 41.50;proc reg;weight w;/*定义权重变量w*/model y=x;/*定义模型,以y为因变量,以x为自变量*/run;1.5两个直线回归系数的比较data ex9_12;input x y c@@;cards;13 3.54 111 3.01 19 3.09 16 2.48 18 2.56 110 3.36 112 3.18 17 2.65 110 3.01 29 2.83 211 2.92 212 3.09 215 3.98 216 3.89 28 2.21 27 2.39 210 2.74 215 3.36 2;proc glm;class c;model y=x c x*c;/*定义模型,分析x、c以及x和c的交互作用对y的影响,即判断两总体直线回归系数是否相同*/run;proc glm;class c;model y=x c;/*上一步已排除协变量的影响,然后再分析两分析变量是否来自同一总体*/run;1.6两个变量的对数曲线回归data ex9_13;input x y;cards;0.005 34.110.050 57.990.500 94.495.000 128.5025.000 169.98;proc nlin;/*调用nlin过程*/parms a=0 b=0; /*定义初始值*/model y=a+b*log10(x); /*定义对数模型,以y为因变以量,x为自变量*/ run;1.7两个变量的指数曲线回归分析data ex9_14;input x y;cards;2 545 507 4510 3714 3519 2526 2031 1634 1838 1345 852 1153 860 465 6;proc nlin;parms a=4 b=0.03;/*定义初始值*/model y=exp(a+b*x);/*定义指数模型,以y为因变量,x为自变量*/run;1.8多元回归data ex15_1;input x1-x4 y@@;/*确定变量名称,x1,x2,x3,x4分别为自变量,y为应变量*/ cards;5.68 1.90 4.53 8.20 11.203.79 1.64 7.32 6.90 8.806.02 3.56 6.95 10.80 12.304.85 1.075.88 8.30 11.604.60 2.32 4.05 7.50 13.406.05 0.64 1.42 13.60 18.304.90 8.50 12.60 8.50 11.107.08 3.00 6.75 11.50 12.103.85 2.11 16.28 7.90 9.604.65 0.63 6.59 7.10 8.404.59 1.97 3.61 8.70 9.304.29 1.97 6.61 7.80 10.607.97 1.93 7.57 9.90 8.406.19 1.18 1.42 6.90 9.606.13 2.06 10.35 10.50 10.905.71 1.78 8.53 8.00 10.106.40 2.40 4.53 10.30 14.806.06 3.67 12.797.10 9.105.09 1.03 2.53 8.90 10.806.13 1.71 5.28 9.90 10.205.78 3.36 2.96 8.00 13.605.43 1.13 4.31 11.30 14.906.50 6.21 3.47 12.30 16.007.98 7.92 3.37 9.80 13.2011.54 10.89 1.20 10.50 20.005.84 0.92 8.616.40 13.303.84 1.20 6.45 9.60 10.40;proc reg;model y=x1-x4;/*也可以写成model y=x1 x2 x3 x4;*/run;1.9逐步回归data ex12_2;input x1-x4 y@@;cards;5.68 1.90 4.53 8.20 11.203.79 1.64 7.32 6.90 8.806.02 3.56 6.95 10.80 12.304.85 1.075.88 8.30 11.604.60 2.32 4.05 7.50 13.406.05 0.64 1.42 13.60 18.304.90 8.50 12.60 8.50 11.107.08 3.00 6.75 11.50 12.103.85 2.11 16.28 7.90 9.604.65 0.63 6.59 7.10 8.404.59 1.97 3.61 8.70 9.304.29 1.97 6.61 7.80 10.607.97 1.93 7.57 9.90 8.406.19 1.18 1.42 6.90 9.606.13 2.06 10.35 10.50 10.905.71 1.78 8.53 8.00 10.106.40 2.40 4.53 10.30 14.806.06 3.67 12.797.10 9.105.09 1.03 2.53 8.90 10.806.13 1.71 5.28 9.90 10.205.78 3.36 2.96 8.00 13.605.43 1.13 4.31 11.30 14.906.50 6.21 3.47 12.30 16.007.98 7.92 3.37 9.80 13.2011.54 10.89 1.20 10.50 20.005.84 0.92 8.616.40 13.303.84 1.20 6.45 9.60 10.40;proc reg;model y=x1-x4/selection=stepwise/*定义模型,以y因变量,x1-x4为变量进行多元回归分析*/ sle=0.10/*定义入先变量的界值*/sls=0.10;/*定义剔除变量的界值*/run;三:logistic回归3.1 两个变量logistic回归分析data ex16_1;input y x1 x2 f@@;/*确定变量名称,y为发病情况,x1为吸烟情况,x2为饮酒情况,f为发生频数*/cards;1 0 0 631 0 1 631 1 0 441 1 1 2650 0 0 1360 0 1 1070 1 0 570 1 1 151;proc logistic;/*调用logistic过程*/freq f;/*定义频数变量f*/model y=x1 x2;/*定义模型,以y为因变量,x1和x2为自变量*/run;3.2 1:M配对资料的条件logistic回归分析data ex16_3;input i y x1-x6 @@;/*确定变量名称,i为区组变量,y为病人情况,1为病例,0为对照,x1-x6为危险因素*/t=2-y;/*定义时间变量*/cards;1 1 3 5 1 1 1 01 0 1 1 1 3 3 01 0 1 1 1 3 3 02 1 13 1 1 3 02 0 1 1 13 2 02 0 1 2 13 2 03 1 14 1 3 2 03 0 1 5 1 3 2 03 0 14 1 3 2 04 1 1 4 1 2 1 14 0 2 1 1 3 2 05 1 2 4 2 3 2 0 5 0 1 2 1 3 3 05 0 2 3 1 3 2 06 1 1 3 1 3 2 1 6 0 1 2 1 3 2 06 0 1 3 2 3 3 07 1 2 1 1 3 2 1 7 0 1 1 1 3 3 07 0 1 1 1 3 3 08 1 1 2 3 2 2 0 8 0 1 5 1 3 2 08 0 1 2 1 3 1 09 1 3 4 3 3 2 0 9 0 1 1 1 3 3 09 0 1 4 1 3 1 010 1 1 4 1 3 3 1 10 0 1 4 1 3 3 010 0 1 2 1 3 1 011 1 3 4 1 3 2 0 11 0 3 4 1 3 1 011 0 1 5 1 3 1 012 1 1 4 3 3 3 0 12 0 1 5 1 3 2 012 0 1 5 1 3 3 013 1 1 4 1 3 2 0 13 0 1 1 1 3 1 013 0 1 1 1 3 2 014 1 1 3 1 3 2 1 14 0 1 1 1 3 1 014 0 1 2 1 3 3 015 1 1 4 1 3 2 0 15 0 1 5 1 3 3 015 0 1 5 1 3 3 016 1 1 4 2 3 1 0 16 0 2 1 1 3 3 016 0 1 1 3 3 2 017 1 2 3 1 3 2 0 17 0 1 1 2 3 2 017 0 1 2 1 3 2 018 1 1 4 1 3 2 0 18 0 1 1 1 2 1 0 18 0 1 2 1 3 2 019 0 1 1 1 2 1 019 0 2 2 2 3 1 020 1 1 4 2 3 2 120 0 1 5 1 3 3 020 0 1 4 1 3 2 021 1 1 5 1 2 1 021 0 1 4 1 3 2 021 0 1 2 1 3 2 122 1 1 2 2 3 1 022 0 1 2 1 3 2 022 0 1 1 1 3 3 023 1 1 3 1 2 2 023 0 1 1 1 3 1 123 0 1 1 2 3 2 124 1 1 2 2 3 2 124 0 1 1 1 3 2 024 0 1 1 2 3 2 025 1 1 4 1 1 1 125 0 1 1 1 3 2 025 0 1 1 1 3 3 0;proc phreg;/*调用phreg过程*/model t*y(0)=x1-x6/*定义模型,以t为时间变量,y为截尾变量,x1-x6为自变量*//selection=stepwise/*选择逐步回归方法筛选变量*/sle=0.1sls=0.1/*入选和剔除的界值均为0.1*/ties=discrete;/*用离散logistic模型替代比例危险模型*/strata i;/*定义区组变量*/run;2.3 应变量为多分类资料的logistic回归data ex16_5;input x1 x2 y f;/*x1是两个社区,x2是性别,Y是获取健康知识途径(传统大众媒介=1,网络=2,社区宣传=3,f为频数)*/cards;0 0 1 200 0 2 350 0 3 260 1 1 100 1 2 270 1 3 571 0 1 421 02 171 1 1 161 12 121 1 3 26;proc logistic;freq f;/*定义频数变量为f*/model y(ref='3')/*定义模型,以y为因变量,ref语句指时参照的类别为“社区宣传”,最后得到结果均为与“社区宣传”相对应*/=x1 x2/*定义x1和x2为自变量*//link=glogit;/*指定多分类应变量回归模型*/run;四:生存分析4.1乘积极限法估计生存率,例17-2甲、乙两种手术方法的生存率估计data ex17_2;input t d@@;/*确定变量名称,t为时间变量,d为截尾变量*/cards;1 13 15 15 15 16 16 16 17 18 110 110 114 017 119 020 022 026 034 134 044 159 1;proc lifetest;/*调用lifetest过程*/time t*d(0);/*定义模型,以t为时间变量,d为截尾变量,变量值为0表示截尾数据*/ run;4.2寿命表法估计生存率data ex17_3;input t d f@@;cards;0 0 00 1 4561 0 391 1 2262 0 222 1 1523 0 233 1 1714 0 244 1 1355 0 1075 1 1256 0 1336 1 837 0 1027 1 748 0 688 1 519 0 649 1 4210 0 4510 1 4311 0 5311 1 3412 0 3312 1 1813 0 2714 0 3314 1 615 0 2015 1 0;proc lifetest method=life/*调用lifetest过程,指定用寿命表法估计生存率*/ width=1;/*表示每间隔1估计生存率*/freq f;/*表示以f为频数变量*/time t*d(0);/*定义模型,以t为时间变量,d为截尾变量,变量值为0表示截尾数据*/ run;4.3生存曲线比较的log-rank检验及制作生存曲线data ex17_4;input t d g @@;cards;1 1 13 1 15 1 15 1 15 1 16 1 16 1 16 1 17 1 18 1 110 1 110 1 114 0 117 1 119 0 120 0 122 0 126 0 131 0 134 1 134 0 144 1 159 1 11 1 21 1 22 1 23 1 23 1 24 1 24 1 24 1 26 1 26 1 28 1 29 1 29 1 210 1 211 1 212 1 213 1 215 1 217 1 218 1 2;proc lifetest plot=(s);/*调用lifetest过程并做生存曲线图*/ time t*d(0);strata g;/*定义变量g为分组变量*/run;4.4.cox回归分析data ex17_5;input x1-x6 t y @@;cards;54 0 0 1 1 0 52 057 0 1 0 0 0 51 058 0 0 0 1 1 35 143 1 1 1 1 0 103 048 0 1 0 0 0 7 140 0 1 0 0 0 60 044 0 1 0 0 0 58 036 0 0 0 1 1 29 139 1 1 1 0 1 70 042 0 1 0 0 1 67 042 0 1 0 0 0 66 042 1 0 1 1 0 87 051 1 1 1 0 0 85 055 0 1 0 0 1 82 052 1 1 1 0 1 74 0 48 1 1 1 0 0 63 0 54 1 0 1 1 1 101 0 38 0 1 0 0 0 100 0 40 1 1 1 0 1 66 1 38 0 0 0 1 0 93 0 19 0 0 0 1 0 24 1 67 1 0 1 1 0 93 0 37 0 0 1 1 0 90 0 43 1 0 0 1 0 15 149 0 0 0 1 0 3 150 1 1 1 1 1 87 0 53 1 1 1 0 0 120 0 32 1 1 1 0 0 120 0 46 0 1 0 0 1 120 043 1 0 1 1 0 120 044 1 0 1 1 0 120 0 62 0 0 0 1 0 120 0 40 1 1 1 0 1 40 1 50 1 0 0 1 0 26 1 33 1 1 0 0 0 120 0 57 1 1 1 0 0 120 0 48 1 0 0 1 0 120 0 28 0 0 0 1 0 3 1 54 1 0 1 1 0 120 1 35 0 1 0 1 1 7 1 47 0 0 0 1 0 18 1 49 1 0 1 1 0 120 0 43 0 1 0 0 0 120 0 48 1 1 0 0 0 15 1 44 0 0 0 1 0 4 1 60 1 1 1 0 0 120 0 40 0 0 0 1 0 16 1 32 0 1 0 0 1 24 1 44 0 0 0 1 1 19 1 48 1 0 0 1 0 120 0 72 0 1 0 1 0 24 1 42 0 0 0 1 0 2 1 63 1 0 1 1 0 120 0 55 0 1 1 0 0 12 1 39 0 0 0 1 0 5 1 44 0 0 0 1 0 120 0 42 1 1 1 0 0 120 061 0 1 0 1 0 40 145 1 0 1 1 0 108 038 0 1 0 0 0 24 162 0 0 0 1 0 16 1;proc phreg;model t*y(1)=x1-x6/*定义模型,以t为时间变量,y为截尾变量,变量值1表示截尾数据,x1-x6为危险因素*//selection=stepwisesle=0.05sls=0.05;run;五:判别和聚类分析5.1判别分析data ex18_4;input x1-x4 g; /*确定变量名称,x1-x4为用于进行判别分析的指标,g为分组变量*/ cards;6.0 -11.5 19 90 1-11.0 -18.5 25 -36 390.2 -17.0 17 3 2-4.0 -15.0 13 54 10.0 -14.0 20 35 20.5 -11.5 19 37 3-10.0 -19.0 21 -42 30.0 -23.0 5 -35 120.0 -22.0 8 -20 3-100.0 -21.4 7 -15 1-100.0 -21.5 15 -40 213.0 -17.2 18 2 2-5.0 -18.5 15 18 110.0 -18.0 14 50 1-8.0 -14.0 16 56 10.6 -13.0 26 21 3-40.0 -20.0 22 -50 3;proc discrim;class g;/*定义分组变量为g*/var x1-x4;/*定义用于分析的指标变量为x1-x4*/run;(结果横向是真实值,竖向的预测值)5.2逐步判别分析data ex18_5;input x1-x4 g;cards;6.0 -11.5 19 90 1-11.0 -18.5 25 -36 390.2 -17.0 17 3 2-4.0 -15.0 13 54 10.0 -14.0 20 35 20.5 -11.5 19 37 3-10.0 -19.0 21 -42 30.0 -23.0 5 -35 120.0 -22.0 8 -20 3-100.0 -21.4 7 -15 1-100.0 -21.5 15 -40 213.0 -17.2 18 2 2-5.0 -18.5 15 18 110.0 -18.0 14 50 1-8.0 -14.0 16 56 10.6 -13.0 26 21 3-40.0 -20.0 22 -50 3;proc stepdisc /*调用stepdisc过程*/slentry=0.2/*确定入选标准为0.2*/slstay=0.3;/*确定剔除标准为0.3*/class g;/*定义分组变量为g*/var x1-x4;/*定义用于分析的指标变量为x1-x4*/run;(筛选出变量后,调用discrim过程对筛选出的变量作判别分析,即先做5.2再做5.1)5.3作样品聚类和指标聚类data ex19_3;input x1-x9;cards;46 25 5 2138 1.68 0.35 8.11 4 4 35 12 20 3510 2.76 1.43 6.84 3 3 52 25 20 2784 2.19 0.54 4.11 3 3 32 7 20 2451 1.93 0.47 11.45 9 6 38 22 0 3247 2.56 0.80 11.68 5 5 51 31 30 3710 2.92 0.37 11.60 2 2 40 9 10 3194 2.51 0.40 11.40 5 5 34 17 20 4658 3.67 0.46 11.35 3 3 50 29 0 5019 3.95 0.47 13.45 10 8 42 20 20 7482 5.89 0.12 13.11 0 0 57 30 15 3800 2.99 0.19 10.76 2 236 15 20 2478 1.95 0.25 10.00 0 037 12 0 3827 3.01 0.82 10.50 4 4 52 32 0 2984 2.35 0.16 11.15 3 3 52 32 10 3749 2.95 0.72 11.45 11 10 42 27 30 4941 3.89 0.73 13.80 7 6 44 27 20 3948 3.11 0.33 13.65 16 14 40 21 5 3360 2.64 0.37 11.40 0 0 38 21 5 2936 2.31 0.69 11.40 1 1 44 27 20 6851 5.39 0.99 12.28 7 6 43 27 0 3926 3.09 0.47 11.95 0 0 26 10 3 4381 3.45 0.52 11.80 7 5 37 18 20 7142 5.62 0.85 11.81 5 5 28 9 20 2612 2.06 0.37 11.65 1 1 25 9 30 2638 2.08 0.78 12.25 1 1 34 14 20 4322 3.40 0.41 15.00 5 5 50 32 20 2862 2.25 0.69 8.80 2 2;proc cluster/*调用cluster过程*/method=average;/*采用类平均法进行聚类*/var x1-x9;/*定义用于分析的指标变量x1-x9*/run;proc treegraphics haxis=axis1 horizontal;/*调用tree过程输出聚类图,并将图横向输出*/ run;/*对各个指标聚类,即对9个变量聚类*/proc varclus;/*调用varclus过程*/var x1-x9;/*定义用于分析的指标变量x1-x9*/run;六、主成分分析和因子分析6.1主成分分析data ex20_1;input x1-x6;cards;92 77 80 95 99 12697 75 77 80 95 12595 80 70 78 89 12075 75 73 88 98 11092 68 72 79 88 11390 85 80 70 78 10372 93 75 77 80 10088 70 76 72 81 10264 70 69 85 93 10570 73 70 87 84 10078 69 75 73 89 9778 72 71 68 75 9675 64 63 76 73 9284 66 77 55 65 7670 64 51 60 67 8858 72 75 62 52 7582 73 40 50 48 6145 65 42 47 43 60;proc princomp;/*调用princomp过程,对6个变量做主成分分析,结果包括主成分累积贡献率,特征向量矩阵*/run;6.2因子分析data ex20_2;input x1-x9;cards;4.34 389 99.06 1.23 25.46 93.15 3.56 97.51 61.663.45 271 88.28 0.85 23.55 94.31 2.44 97.94 73.334.38 385 103.97 1.21 26.54 92.53 4.02 98.484.18 377 99.48 1.19 26.89 93.86 2.92 99.41 63.164.32 378 102.01 1.19 27.63 93.18 1.99 99.71 80.004.13 349 97.55 1.10 27.34 90.63 4.38 99.03 63.164.57 361 91.66 1.14 24.89 90.60 2.73 99.69 73.534.31 209 62.18 0.52 31.74 91.67 3.65 99.48 61.114.06 425 83.27 0.93 26.56 93.81 3.09 99.48 70.734.43 458 92.39 0.95 24.26 91.12 4.21 99.76 79.074.13 496 95.43 1.03 28.75 93.43 3.50 99.10 80.494.10 514 92.99 1.07 26.31 93.24 4.22 100.00 78.954.11 490 80.90 0.97 26.90 93.68 4.97 99.77 80.533.53 344 79.66 0.68 31.87 94.77 3.59 100.00 81.974.16 508 90.98 1.01 29.43 95.75 2.77 98.72 62.864.17 545 92.98 1.08 26.92 94.89 3.14 99.41 82.354.16 507 95.10 1.01 25.82 94.41 2.80 99.35 60.614.86 540 93.17 1.07 27.59 93.47 2.77 99.80 70.215.06 552 84.38 1.10 27.56 95.15 3.10 98.63 69.234.03 453 72.69 0.90 26.03 91.94 4.50 99.05 60.424.15 529 86.53 1.05 22.40 91.52 3.84 98.58 68.423.94 515 91.01 1.02 25.44 94.88 2.56 99.36 73.914.12 552 89.14 1.10 25.70 92.65 3.87 95.52 66.674.42 597 90.18 1.18 26.94 93.03 3.76 99.28 73.813.05 437 78.81 0.87 23.05 94.46 4.03 96.223.94 477 87.34 0.95 26.78 91.784.57 94.28 87.344.14 638 88.57 1.27 26.53 95.16 1.67 94.50 91.673.87 583 89.82 1.16 22.66 93.43 3.55 94.49 89.074.08 552 90.19 1.10 22.53 90.36 3.47 97.88 87.144.14 551 90.81 1.09 23.06 91.65 2.47 97.72 87.134.04 574 81.36 1.14 26.65 93.74 1.61 98.20 93.023.93 515 76.87 1.02 23.88 93.82 3.09 95.46 88.373.90 555 80.58 1.10 23.08 94.38 2.06 96.82 91.793.62 554 87.21 1.10 22.50 92.43 3.22 97.16 87.773.75 586 90.31 1.12 23.73 92.47 2.07 97.74 93.893.77 627 86.47 1.24 23.22 91.17 3.40 98.98 89.80;proc factor/*调用factor过程*/n=4;/*确定因子数为4,如果不写就默认为3*/run;proc factorn=4rotate=quartimax;/*因子旋转的方法为四次方最大正交旋转*/run;七、典型相关分析data ex21_1;input x1-x4 y1-y4;cards;1210 120.1 23.8 61.0 10.2 66.3 2.01 2.731210 120.7 23.4 59.8 11.3 67.6 1.92 2.711040 121.2 22.9 59.0 10.1 66.5 1.92 2.601620 121.5 24.6 59.5 9.5 67.8 1.95 2.641690 122.5 24.4 60.7 11.0 69.2 2.08 2.641150 122.7 27.2 64.5 10.5 69.1 2.19 2.841460 123.3 24.9 58.4 10.5 69.0 2.01 2.72 1190 123.4 21.8 59.0 10.6 67.4 1.90 2.71 1840 123.9 23.5 60.2 9.6 67.1 2.00 2.84 1250 124.5 25.2 63.0 11.2 67.8 2.05 2.78 1480 124.8 22.3 58.1 10.7 67.9 2.05 2.73 1310 124.9 22.0 58.0 10.5 67.8 1.98 2.68 1660 125.3 24.7 60.0 10.8 69.3 1.95 2.80 1580 125.6 22.8 59.0 9.4 69.1 2.00 2.65 1460 125.8 25.7 61.0 10.2 69.6 1.95 2.70 1240 126.0 30.2 68.0 9.2 67.1 2.14 2.88 1100 126.2 25.2 60.5 9.8 68.4 1.98 2.72 1250 126.8 23.6 58.5 10.2 67.5 1.94 2.74 1270 127.1 23.0 57.7 10.8 69.8 1.90 2.78 1300 127.6 24.3 59.0 10.3 67.9 1.93 2.84 1350 127.7 24.1 60.0 11.0 69.7 2.03 2.77 1250 128.3 21.6 55.5 10.4 68.5 1.83 2.70 1720 128.5 27.1 62.0 11.4 71.2 2.03 2.75 1480 128.5 22.6 57.4 10.0 67.3 2.04 2.83 1380 129.4 24.9 60.5 11.5 69.8 2.04 2.76 1170 129.0 26.7 63.7 9.6 67.4 2.13 2.98 1640 129.8 26.1 62.0 9.8 71.0 2.00 2.84 1640 131.6 28.7 62.8 9.7 70.7 1.89 2.89 1150 130.2 25.0 58.6 10.5 71.8 1.96 2.78 1430 130.5 26.1 60.7 10.8 68.6 2.05 2.77 1150 130.6 23.4 54.4 11.8 69.2 1.96 2.78 1150 131.4 25.5 63.2 10.2 70.4 2.05 2.84 1320 131.6 25.6 58.9 10.9 70.2 2.06 2.86 1360 131.7 27.4 62.0 10.9 73.5 1.99 2.70 1460 132.0 26.3 61.5 11.1 71.2 2.17 2.13 1380 132.2 25.7 61.4 10.1 70.1 1.96 2.83 1300 132.5 24.5 57.0 10.8 71.8 2.02 2.84 1220 132.7 27.0 61.3 10.1 72.2 2.08 2.80 1320 132.9 25.2 60.5 11.2 73.1 2.01 2.73 1910 133.1 30.1 67.0 9.0 87.1 2.15 2.97 1800 133.5 26.5 62.5 9.8 71.7 2.07 2.82 1560 133.6 24.8 58.5 10.3 72.2 1.93 2.79 1840 134.0 26.0 60.5 10.4 73.0 1.98 2.74 1470 134.3 28.2 62.0 11.3 87.2 2.66 4.03 1590 134.4 25.5 60.7 9.6 69.9 1.99 2.81 1430 134.1 26.6 63.0 11.2 72.2 2.06 2.90 1760 134.6 32.5 66.0 9.9 87.4 2.61 2.98 1470 135.3 27.9 61.8 10.1 73.3 2.20 2.78 1580 135.6 28.1 65.8 9.8 73.1 2.05 2.891840 137.1 27.6 62.8 9.5 72.4 2.11 2.91 1810 137.4 28.3 62.5 9.4 74.2 2.06 3.00 1850 138.1 29.5 62.4 9.7 72.3 2.12 4.02 2120 140.0 34.9 68.8 9.5 87.9 2.74 4.15 1760 140.7 32.0 64.4 10.2 74.0 2.17 4.05 1800 141.0 32.5 63.8 9.5 88.2 2.65 4.08 1260 141.7 29.1 65.0 9.7 88.2 2.68 2.90 1860 142.4 19.3 70.0 10.1 89.6 2.71 4.06 1800 144.7 27.0 58.3 10.8 74.8 2.10 2.82 1470 136.8 26.3 61.4 10.0 72.2 2.07 2.93 1260 121.1 22.9 59.0 10.6 66.3 2.05 2.76 1570 132.7 25.3 58.6 11.5 73.6 2.16 2.78 1290 125.0 25.7 60.5 10.1 68.8 2.00 2.69 1580 133.2 27.3 60.7 9.6 71.7 2.11 2.85 1690 132.8 28.6 64.7 9.6 72.9 2.19 4.08 1670 131.6 25.4 59.7 10.6 69.8 2.14 2.76 1300 133.1 25.9 58.0 10.1 69.7 2.12 2.83 1610 134.0 25.8 59.6 9.4 70.8 2.10 2.88 1580 134.3 26.3 61.2 10.2 72.2 2.14 2.84 1570 129.1 27.7 62.2 11.1 72.9 2.09 2.93 1660 140.1 32.1 67.0 9.3 87.1 2.15 4.03 1040 132.6 27.9 62.0 10.3 72.5 2.08 2.81 1290 128.3 23.6 58.5 9.3 69.0 1.97 2.76 1980 145.8 34.5 68.0 9.8 89.7 2.68 4.25 1210 133.3 25.6 61.5 9.9 71.0 2.11 2.82 1300 134.3 25.6 61.0 10.5 73.2 2.02 2.83 1310 138.1 27.8 61.2 9.9 73.5 2.09 2.78 1590 135.6 25.9 59.6 9.6 72.8 2.10 2.91 1270 128.3 24.1 58.5 10.3 69.2 1.92 2.77 1310 129.7 24.7 61.7 10.1 69.4 2.03 2.80 2280 143.6 37.6 70.0 9.7 88.8 2.17 4.18 1580 136.6 32.3 67.2 10.3 87.1 2.66 4.04 2370 147.4 38.8 73.0 10.8 90.7 2.82 4.38 ;proc cancorr;/*调用cancorr过程*/var x1-x4;/*定义一组变组变量*/with y1-y3;/*定义另一组变量*/run;。
SAS学习笔记

/*此处可添加更多weight宏*/
run;
/*先观察一下,灵敏度和特异性有问题的时候,再修改上面的打分程序*/
proc sort data=new1;
run;
/*此处扩展名可自行添加更多,使得筛选更全面*/
data novideo;
input noname:$12. @@;
cards;
jpg doc xls docx xlsx ppt pptx mp3 bmp gif wma tif html csv txt exe pdf sas wav png
%weight(var1=欲,var2=爱,var3=少妇,var4=情爱,var5=床,var6=com,var7=www,var8=美女,var9=漂亮,var10=炮,n=10);
%weight(var1=骚,var2=爽,var3=逼,var4=私,var5=风流,var6=,var7=,var8=,var9=,var10=,n=15);
(5)程序编辑器,增强型编辑器PGM,WEDIT
(6)日志窗口LOG
(7)“输出”窗口OUTPUT
(8)“SAS资源管理器”EXPLORER
1、在命令栏中可以输入多个窗口命令,命令之间必须用分号分隔。
例如打开‘脚注’和‘查找’窗口
Footnote;expfind
2、LOG窗口-log
程序行:黑色表示
仅写出很少的字段。更多字段读者自行添加 */
data new1;
set new;
weight=0;
sas课程笔记

目录1、数据导入(对于导入数据参见little sas book第二章) (2)1.1创建新逻辑库创建新逻辑库有两种方法: (2)1.2 将你的数据放入SAS*/ (3)1.3用LIBNAME语句使用永久数据集 (3)2、开发数据(参见little sas book第三章) (3)2.1 格式、输入、读取 (3)2.2 用IF THEN DO END 和else if选择数据或选取部分数据 (5)2.3 求取最大值和总值 (6)2.4 累加和累乘 (7)2.5数组处理 (7)练习计算某只股票某段时间的累计收益率和年化收益率(提取数据和计算) (8)3、函数- COMPBL & COMPRESS、 (11)3.1 COMPBL & COMPRESS去掉空格 (11)3.2 INDEX;是找寻后一个变量在前一个变量中的位置 (12)3.3 SCAN提取字串、SUBSTR替换字串 (12)3.4 VERIFY;核实某字符的存在 (13)3.5 UPCASE vs. LOWCASE; (13)3.6 日期时间的显示和计算 (14)3.7 Truncation 用函数处理具体数值 (16)3.8 数据转置 (18)3.9 概率统计与随机抽样函数 (18)练习计算A股股票在2014年的双周收益率序列 (21)4、对表的处理 (22)4.1 表的连接 (22)4.2 表的合并 (24)5、数据查询实例 (27)6、利用宏 (30)6.1 利用宏程序导入股票日交易数据 (30)6.2用宏程序导入两个文本文件的数据并计算两只股票的总收益率和(几何平均)年收益率 (32)6.3 求winners50和losers50(答案) (33)6.4.1定义宏变量 (35)6.4.2引用宏变量 (36)6.4.3 多次引用宏变量 (36)6.4.4 改变宏变量的值 (37)6.4.5 如何隔开宏变量引用和文本 (38)6.4.6 显示宏变量值 (38)6.4.7 间接引用宏变量&& (38)6.4.8 定义宏和调用宏(什么是宏?) (39)6.4.9 宏参数(定义在宏%MACRO语句内的宏变量) (40)6.4.10 宏程序语句和宏函数 (41)1、对于在CSMAR下载的数据,用foxpro格式下载,然后用Stat/Transfer转换成SAS格式;对于在RESSET数据库下载的数据,建议使用下载数据时自动生成的数据导入程序(可能要稍作修改)导入SAS。
sas学习笔记之四——infile常用指令使用总结

sas学习笔记之四——infile常⽤指令使⽤总结infile指令使⽤总结1、FIRSTOBS和OBS指令,FIRSTOBS⽤于指定读⼊数据的起始⾏;OBS⽤于指定读⼊数据的终⽌⾏。
如infile 'c:\temp.txt' FIRSTOBS=2 OBS=100;2、FLOWOVER/MISSOVER/TRUNCOVER/STOPOVER 指令,该指令都⽤于读取记录末尾不完整的数据时使⽤,FLOWOVER是默认选项。
看下⾯的⼏个例⼦sas的help也有这个例⼦外部⽂件d:\test.log的数据为122333444455555分别⽤上⾯指令data num;infile 'd:\test.log' FLOWOVER ;input temp 5.;RUN;1 222 44443 55555结果为,读取时第⼀条不满⾜长度5,移到下⼀⾏数据22读取数据(这是这⾏数据事实上被读⼊),指针⾃然移到第三⾏不满⾜,移到下⼀⾏数据4444读取数据(这是这⾏数据事实上被读⼊),指针移到第5⾏读取55555。
--------------data num;infile 'd:\test.log' missover ;input temp 5.;proc print;RUN;结果1 .2 .3 .4 .5 55555结果为,读取时第⼀条⾄第4条不满⾜长度5,写⼊默认值.,第五条满⾜读⼊。
----------------data num;infile 'd:\test.log' truncover ;input temp 5.;proc print;RUN;结果1 12 223 3334 44445 55555结果为,读取时第⼀条⾄第4条不满⾜长度5,但是将数据读⼊。
----------------data num;infile 'd:\test.log' stopover ;input temp 5.;proc print;RUN;结果会出现错误,第⼀⾏不符合条件,就停⽌读⼊。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基本操作Editor窗口打开sas程序(扩展名*.sas)Log窗口Output窗口Explorer窗口Results窗口蓝色绿色SetMergeIf (if。
thendelete)Drop(keep)二、描述性统计1.Proc Formatvalue height 0-50=‘<50’50-60=‘50-60’60-high=‘>60’2. Proc freq data=名字order=freqTables 列表变量名/out=数据集名norow nocol nopercent(table y*x)FormatLabel weight=‘高度’By 变量3. Proc univariate data=名字Var 分析变量Histogram 变量/midpoints=7 to 29 by 24. Proc mens5. Proc gchartVbar竖直或hbar 横向Vbar math / group=sexPie sex/type=percent(以百分数显示)Block math/group=sex图形关键字绘制的图形类型图形关键字绘制的图形类型Block方块图pie饼形图Hbar水平的条形图pie3d三维饼形图6.Proc gplot Plot x*ySymbol value=star color=red 选项 意义取值V alue = 符号 表示点使用的符号 plus, x, star, square, diamond, triangle, hash, y, z, paw, point, dot, circleC olor = 颜色 表示点的符号及连线的颜色black, red, green, blue, cyan,magenta, gray, pink, orange, brown, yellow CV =颜色 专指点的符号的颜色H = n<单位> 指名符号的大小 单位有:cell, cm, pct, pt, in POINTLABEL 在点的附近表明Y 轴变量的值i = 连线方式 指明连线的方式 none, join, spline, needle CI = 颜色 专指连线的颜色L = n n 为线型的序号 0 – 空白线,1 - 实线,2 – 虚线 W idth = nn 表示线的宽度7.proc g3d data=名字 曲面图 Plot x*y=z8.proc gcontour data= 曲面图对应的等高线图 Plot x*y=z/nolegend autolabel三、T 检验 >0.05 接受H0(差异有统计学意义)用于检验两个样本总体均数是否相等 独立的,来自正态分布的总体 定量资料对于两组独立样本的定量资料,要求方差相等,两组资料来自正态总体 用proc univariate Proc meansProc ttest (能提供基本统计量的计算,对单样本资料、配对设计资料和两独立样本进行thbar3d 水平的三维条形图 donut 环形图 Vbar 竖立的条形图 star 星形图 vbar3d竖立的三维条形图检验)第一步,正态性检验 proc univariate normal (夏皮洛威尔克) Var 分析变量Freq 频数变量(频数分布资料时用)Class 分类变量(两组独立资料时用)第二步,proc ttest h0=30(已知的总体均数为30)Var 分析变量( paired x1*x2 配对设计资料时用,检验两组均值是否一致)Freq 频数变量(频数分布资料时用)Class 分类变量(两组独立资料时用)四、方差分析适用于多个样本均数的比较,资料独立,正态,各总体方差相等 方差分析可用于分析主效应,交互效应方差分析方法:完全随机设计方差分析(单因素方差分析)随机区组方差分析(双因素方差分析,无需方差齐性检验) 析因方差分析 重复测量方差分析使用 proc anova(各样本数一样)和proc glm (generalized linear model ) 第一步,正态检验 proc univariate normal Var class 第二步, proc glmClass g 分类变量 (分类变量即自变量,必须为离散型变量) Model x=g (因变量=自变量或自变量之间的交互效应)效应模型, Means g/hovtest snk(means 列出比较组的均数和标准差)(hovtest 各比较组的方差齐性检验,homogeneity of variance test ,默认levene )(snk 进行均数间的多重比较 student Newman keuls )变异来源 自由度 SSMSF组间k-121()ki i i n x x =-∑ SS 1k -组间MS组间组内Lsmeans a*b/tdiff(析因设计资料时用,列出变量或交互效应各水平的均值)(tdiff 表示对变量各水平均值或交互效应各水平均值进行两两比较的t检验)1与2、3、4有差别2与1、4有差别3与1、4有差别4与1、2、3有差别第三步,多重比较五、卡方检验卡方检验是检验观测值的频率分布与理论分布是否吻合的一种统计方法用法有卡方拟合优度检验(根据样本的频率分布检验总体分布是否吻合假定的分布,两个率或两个构成比比较的卡方检验)卡方独立性检验(一份随机样本按两种属性分类,其个体来自第一个变量某类别的概率与来自第二个变量某类别的概率是否独立)Proc freq可进行列联表资料的卡方检验Weight 权重变量(使每个量初始权重为1)Tables 行变量*列变量/expected chisq nocol norow nopercent (exact 表示用fisher’s确切概率法,理论频数小于5)Testp(0.1667,0.1667,0.1667,0.1667)(expected输出各个格子的理论频数)(chisq 进行卡方统计量的计算)N>=40 T>5 普通卡方检验T为理论频数(行*列/总)N>=40 1<=T<5 校正卡方检验N<40 T<1 fisher’s确切概率法卡方:卡方拟合优度检验df=(k-1)/(k-r-1)列联表独立性检验(2X2 2Xc rX2 rXc)配对设计资料的卡方检验( table r*c/agree )六、基于秩次的非参数统计参数统计方法(t检验、方差分析)对总体分布的参数进行估计或检验非参数统计方法不需要对总体分布形状做出任何假定,适用于总体不正态分布、分布未知、正态分布但方差不齐性、分析等级资料SAS过程:单样本、配对资料prco univariate中的signed rank 符号秩和检验(服从正态,t检验)完全随机设计两样本两独立样本proc npar1way中的wilcoxon (exact确切概率法,适用于样本量较少)完全随机设计多样本(单因素)proc npar1way中的kruskal-wallis随机区组设计(双因素)proc rank(计算秩得分)再proc glm(分析秩次)Exact在两样本量相同时,sas以秩和较大者作为统计量进行概率值的计算在两样本量不同时,sas以较小者的秩和进行概率值的计算Z includes a continuity correction of 0.5统计量包含了一个0.5的连续校正多个样本Average scores were used for ties在系列计算中使用了平均得分先用exact test,后用Z(n>50)七、线性相关与回归(因变量为连续型变量)线性相关:研究两个(或多个)随机变量间相互联系的一种统计方法。
(proc corr)为了了解变量间关系的密切程度及方向。
变量都正态分布时,用pearson相关系数r有一个不正态,用spearman等级相关系数rs(统计线性相关关系的存在,是由专业知识给出的,统计软件是根据数据找出具体的直线关系)步骤:绘制散点图计算相关系数对样本的相关系数进行假设检验(原假设:不存在相关关系)3根据p拒绝原假设,所以存在相关关系,且为正相关。
线性回归:研究变量与变量间是否存在线性依存关系。
(原假设:不存在线性关系)(proc reg)因变量为随机变量,自变量为随机、非随机变量。
要求资料满足线性、独立、正态、等方差(line条件)。
步骤:绘制散点图计算回归系数对样本回归系数进行假设检验写出回归方程的表达式方法:向前法,向后法,逐步回归法,全子集法Model y=x/selection=stepwise sle=0.10 sls=0.15 cli clm(值越小,选取变量的标准越严格)Clm总体均数%95的置信区间Cli 个体值%95的置信区间Clb 回归系数%95的置信区间Conf 总体均数%95的置信带Pred 个体值%95的预测带STUDENT.标准化残差八、logistic回归(因变量为分类变量,医学研究中用的比较多)原假设:模型无效Model y=x/selection=stepwise sle=0.10 sls=0.15 stb(要求输出标准化偏回归系数)非条件:Descending因变量由大到小Proc logistic desOR>1 危险因素条件:Strata 分层变量(匹配变量)Model outcome(event=‘1’)=gall hyper(因变量=自变量)(制定用gall hyper作为自变量,按outcomes=1即病例,拟合概率模型)Response profile响应变量的主要信息Model fit statistic模型拟合统计量九、生存分析生存率的估计有寿命表法(LT)和乘积极限法(PL)生存分析基本方法:统计描述非参数统计检验(总体分布形式已知)半参数模型回归分析(部分线性回归模型,经典线性模型和非参数回归模型的一个混合体)参数模型回归分析Cox模型(比例风险模型)Pdf probability denstiny function(概率密度函数)Testing Homogeneity of Survival Curves for days over Strata时间变量day分层曲线的一致性检验The marked survival times are censored observations标记的生存时间是删失观测值的生存时间。