SAS系统上机.docx

上传人:b****3 文档编号:10891409 上传时间:2023-05-28 格式:DOCX 页数:36 大小:52.27KB
下载 相关 举报
SAS系统上机.docx_第1页
第1页 / 共36页
SAS系统上机.docx_第2页
第2页 / 共36页
SAS系统上机.docx_第3页
第3页 / 共36页
SAS系统上机.docx_第4页
第4页 / 共36页
SAS系统上机.docx_第5页
第5页 / 共36页
SAS系统上机.docx_第6页
第6页 / 共36页
SAS系统上机.docx_第7页
第7页 / 共36页
SAS系统上机.docx_第8页
第8页 / 共36页
SAS系统上机.docx_第9页
第9页 / 共36页
SAS系统上机.docx_第10页
第10页 / 共36页
SAS系统上机.docx_第11页
第11页 / 共36页
SAS系统上机.docx_第12页
第12页 / 共36页
SAS系统上机.docx_第13页
第13页 / 共36页
SAS系统上机.docx_第14页
第14页 / 共36页
SAS系统上机.docx_第15页
第15页 / 共36页
SAS系统上机.docx_第16页
第16页 / 共36页
SAS系统上机.docx_第17页
第17页 / 共36页
SAS系统上机.docx_第18页
第18页 / 共36页
SAS系统上机.docx_第19页
第19页 / 共36页
SAS系统上机.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SAS系统上机.docx

《SAS系统上机.docx》由会员分享,可在线阅读,更多相关《SAS系统上机.docx(36页珍藏版)》请在冰点文库上搜索。

SAS系统上机.docx

SAS系统上机

 

SAS上机指导

 

一、SAS系统的熟悉与了解4

二、SAS编程5

1.创建数据集5

1.1自由格式5

1.2列方式5

1.3规定格式5

2.数据集的整理6

2.1建立新变量、累加、选择变量6

2.2条件语句6

2.3循环语句6

2.4数据集的连接与合并7

2.5SAS与外部数据的交换8

三、Means和Univariate过程10

1.计算统计量10

2.图形概括10

四、随机数的产生与模拟11

1.非均匀随机数的产生11

1.1逆变换法11

1.2合成法11

1.3筛选抽样法11

2.MonteCarlo方法在解确定性问题中的应用12

3.随机模拟方法在随机服务系统中的应用14

4.随机模拟方法在理论研究中的应用14

五、区间估计和假设检验17

1.正态总体的均值、方差的区间估计17

2.均值、方差的假设检验18

3.正态性检验19

4.非参数秩和检验20

六、方差分析21

七、回归分析23

八、附录:

insight简介24

 

SAS系统上机

一、SAS系统的熟悉与了解

1起动SAS系统

2SAS系统的窗口PGM、LOG、OUTPUT、KEY、DIR、VAR、LIB

3SAS菜单条(不同的窗口其内容有所不同)

4工具栏

5命令条:

在里面输入显示管理(DM)命令后回车或点击前面的对号

6状态栏其左边显示一些重要的帮助信息或提示。

右边有一个用于更改工作目录的图标,双击它可改变SAS的当前的工作目录,

7了解菜单栏

8在程序窗口输入以下程序,

databodyfat;

inPUtsex$fatpct@@;

fat=fatpct/100;

cards;

M13.3F22M19F26M20F16M8F12M18F21.7

M22F23.2M20F21M31F28M21F30M12F23

M16M12M24

RUN;

PROCmeansdata=bodyfat;

varfatpct;

run;

(1)执行该程序,看看LOG窗、OUTPUT窗的表示,并将这两个窗口的内容保存

(2)回到程序窗口,将原程序调回,并将该程序保存到磁盘

(3)三个窗口的切换

(4)退出SAS系统,并重新启动,在程序窗口中打开刚才保存的SAS程序。

(5)建立SAS数据库(用菜单的方式以及程序方式),并将数据集存放到该数据库下。

二、SAS编程

1.创建数据集

1.1自由格式

输入以下程序:

dataA;

inputsex$fatpct;

cards;

M13.3/*一个数据一行*/

F22

M19

F26

run;

procprintdata=A;

run;

还可改变数据的存放格式

dataA;

inputsex$fatpct@@;/*可以多个数据一行*/

cards;

M13.3F22M19F26

run;

1.2列方式

datab;

inputname$1-6dmy$7-13sex$14-15math16-17phy18-19eng20-21;

/*用下面一个语句看结果如何*/

