简单随机抽样

文章目录

  • 一、安装加载扩展包
  • 二、数据描述
  • 三、简单随机抽样
    • 1. 抽样:不放回简单随机抽样抽取样本容量为300的样本
      • (1)调用不放回简单随机抽样函数“srswor”,其中第一个参数为抽取的样本容量n,第二个参数为总体容量N。
      • (2)调用函数“getdata(data,s)”提取抽到的样本数据
    • 2. 估计
      • (1)定义样本权重变量,每个样本单元的权重是其入样概率的倒数
      • (2)定义fpc变量。fpc变量为“svydisign”函数的参数,此处为总体容量N
      • (3)将权重变量和fpc变量加入抽到的样本单元的数据集中
      • (4)调用svydesign函数定义该抽样设计及抽样结果.其中,id参数定义群变量,没有使用群变量则用“~0”或“~1”表示;weights参数定义权重变量;data参数定义抽到的样本单元的数据集;fpc参数定义fpc变量。
      • (5)查看抽样设计及抽样结果。其中Probability是样本单元的入样概率。
      • (6)目标变量(acres92)均值的简单估计及其标准误差估计。第一个参数定义目标变量,第二个参数定义抽样设计和抽样结果,deff参数如果设为TRUE,则可以在结果中输出该抽样设计的设计效应,缺省值为FALSE。
      • (7)目标变量(acres92)总值的简单估计及其标准误差估计。第一个参数定义目标变量,第二个参数定义抽样设计和抽样结果,deff参数如果设为TRUE,则可以在结果中输出该抽样设计的设计效应,缺省值为FALSE。
      • (8)目标变量(acres92)均值的比率估计及其标准误差估计。第一步调用svyratio函数估计比率,第一个参数定义目标变量,第二个参数定义辅助变量,第三个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体均值,并将其设为数据框格式。第三步调用predict函数估计目标变量的均值,第一个参数定义比率的估计值,第二个参数定义辅助变量的总体均值。
      • (9)目标变量(acres92)总值的比率估计及其标准误差估计. 第一步调用svyratio函数估计比率,第一个参数定义目标变量,第二个参数定义辅助变量,第三个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体总值,并将其设为数据框格式。第三步调用predict函数估计目标变量的总值,第一个参数定义比率的估计值,第二个参数定义辅助变量的总体总值。
      • (10)目标变量(acres92)均值的回归估计及其标准误差估计。第一步调用svyglm函数估计回归系数,第一个参数定义为“目标变量~辅助变量”,第二个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体均值,并将其设为数据框格式。第三步调用predict函数估计目标变量的均值,第一个参数定义回归系数的估计值,第二个参数定义辅助变量的总体均值的数据框。
      • (11)目标变量总值的回归估计及其标准误差估计。第一步调用svyglm函数估计回归系数,第一个参数定义为“目标变量~辅助变量”,第二个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体总值,并将其设为数据框格式。第三步调用predict函数估计目标变量的总值,第一个参数定义回归系数的估计值,第二个参数定义辅助变量的总体均值的数据框,第三个参数定义总体单元数量。

一、安装加载扩展包

install.packages('sampling')
install.packages('survey')
install.packages('readxl')
library(sampling)
library(grid)
library(survey)

二、数据描述

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)。

三、简单随机抽样

1. 抽样:不放回简单随机抽样抽取样本容量为300的样本

(1)调用不放回简单随机抽样函数“srswor”,其中第一个参数为抽取的样本容量n,第二个参数为总体容量N。

data=read.csv("抽样技术数据文件.csv",header=T,sep=",")
N=nrow(data)
N
n=300
s=srswor(n,N)  #简单随机抽样
s

【运行结果】:

s
[1] 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
[51] 0 0 00 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
[101] 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[151] 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[201] 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0
[251] 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
[301] 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
[351] 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[401] 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
[451] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
[501] 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0
[551] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
[601] 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[651] 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
[701] 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0
[751] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0
[801] 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0
[851] 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0
[901] 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[951] 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0
[ reached getOption(“max.print”) – omitted 2041 entries ]

【结果解释】
从N=3041中抽取n=300个,结果输出表明:1代表抽中的样本的位置次序,0代表未抽中的样本的位置次序。

(2)调用函数“getdata(data,s)”提取抽到的样本数据

data.srswor=getdata(data,s)  #提取抽到的样本数据
data.srswor

【运行结果】:

