jmpamao 发表于 2012-11-21 03:22 
#分层简单随机抽样
#总体均值、总体总值及总体比率的各种总体参数的估计
#商务与统计 by 安德森 -第22章, ...
qoiqpwqr
帮忙看下程序,向量化是否ok? 谢谢
#分层简单随机抽样
#总体均值、总体总值及总体比率的各种总体参数的估计
#商务与统计 by 安德森 -第22章,例题见附件 第8页
#某大学商学院想对今年的毕业生进行一次调查,目的是了解起始年薪
#5个专业:会计、金融、信息系统、市场营销、经营管理
#总毕业生人数N=1500,会计N1=500,金融N2=350,信息N3=200,市场N4=300,经营N5=150
#抽取人数n=180,会计n1=45,金融n2=40,信息n3=30,市场n4=35,经营n5=30
######模拟年收入 均值和标准差由例题知
#会计 acc=rnorm(500,35000,2000)
#金融 eco=rnorm(350,33500,1700)
#信息 inf=rnorm(200,41500,2300)
#市场 mar=rnorm(300,32000,1600)
#经营 man=rnorm(150,36000,2250)
#起薪不低于36000的总体比率
options(digits=4)
N <- 1500
N.major <- data.frame(N1=500,N2=350,N3=200,N4=300,N5=150)
n <-180
n.major <-data.frame(n1=45,n2=40,n3=30,n4=35,n5=30)
#抽样
acc=sample(rnorm(500,35000,2000),45)
eco=sample(rnorm(350,33500,1700),40)
inf=sample(rnorm(200,41500,2300),30)
mar=sample(rnorm(300,32000,1600),35)
man=sample(rnorm(150,36000,2250),30)
#x: 总体均值的点估计
x <-sum(c(mean(acc),mean(eco),mean(inf),mean(mar),mean(man))*N.major/N);x
#s: 估计值得标准误差
s.s <-c(var(acc),var(eco),var(inf),var(mar),var(man))/n.major
s <-sqrt(sum(s.s*N.major*(N.major-n.major)))/N
#总体均值95%的置信区间
c(x-qnorm(.975)*s,x+qnorm(.975)*s)
#Nx 总体总值的点估计
X <-N*x;X
#S 总体标准误差:Ns
S <- N*s;S
#总体总量的95%置信区间
c(X-qnorm(.975)*S,X+qnorm(.975)*S)
#起薪不低于36000的比率
#各专业年薪不低于36000的数量
acc.q <- length(acc[acc >=36000])
eco.q <- length(eco[eco >=36000])
inf.q <- length(inf[inf >=36000])
mar.q <- length(mar[mar >=36000])
man.q <- length(man[man >=36000])
#总体比率的点估计:P
P <- sum(N.major/N*c(acc.q,eco.q,inf.q,mar.q,man.q)/n.major);P
#P的标准误差:s.p
p.p <-c(acc.q,eco.q,inf.q,mar.q,man.q)/n.major*(1-c(acc.q,eco.q,inf.q,mar.q,man.q)/n.major)/(n.major-1)
s.p <-sqrt(sum(N.major*(N.major-n.major)*p.p))/N;s.p
#年薪不低于36000的比例 95%的置信区间为
c(P-qnorm(0.975)*s.p,P+qnorm(0.975)*s.p)