agpop数据文件介绍:美国政府每五年做一次有关农业的普查,收集50个州的所有农场的有关数据。数据文件中共有3041个美国县级农场或与县级农场相当的农场数据。共有4个区域(region/rnum),50个州(state/snum),以及3041个县(county/cnum)。
我们用到的变量有:
县(county/cnum), 州(state/snum), 区域(region/rnum),
1992年每个县的耕地面积(acres92), 1987年每个县的耕地面积(acres87),
1992年每个县拥有的农场个数(farms92)。
目标变量为1992年的耕地面积(acres92)。
> data=read.csv("E:/抽样技术数据件.csv",header=T,sep=",");
> n=5; #设定样本群数为5
运行结果:【复制粘贴到此处】
> n=5; #设定样本群数为5
结果解释:【对结果进行解释说明】
设定样本群数为5.
其中第一个参数为总体的数据框,第二个变量为分群变量,参数size设定样本群数,参数method设定群的抽取方法(可选择的方法有“srswor”, “srswr”, “poisson” “systematic”),默认方法为“srswor”,设定description=TRUE运行结果会显示抽样信息。本例中抽取的群数为5,总体中基本单元有3041个,最终样本中的基本单元有222个(每次结果可能不同)。
> c=sampling::cluster(data,"state",size=n,method="srswor",description=TRUE); #调用整群抽样函数
运行结果:【复制粘贴到此处】
Number of selected clusters: 5
Number of units in the population and number of selected units: 3041 222
结果解释:【对结果进行解释说明】
由于抽取的群数为5,总体中基本单元有3041个,最终样本中的基本单元有474个。
> head(c);
> c=getdata(data,c)#提取抽到的样本数据
结果解释:【对结果进行解释说明】
提取抽到的样本数据
估计的目标变量为acres92的均值和总值,及其相应的标准误差
> pw=rep(nrow(data)/nrow(c),nrow(c)); #样本权重,为单元入样概率的倒数
> N=nlevels(data$state);
> N;
> fpc=rep(N,nrow(c));# 总体中state的数量
> agclus=as.data.frame(cbind(c,pw,fpc)); # 合并样本数据框c和pw,fpc
运行结果:【复制粘贴到此处】
结果解释:【对结果进行解释说明】
样本权重pw为单元入样概率的倒数,fpc为总体中state的数量,最后合并样本数据框c和pw,fpc记为agclus。
> dclus<-svydesign(id=~state,weights=~pw,data=agclus,fpc=~fpc); #调用svydesign函数定义抽样设计
> summary(dclus); #查看抽样设计
运行结果:【复制粘贴到此处】
> summary(dclus); #查看抽样设计
1 - level Cluster Sampling design
With (5) clusters.
svydesign(id = ~state, weights = ~pw, data = agclus, fpc = ~fpc)
Probabilities:
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1559 0.1559 0.1559 0.1559 0.1559 0.1559
Population size (PSUs): 50
Data variables:
[1] "county" "cnum" "snum" "acres92" "acres87" "acres82" "farms92"
[8] "farms87" "farms82" "largef92" "largef87" "largef82" "smallf92" "smallf87"
[15] "smallf82" "region" "rnum" "state" "ID_unit" "Prob" "pw"
[22] "fpc"
结果解释:【对结果进行解释说明】
查看抽样设计,其中数据变量有22个,使用整群抽样方法。
> svymean(~acres92,dclus); #目标变量“acres92”的均值估计和标准差估计
> svytotal(~acres92,dclus) #目标变量“acres92”的总值估计和标准差估计
运行结果:
> svymean(~acres92,dclus); #目标变量“acres92”的均值估计和标准差估计
mean SE
acres92 448503 113951
> svytotal(~acres92,dclus) #目标变量“acres92”的总值估计和标准差估计
total SE
acres92 1363897726 733609005
结果解释:
目标变量“acres92”的均值估计为448503,标准差估计为113951;目标变量“acres92”的总值估计为1363897726,标准差估计为733609005.