data.srswor
ID_unit county cnum state snum acres92 acres87 acres82 farms92 farms87 farms82 largef92 largef87 largef82 smallf92 smallf87 smallf82 region rnum
9 9 ADAMS COUNTY 9 AR 3 281895 291186 281361 666 709 781 74 66 60 5 20 29 S 3
17 17 ADAMS COUNTY 17 TX 43 560355 582208 610359 774 818 832 193 160 172 21 49 29 S 3
25 25 ALAMANCE COUNTY 25 TX 43 378217 380811 375685 2230 2395 2328 50 43 46 123 130 121 S 3
38 38 ALLAMAKEE COUNTY 38 AR 3 298547 297284 292134 313 393 512 98 92 83 5 18 20 S 3
62 62 ANDERSON COUNTY 62 MI 22 206781 190251 197055 1164 1278 1464 23 17 9 56 66 55 NC 1
66 66 ANGELINA COUNTY 66 MI 22 22488 22196 37326 303 334 439 3 2 4 68 72 96 NC 1
72 72 APACHE COUNTY 72 ID 13 266293 246774 298818 221 221 236 54 52 47 21 21 13 W 4
77 77 ARAPAHOE COUNTY 77 MT 26 893872 906847 860472 463 491 486 283 283 270 17 29 39 W 4
84 84 AROOSTOOK COUNTY 84 OK 36 264890 269490 280677 536 580 589 51 58 59 6 16 13 S 3
87 87 ASHE COUNTY 87 TX 43 455873 468610 445406 79 82 80 29 27 27 10 12 12 S 3
106 106 AURORA COUNTY 106 KS 16 201798 216179 224519 509 530 620 51 58 50 31 47 39 NC 1
112 112 BACON COUNTY 112 WA 39 24253 26574 28342 328 375 407 2 0 0 72 71 79 W 4
117 117 BALDWIN COUNTY 117 AZ 4 1891644 2077793 2071868 831 836 785 241 225 215 68 85 57 W 4
119 119 BALLARD COUNTY 119 MD 20 37802 48941 52552 219 240 276 4 5 6 7 7 7 S 3
120 120 BALTIMORE COUNTY 120 NC 27 87478 86459 92821 325 336 470 13 13 12 20 23 41 S 3
128 128 BARBOUR COUNTY 128 AZ 4 5989961 5905699 5934411 285 294 232 75 71 60 78 119 85 W 4
131 131 BARNWELL COUNTY 131 IN 15 217288 217961 223064 749 876 962 54 35 28 70 82 79 NC 1
139 139 BARTON COUNTY 139 TN 42 150309 145507 155634 1115 1123 1299 8 4 2 102 90 162 S 3
162 162 BEDFORD COUNTY 162 KS 16 227349 221098 229847 825 852 937 46 43 46 44 60 68 NC 1
176 176 BENTON COUNTY 176 AR 3 186829 187992 187551 940 995 1058 21 16 14 30 30 42 S 3
201 201 BILLINGS COUNTY 201 VA 46 119973 122808 122879 839 873 959 14 12 12 119 115 139 S 3
205 205 BLADEN COUNTY 205 TX 43 501692 486321 492597 445 467 507 131 141 136 12 22 24 S 3
225 225 BOONE COUNTY 225 AR 3 268075 260125 254354 1174 1201 1232 27 28 19 34 44 38 S 3
237 237 BOTTINEAU COUNTY 237 VA 46 178469 188832 198508 329 407 518 55 51 37 15 21 29 S 3
247 247 BOYD COUNTY 247 WV 49 82154 89597 100605 437 460 522 3 3 4 6 5 3 S 3
248 248 BOYLE COUNTY 248 MD 20 59389 67655 83598 496 601 746 7 5 5 61 75 117 S 3
251 251 BRADFORD COUNTY 251 OR 37 74375 79555 75199 177 160 173 22 28 27 17 8 14 W 4
256 256 BRAXTON COUNTY 256 SD 41 259517 249714 260283 560 635 727 70 40 32 36 51 45 NC 1
262 262 BREVARD COUNTY 262 OR 37 139483 152152 156310 1036 884 876 16 19 17 201 151 146 W 4
268 268 BROOKE COUNTY 268 SD 41 448834 410375 421727 378 360 405 158 163 176 26 22 21 NC 1
287 287 BRYAN COUNTY 287 WA 39 42290 54172 59813 1221 1498 1719 1 2 1 518 582 647 W 4
306 306 BURLESON COUNTY 306 MN 23 414710 427986 426374 1016 1160 1320 83 57 34 56 76 76 NC 1
312 312 BUTLER COUNTY 312 AZ 4 246038 226954 0 101 109 0 31 25 0 6 17 0 W 4
323 323 CABARRUS COUNTY 323 TX 43 545670 527175 515596 1829 1891 1850 116 101 74 111 108 79 S 3
346 346 CALHOUN COUNTY 346 WA 39 112263 122214 135531 1067 1162 1378 5 6 6 83 100 101 W 4
349 349 CALLOWAY COUNTY 349 MD 20 82470 103377 106157 561 669 675 15 17 20 83 90 90 S 3
360 360 CAMP COUNTY 360 MN 23 272049 285056 286561 974 1073 1128 22 13 15 49 50 44 NC 1
378 378 CARLTON COUNTY 378 SC 40 107058 118451 143361 1015 1010 1204 5 13 13 63 70 70 S 3
385 385 CARROLL COUNTY 385 IA 12 299502 305516 308845 1111 1269 1352 49 34 27 116 152 154 NC 1
407 407 CASS COUNTY 407 GA 10 53291 59784 59016 80 94 106 18 17 17 5 4 2 S 3
409 409 CASS COUNTY 409 OK 36 255538 215672 219394 556 589 593 53 49 32 15 24 30 S 3
410 410 CASS COUNTY 410 SC 40 55992 56998 65818 278 257 313 5 5 10 16 6 6 S 3
417 417 CATAHOULA PARISH 417 NC 27 98531 99997 119053 437 524 642 22 15 22 42 70 86 S 3
421 421 CATTARAUGUS COUNTY 421 PA 38 234391 254428 249400 1283 1441 1508 11 7 6 102 101 110 NE 2
425 425 CEDAR COUNTY 425 AR 3 32003 44011 41389 182 234 259 2 6 2 6 22 16 S 3
429 429 CERRO GORDO COUNTY 429 AR 3 67044 69548 64840 368 396 381 6 6 6 13 17 20 S 3
434 434 CHAMPAIGN COUNTY 434 IA 12 330080 336666 333139 923 1029 1153 69 49 35 80 71 87 NC 1
444 444 CHASE COUNTY 444 KY 17 136869 137344 134006 1067 1088 1096 9 7 6 157 151 157 S 3
479 479 CHICOT COUNTY 479 CO 6 155465 161009 137561 160 152 128 33 33 30 10 6 6 W 4
482 482 CHIPPEWA COUNTY 482 OH 35 302456 318255 312184 1089 1279 1405 67 50 36 64 71 83 NC 1
498 498 CITRUS COUNTY 498 OR 37 1457339 1519876 1491505 442 412 409 197 171 161 28 26 9 W 4
503 503 CLALLAM COUNTY 503 OH 35 61999 63882 76664 512 545 630 2 2 3 47 34 39 NC 1
[ reached ‘max’ / getOption(“max.print”) – omitted 248 rows ]