/*inputname$1-6sex$14-15dmy$7-13phy18-19;*/

cards;

张军01MAR75男807984

王卫红24JUL78女959689

run;

1.3规定格式

datac;

input@1name$6.dmydate7.sex$2.math2.phy2.eng2.;

/*inputname$6.@14sex$2.@7dmydate7.+4phy2.;*/

/*用这个语句可替换上一个语句,看看结果*/

cards;

张军01MAR75男807984

王卫红24JUL78女959689

run;

2.数据集的整理

2.1建立新变量、累加、选择变量

dataB;

inputname$1-6dmy7-13sex$14-15math16-17phy18-19eng20-21;

total=sum(math,phy);/*新变量*/

teng+eng;/*累加变量*/

dropdmysex;/*此句亦可用KEEPNAMEMATHPHYENGTOTALTENG;替代。

*/

cards;

张军01MAR75男807984

王卫红24JUL78女959689

run;

2.2条件语句

dataCMCF;

inputname$1-6dmy7-13sex$14-15math16-17phy18-19eng20-21;

ifsex='男'thenoutputCM;

ifsex='女'thenoutputCF;

dropdmysex;/*此句亦可用KEEPNAMEMATHPHYENGTOTALTENG;替代。

*/

cards;

张军01MAR75男807984

王卫红24JUL78女959689

run;

2.3循环语句

datae;

seed=789;

doI=1to50;

x=rannor(seed);

y=2+3*x;

output;

end;

run;

procgchartdata=e;

vbary;

run;

2.4数据集的连接与合并

连接

dataA;

inputnoname$mathphyeng;

cards;

9701wanglei908679

9702wanghao989790

9703gudexian878694

9706zhuming968786

run;

dataB;

inputnoname$mathphichemgeo;

cards;

9701wanglei90868976

9702wanghao98976972

9704zhuzhun88767868

9705chaoyin64857666

run;

dataC;/*连接两个数据集*/

setA(drop=eng)B(drop=chemgeorename=(phi=phy));

run;

合并

一对一合并

dataAA;

inputx1x2;

cards;

12

78

45

;

dataBB;

inputx1y1y2;

cards;

112233

445566

run;

dataaabb;

mergeAABB;

run;

匹配合并

dataA;

inputnoname$mathphyeng;

cards;

9701wanglei908679

9702wanghao989790

9703gudexian878694

9706zhuming968786

run;

dataB;

inputnoname$mathphichemgeo;

cards;

9701wanglei90868976

9702wanghao98976972

9704zhuzhun88767868

9705chaoyin64857666

run;

procsortdata=a;

byno;

run;

procsortdata=b;

byno;

run;

dataC;

mergeAB;

byno;

run;

2.5SAS与外部数据的交换

事先在e:

\example目录下准备以下三个文件EX1.DBF、EX2.XLS、EX3.TXT,则三者分别与SAS之间进行文件转换如下。

1DBF文件转换为SAS文件。

filenameex1'e:

\example\ex1.dbf;

procdbfdb3=ex1OUT=DBF2SAS;

run;

将e:

\example目录下EX1.DBF文件转换成SAS数据集DBF2SAS,存放在临时数据库WORK中.

2SAS文件转换为DBF文件。

filenameex11'e:

\example\sas2dbf.dbf';

procdbfdb3=ex11data=DBF2SAS;

run;

将SAS数据集DBF2SAS转换成DBF数据库文件SAS2DBF.DBF,存放在e:

\example目录下.

3EXCEL文件转换为SAS文件

filenameex2'e:

\example\ex2.xls;

procdbfdb3=ex2OUT=XLS2SAS;

run;

将EXCEL文件EX2.XLS转换为SAS文件XLS2SAS,并存放在SAS的临时库WORK中.

4SAS文件转换为EXCEL文件

filenameex22'e:

\example\SAS2XLS.xls';

procdbfdb3=ex22data=XLS2SAS;

run;

则将SAS文件XLS2SAS转换为EXCEL文件SAS2XLS.xls

5文本文件转换为SAS文件,并设其内容为如下形式

9701wanglei9086

9702wanghao9897

9703gudexian8786

9706zhuming9687

filenameex3'e:

\example\ex3.txt';

datatxt2sas;

infileex3;

inputnoname$mathphy;

run;

则将EX3.TXT文本文件转换为SAS文件TXT2SAS.

6SAS文件转换为文本文件

DATA_null_;/*表示不建数据集,_null_为SAS的关键词*/

