资源描述
第一次作业
学号:200930980106 姓名: 何斌 年级专业: 10级统计1班 指导老师:肖莉
1. 以下数据是调查15个学生是否学过四门课程(记为A、B、C、D)的资料,0表示没有学过,1表示已学过。
0 0 0 1 m 1 1 0 0 f
0 0 1 0 m 0 0 0 1 f
0 1 1 0 f 1 1 0 0 m
1 0 1 1 m 0 0 0 0 m
0 1 1 0 f 1 1 1 1 f
1 0 0 1 f 0 0 1 1 m
1 0 1 1 m 1 0 1 1 f
1 0 1 0 f
(1) 对这组资料创建一SAS数据集,然后按男女分别生成两个SAS数据集。
(2) 建立一新变量NEW:先把是否学过4门课程的资料看成4 个元素的向量,并作为一个4位二进制数,然后转换为十进制数作为NEW的值。比如:(1011)可化为1*23+0*22+1*21+1*20=11。然后创建一个包含新变量和四门课得分的SAS数据集;并按NEW值从小到大的次序排列后输出。
(3) 请统计一下15个学生中学过A、B、C、D四门课的各有多少人,并把结果存为SAS数据集后并打印输出。
解答如下:
(1)
SAS程序如下所示:
options nodate nonumber;
data a1;
input A B C D sex$@@;
cards;
0 0 0 1 m 1 1 0 0 f
0 0 1 0 m 0 0 0 1 f
0 1 1 0 f 1 1 0 0 m
1 0 1 1 m 0 0 0 0 m
0 1 1 0 f 1 1 1 1 f
1 0 0 1 f 0 0 1 1 m
1 0 1 1 m 1 0 1 1 f
1 0 1 0 f
;
run;
data man women;
set a1;
select (sex);
when ('m') output man;
when ('f') output women;
end;
run;
proc print data=a1;
title '------总数据集------';
run;
proc print data=man;
title '------男生数据------';
run;
proc print data=women;
title '------女生数据------';
run;
得到结果如下:
图1
图2
图3
(2)
SAS程序如下所示:
data a2;
set a1;
drop sex;
new=A*(2**3)+B*(2**2)+C*(2**1)+D;
run;
proc sort data=a2;
by new;
run;
proc print data=a2;
title '------加入了new变量------';
run;
得到结果如下所示:
图4
(3)
SAS程序如下所示:
data a3;
set a1;
drop sex;
run;
proc print data=a3 noobs;
title '------各科目总学习人数------';
sum A B C D;
run;
得到结果如下所示
图5
2. 试用概率函数计算正态分布N(3,9)的分布函数F(X)。
X
F(X)
0.00
0.10
…
3.00
解答如下:
由于该正态分布的均值为3,标准差为3,故SAS编程如下:
data b1;
do x=0 to 3 by 0.1;
fx=probnorm((x-3)/3);
output;
end;
run;
proc print data=b1;
title1 '-------------------------------------------';
title2 '用概率函数计算正态分布N(3,9)的分布函数F(X)';
run;
或者:
data b1;
Fx=0;
do x=0 to 3 by 0.1;
fx=probnorm((x-3)/3);
Fx=Fx+fx;
output ;
end;
run;
proc print data=b1; run;
得到结果如下所示:
图6
3. 试用分位数函数计算F分布的分位数。
ndf ddf
0.05 0.025 0.005
1
1
…
1
2
…
2
…
5
1
2
…
10
1
…
10
…
10
(满足)
解答如下:
SAS程序如下所示:
data c1;
do gailv=0.05 ,0.025 ,0.005;
do ndf=1 to 5 by 1;
do ddf=1 to 10 by 1;
fenweishu=finv(gailv,ndf,ddf);
output;
end;
end;
end;
run;
proc print data=c1;
title1 '------------------------------';
title2 '用分位数函数计算F分布的分位数';
run;
得到结果如下所示:
…………
图7
4. 以下四行数据是四次记录下来的数据,每次从4 个厂家(用A,B,C,D代表)生产的同类食品中,每个厂家抽取三包测量每包的数量。每一行开头三个数值是厂家A生产,以后依次是B、C、D生产的。
72 74 69 61 61 65 62 65 70 85 76 61
67 52 62 60 55 59 64 65 64 67 72 60
57 66 72 72 43 43 63 66 72 56 75 92
57 56 78 60 63 58 61 79 68 73 86 71
(1) 请按数据形式输入后生成外部数据文件DB25.TXT.
(2) 用DATA步调入外部文件DB25.TXT(用INFILE和INPUT语句)生成包括变量:TIME(次数),N(包的序号),FACTORY(厂家)和NUMBER(数量)的SAS数据集
(3) 请按以下要求输出(2)产生的SAS数据集:
1. 只包含变量TIME,FACTORY和NUMBER;
2. 对每个厂家的资料分别输出报告,要求每包食品的数量按小到大的次序排好.
(4) 计算每个厂家的12包食品的平均数量,标准差,极差和总和等描述统计量;然后存贮为一个SAS数据集(包含4 个观测)。
解答如下:
(1)
SAS程序如下所示:
data DB25;
do m=1 to 4;
do factory='A','B','C','D';
do n=1 to 3;
input accounts@@;
output;
end;
end;
end;
cards;
72 74 69 61 61 65 62 65 70 85 76 61
67 52 62 60 55 59 64 65 64 67 72 60
57 66 72 72 43 43 63 66 72 56 75 92
57 56 78 60 63 58 61 79 68 73 86 71
;
run;
proc print data=DB25;
title1 '------------------------';
title2 '各厂的检测数据';
run;
PROC EXPORT DATA= WORK.DB25
OUTFILE= "C:\Documents and Settings\Administrator\桌面\DB25.txt"
DBMS=TAB REPLACE;
PUTNAMES=YES;
RUN;
得到结果如下所示:
………
图8
(2)
SAS程序如下所示:
data DB_3;
set DB25;
file 'D:\DB25.txt';
put m factory$ n accounts ;
run;
data DB_4;
infile 'D:\DB25.txt';
input m factory$ n accounts;
run;
proc print label;
label
m='time';
label
accounts='number';
run;
得到结果如下所示:
………
图10
(3)
1.SAS程序如下所示:
data d3;
set DB_3;
drop n;
run;
proc print data=d3 noobs;
title '------------------';
run;
得到结果如下所示:
图11
2.SAS程序如下所示:
data d3_2;
set d3;
keep factory number;
run;
proc sort data=d3_2;
by factory number;
run;
proc print data=d3_2 noobs;
title1 '---------------------------------------------------------';
title2 '对每个厂家的资料分别输出报告,每包食品的数量按小到大的次序排好';
run;
得到结果如下所示:
………
图12
(4)
SAS程序如下所示:
data d4;
proc means data=d3_2 mean std range sum;
class factory;
run;
proc print;
title1 '---------------------------------------------------------';
title2 '计算每个厂家的12包食品的平均数量,标准差,极差和总和等描述统计量';
run;
得到结果如下所示:
图12
5、书上第28页,1.4题
(1)原数据集如下所示:
X
1
2
3
4
5
6
Pk
1/6
1/6
1/6
1/6
1/6
1/6
由E(X)=16n=16Pk×X 计算得:E(X)=0.583
由Var(X)= 15n=16X-E(X)2 计算得:Var(X)=0.208
众数m0=1/6,中位数me=1/6
(2)原数据集如下所示:
X
1
2
3
4
5
6
Pk
1/6
1/12
1/12
1/6
3/12
3/12
由E(X)=16n=16Pk×X 计算得:E(X)= 0.6667
由Var(X)= 15n=16X-E(X)2 计算得:Var(X)= 0.2139
众数m0= 1/12,中位数me= 1/6
展开阅读全文