【结果解释】
输出的结果为data数据中按照之前进行简单随机抽样抽取出来的数据位置所进行抽取的样本数据。

2. 估计

(1)定义样本权重变量,每个样本单元的权重是其入样概率的倒数

pw=rep(N/n,n);pw

【运行结果】:

pw=rep(N/n,n);pw
[1] 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667
[11] 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667 10.13667……

【结果解释】
即得到每个样本的相同的权重为10.13667。

(2)定义fpc变量。fpc变量为“svydisign”函数的参数,此处为总体容量N

fpc=rep(N,n) ;fpc

【运行结果】:

fpc=rep(N,n) ;fpc
[1] 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041
[19] 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041 3041………

【结果解释】
设置一列300个总体容量的数值。

(3)将权重变量和fpc变量加入抽到的样本单元的数据集中

 agsrswor=as.data.frame(cbind(data.srswor,pw,fpc))

【运行结果】:
简单随机抽样_第1张图片

【结果解释】
最后两列为新加入的两个变量。

(4)调用svydesign函数定义该抽样设计及抽样结果.其中,id参数定义群变量,没有使用群变量则用“0”或“1”表示;weights参数定义权重变量;data参数定义抽到的样本单元的数据集;fpc参数定义fpc变量。

 dsrswor<-svydesign(id=~1,weights = ~pw,data = agsrswor,fpc=~fpc)

(5)查看抽样设计及抽样结果。其中Probability是样本单元的入样概率。

 summary(dsrswor)

【运行结果】:

summary(dsrswor)
Independent Sampling design
svydesign(id = ~1, weights = ~pw, data = agsrswor, fpc = ~fpc)
Probabilities:
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.09865 0.09865 0.09865 0.09865 0.09865 0.09865
Population size (PSUs): 3041
Data variables:
[1] “ID_unit” “county” “cnum” “state” “snum” “acres92” “acres87” “acres82”
[9] “farms92” “farms87” “farms82” “largef92” “largef87” “largef82” “smallf92” “smallf87”
[17] “smallf82” “region” “rnum” “pw” “fpc”