SETTXT2SAS;

FILE'E:

\EXAMPLE\SAS2TXT.TXT';/*指出存放的文件位置*/

PUTNO4.NAME8.MATH2.PHY2.;/*存在文件中的变量及格式*/

RUN;

则将TXT2SAS转换成了文本文件SAS2TXT.TXT,并存放在目录e:

\example下.

三、Means和Univariate过程

1.计算统计量

1.熟悉两个过程的格式(语法)

2输入以下程序,并改变相应的参数,看输出的结果

datastat;

inputx@@;

cards;

0.860.780.830.840.770.840.810.840.810.810.800.81

0.790.740.820.780.820.780.810.800.810.740.870.78

0.820.750.780.790.800.850.810.780.870.740.810.71

0.770.880.780.820.770.760.780.850.770.730.770.78

0.770.810.710.790.950.770.780.780.810.810.790.87

0.800.830.770.650.760.640.820.780.800.750.820.82

0.840.800.790.800.900.770.820.810.790.750.820.83

0.790.900.860.800.760.850.780.810.830.770.750.78

0.820.820.780.840.730.850.830.840.810.820.810.85

0.830.840.890.820.810.850.860.840.820.780.820.78

;

procmeansdata=statmeanvarstdstderrrangecvskewnesskurtosis;/*means可换为Univariate*/

varx;

run;

3.并结果用数据集的形式保存。

2.图形概括

用上例数据,输入以下程序

procchartdata=stat;/*chart可换为gchart*/

vbarx;

vbarx/type=percent;

vbarx/type=cpercent;

run;

四、随机数的产生与模拟

1.非均匀随机数的产生

1.1逆变换法

例1已知

(柯西分布),试给出其抽样方法。

dataex1;

seed=678;

doI=1to100;

r=ranuni(seed);

x=tan(3.14159*(r-0.5));

output;

end;

run;

1.2合成法

例2设

时梯形分布的密度函数为

试用合成法产生其随机数。

dataex2;

seed=789;a=0.3;

doI=1to100;

r=ranuni(seed);r3=ranuni(seed);

ifr1<=athendo;u=ranuni(seed);x=u;end;

elsedo;u=ranuni(seed);v=ranuni(seed);x=max(u,v);end;

output;

end;

run;

1.3筛选抽样法

例3设

试用筛选法抽取其随机数。

dataex3;

seed=789;

doI=1to100;

r1=ranuni(seed);r2=ranuni(seed);

ifr1<=r2**3thendo;x=r2;output;end;

end;

run;

2.MonteCarlo方法在解确定性问题中的应用

例4:

计算

(1)随机投点法

SAS程序如下:

dataE1;

Dok=1to1000;

m=0;

Doh=1to1000;

a=ranuni(32789);

b=ranuni(32789);

ifb<=(exp(a)-1)/(exp

(1)-1)thenm=m+1;

end;

I1=m/1000*(exp

(1)-1)+1;

output;

E1=abs(I1-(exp

(1)-1));

end;

run;

procmeansdata=e1MeanVar;

varI1;

run;

(2)平均值估计法

dataE2;

Dok=1to1000;

s=0;

Doi=1to1000;

x=ranuni(32789);

fx=exp(x);

s=s+fx;

end;

I2=s/1000;

output;

E2=abs(I2-(exp

(1)-1));

end;

run;

procmeansdata=e2MeanVar;

varI2;

run;

(3)重要抽样法

dataE3;

dok=1to1000;

s=0;

Doi=1to1000;

r=ranuni(32789);

x=(3*r+1)**(1/2)-1;

s=s+exp(x)/(1+x);

end;

I3=3/(2*1000)*s;

output;

E3=abs(I3-(exp

(1)-1));

End;

run;

procmeansdata=e3MeanVar;

varI3;

run;

(4)分层抽样法

dataE4;

Dok=1to1000;

s1=0;

s2=0;

Doi=1to400;

ri=ranuni(32789);

r1=0.5*ri;

f1=exp(r1);

s1=s1+f1;

end;

Doj=1to600;

rj=ranuni(32789);

r2=0.5+0.5*rj;

f2=exp(r2);

s2=s2+f2;

end;

I4=s1*(1/800)+s2*(1/1200);

output;

E4=abs(I4-(exp

(1)-1));

end;

run;

procmeansdata=e4MeanVar;

varI4;

run;

3.随机模拟方法在随机服务系统中的应用

