R语言分层抽样(strata函数)

library(sampling)

strata(data,stratanames=NULL,size,method=c("srswor","srswr","poisson","systematic"),pik,description=FALS)

stratanames: 进行分层所依据的变量名称。

size: 各层中要抽出的观测样本数。

method: 选择4中抽样方法,分别为无放回、有放回、泊松、系统抽样,默认为srswor

pik: 设置各层中样本的抽样概率。

description: 选择是否输出含有各层基本信息的结果。

举例说明:

A、B、C分别为分类变量

A有2个分类变量,B有5个分类变量,C有2个分类变量

第一步按照这三个变量进行排序

sourui=sourui[order(sourui$A,sourui$B,sourui$C),]

第二步筛选变量,size参数对应20个比例20=2*5*2,比例可以自己设置

sub_train=strata(sourui,stratanames=c("A","B","C"),
                 size=c(21,269,806,2325,3420,1972,2474,1500,1419,741,3,7,58,42,313,70,685,209,696,210),

                 method="srswor")

第三步:分为训练集和测试集,ID_unit变量在第二步产生。

data_train <- sourui[sub_train$ID_unit,]
data_test  <- sourui[-sub_train$ID_unit,]

猜你喜欢

转载自blog.csdn.net/c1z2w3456789/article/details/80572243