(6)目标变量(acres92)均值的简单估计及其标准误差估计。第一个参数定义目标变量,第二个参数定义抽样设计和抽样结果,deff参数如果设为TRUE,则可以在结果中输出该抽样设计的设计效应,缺省值为FALSE。

 svymean(~acres92,dsrswor,deff=TRUE)

【运行结果】:

svymean(~acres92,dsrswor,deff=TRUE)
mean SE DEff
acres92 315725 28636 1

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的均值的简单估计为315725,标准误差为28636。

(7)目标变量(acres92)总值的简单估计及其标准误差估计。第一个参数定义目标变量,第二个参数定义抽样设计和抽样结果,deff参数如果设为TRUE,则可以在结果中输出该抽样设计的设计效应,缺省值为FALSE。

svytotal(~acres92,dsrswor,deff=TRUE)

【运行结果】:

svytotal(~acres92,dsrswor,deff=TRUE)
total SE DEff
acres92 960118792 87081945 1

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的总值的简单估计为315725,标准误差为28636。

(8)目标变量(acres92)均值的比率估计及其标准误差估计。第一步调用svyratio函数估计比率,第一个参数定义目标变量,第二个参数定义辅助变量,第三个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体均值,并将其设为数据框格式。第三步调用predict函数估计目标变量的均值,第一个参数定义比率的估计值,第二个参数定义辅助变量的总体均值。

 acres.ratio<-svyratio(~acres92,~acres87,dsrswor) #估计比率
 popm<-data.frame(acres87=mean(data$acres87)) #计算辅助变量的总体均值,并将其设为数据框格式
 predict(acres.ratio,popm$acres87) #估计目标变量的均值

【运行结果】:

predict(acres.ratio,popm$acres87) #估计目标变量的均值
$total
acres87
acres92 308403.9

$se
acres87
acres92 2169.339

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的均值的比率估计为308403.9,标准误差为2169.339。

(9)目标变量(acres92)总值的比率估计及其标准误差估计. 第一步调用svyratio函数估计比率,第一个参数定义目标变量,第二个参数定义辅助变量,第三个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体总值,并将其设为数据框格式。第三步调用predict函数估计目标变量的总值,第一个参数定义比率的估计值,第二个参数定义辅助变量的总体总值。

 acres.ratio<-svyratio(~acres92,~acres87,dsrswor) #估计比率
 popt<-data.frame(acres87=mean(data$acres87)) #计算辅助变量的总体均值,并将其设为数据框格式
 predict(acres.ratio,popt$acres87) #估计目标变量的均值

【运行结果】:

predict(acres.ratio,popt$acres87) #估计目标变量的均值
$total
acres87
acres92 308403.9

$se
acres87
acres92 2169.339

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的总值的比率估计为308403.9,标准误差为2169.339。

(10)目标变量(acres92)均值的回归估计及其标准误差估计。第一步调用svyglm函数估计回归系数,第一个参数定义为“目标变量~辅助变量”,第二个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体均值,并将其设为数据框格式。第三步调用predict函数估计目标变量的均值,第一个参数定义回归系数的估计值,第二个参数定义辅助变量的总体均值的数据框。

 acres.reg<-svyglm(acres92~acres87,design=dsrswor) #估计回归系数
 popm<-data.frame(acres87=mean(data$acres87)) #计算辅助变量的总体均值,并将其设为数据框格式
 predict(acres.reg,newdata=popm) #估计目标变量的均值

【运行结果】:

predict(acres.reg,newdata=popm) #估计目标变量的均值
link SE
1 308267 2069.4

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的均值的回归估计为1308267,标准误差为2069.4。

(11)目标变量总值的回归估计及其标准误差估计。第一步调用svyglm函数估计回归系数,第一个参数定义为“目标变量~辅助变量”,第二个参数定义抽样设计和抽样结果。第二步计算辅助变量的的总体总值,并将其设为数据框格式。第三步调用predict函数估计目标变量的总值,第一个参数定义回归系数的估计值,第二个参数定义辅助变量的总体均值的数据框,第三个参数定义总体单元数量。

 acres.reg<-svyglm(acres92~acres87,design=dsrswor) #估计回归系数
 popm<-data.frame(acres87=sum(data$acres87)) #计算辅助变量的总体均值,并将其设为数据框格式
 predict(acres.reg,newdata=popt,total=N) #估计目标变量的总值

【运行结果】:

predict(acres.reg,newdata=popt,total=N) #估计目标变量的总值
link SE
1 -17643239 11652430

【结果解释】
即对目标变量(acres92)利用简单随机抽样进行的总值的回归估计为-17643239,标准误差为11652430。

你可能感兴趣的:(统计学笔记,r语言,机器学习,数据挖掘)