例5某服务系统有三个服务员,输入流为泊松流,服务时间为指数分布。

每个顾客服务时间等于0.5分钟。

求在T=4分钟内被服务顾客的数学期望。

解:

表示第

个顾客到达的时刻,

表示第

个顾客到达的时间间隔。

则有

SAS程序为

dataex7;

s1=0;s2=0;s3=0;

T=0;

Dountil(T>4);

R=ranuni(-1);

P=0.2*(-log(R));

T=T+p;

Ss1=s1;ss2=s2;ss3=s3;

If(T<=ss1)and(T<=ss2)and(T<=ss3)thend=0;

Elsed=1;

If(T>ss1)thendo;s1=T+0.5;end;

If(T<=ss1)and(T<=ss2)and(T>ss3)thendo;s3=T+0.5;end;

Output;

End;

Run;

Procmeansdata=ex7;

Vard;

Outputout=resultsum=dsum;

Run;

Procprintdata=result;

Run;

4.随机模拟方法在理论研究中的应用

例8:

假设数据来自

的总体,用SAS来计算,比较系统聚类法的八种常用方法在分类时之间的分类效果的好坏。

其SAS程序为(以average为例):

%macrocreatedata(mdata=,leixing=,mv1=,mv2=,mvar1=,mvar2=,mvar3=);

data&mdata;

dropiu1u2;

fenlei=&leixing.;

doi=1to50;

u1=rannor(0);

u2=rannor(0);

x1=&mv1.+sqrt(&mvar1.)*u1;x2=&mv2.+(&mvar2.*u1+sqrt(&mvar1.*&mvar3.-&mvar2.*&mvar2.)*u2)/sqrt(&mvar1.);

output;

end;/*产生来自两元正态总体的随机数据*/

run;

%mendcreatedata;

%macrodatacluster(mdata=,method=);

data&mdata.;

setab;

run;

procclusterdata=&mdata.method=&method.outtree=cnoprint;

varx1x2;

copyfenleix1x2;

run;/*对两个来自不同两元正态总体的随机数据进行聚类*/

proctreedata=cout=abcncl=2noprint;

copyfenleix1x2;

run;

dataresult1;

setabc;

result=0;

iffenlei^=clusterthenresult=1;

run;

procsortdata=result1;

byfenlei;

run;

procmeansdata=result1noprint;

varresult;

byfenlei;

outputout=resultsum=errorsum;

run;/*计算出错分的个数*/

procappendbase=r_resultdata=result;

run;

%menddatacluster;

%macroanalyze;

%doi=1%to50;

%createdata(mdata=a,leixing=1,mv1=0,mv2=0,mvar1=1,mvar2=0,mvar3=1);

%createdata(mdata=b,leixing=2,mv1=3,mv2=3,mvar1=1,mvar2=0,mvar3=1);

%datacluster(mdata=ab,method=average);

%end;

%mendanalyze;

%analyze;

datarr;

setr_result;

iferrorsum>25thenerrorsum=50-errorsum;

errorratio=errorsum/50;

run;/*计算错分率*/

procsortdata=rr;

byfenlei;

run;

procmeansdata=rrnoprint;

outputout=rmean=err_ratio;

varerrorratio;

byfenlei;

run;/*计算平均错分率*/

procprintdata=r;

varfenleierr_ratio;

title'总错判率:

';

run;

在运用SAS进行计算时,只需将“method=average”中的“average”用其它七种聚类方法进行替换即可。

五、区间估计和假设检验

1.正态总体的均值、方差的区间估计

例1:

设某厂一车床生产的钮扣,其直径据经验服从正态

为了判断其均值的置信区间,现抽取容量n=100的子样,其子样均值

=26.56,求其均值的95%的置信区间.

SAS程序为

dataval1;

xbar=26.56;

sigma=5.2;

n=100;

u=probit(0.975);

delta=u*sigma/sqrt(n);

lcl=xbar-delta;

ucl=xbar+delta;

procprintdata=val1;

varlclxbarucl;

run;

例2(t检验的置信区间)检验某种型号玻璃纸的横向廷伸率。

测得的数据如下:

横向廷伸率%35.537.539.541.543.545.547.549.551.553.555.557.559.561.563.5

频数7811991217145320201

现在要检验假设

并求出其95%的置信区间。

SAS程序为:

datavar22;

inputxfx@@;

y=x-65;

cards;

35.5737.5839.51141.5943.5945.51247.51749.514

51.5553.5355.5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2