根据三个不同的分类变量创建相似的样本

时间:2018-07-12 21:01:45

标签: sql r

我试图进行分析,试图根据三个不同的属性创建两个相似的样本。我想先创建这些样本,然后进行分析以查看这两个样本中哪个更好。类别变量为sales_group,age_group和国家/地区。因此,我想制作两个样本,例如两个样本中的国家/地区比例,年龄和销售情况相似。

例如:样本A和B中包含以下变量: ID国家/地区年龄销售

国家/地区在样本A中的比例为:

美国-58% 英国-22% 印度-8% 法国-6% 德国-6%

样本B中的国家/地区比例为: 印度-42% 英国-36% 美国-12% 法国-3% 德国-5%

其他分类变量也是如此:age_group和sales_group

预先感谢帮助

1 个答案:

答案 0 :(得分:0)

您不需要建立特殊的抽样程序,因为一个抽样比例是人口比例的无偏估计。假设您有> 1000个观测值,并且您要采样的样本超过了30个样本,那么估计值将非常准确(中心极限定理)。 您可以在下面的模拟中看到它:

set.seed(123)
n <- 10000 # Amount of rows in the source data frame
df <- data.frame(sales_group = sample(LETTERS[1:4], n, replace = TRUE), 
                 age_group = sample(c("old", "young"), n, replace = TRUE), 
                 country = sample(c("USA", "UK", "India", "France", "Germany"), n, replace = TRUE),
                 amount = abs(100 * rnorm(n))) 

s <- 100 # Amount of sampled rows
sampleA <- df[sample(nrow(df), s), ]
sampleB <- df[sample(nrow(df), s), ]

table(sampleA$sales_group)
# A  B  C  D 
# 23 22 32 23 

table(sampleB$sales_group)
# A  B  C  D 
# 25 22 28 25 

免责声明:但是,如果您所占比例很小或非常大且样本太少,则需要使用一些高级程序,例如Laplace smoothing