R-对两个相关变量进行采样

时间:2018-10-05 00:29:32

标签: r distribution correlation sampling multinomial

我有两个多项式变量(例如年龄组和肤色)。

ageGroup <- c(35,40,45,50)
color    <- c("Red", "Blue", "Yellow")

我希望能够以相同的概率为100个观测值绘制这两个变量。

n = 100
age   <- sample(ageGroup, 100, replace = T)
color <- sample(color,    100, replace = T)

如果我们假设某些观察到的频率表显示35岁和40岁也不能是“红色”,那么我该如何采样这两个年龄组在哪些地方有相同的可能性绘制“蓝色”和“黄色”(而不是“红色”)?

我应该将抽样分成不同的年龄段吗?还是有一种更复杂的统计方法?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是一种方法。我不确定它是否满足您的“均等概率”要求。我设置的方式是,color-ageGroup的每个“允许”组合都将以相同的概率绘制。

# sample data
ageGroup <- c(35,40,45,50)
color    <- c("Red", "Blue", "Yellow")

# get all combinations of ageGroup and color
df <- expand.grid(ageGroup, color)
names(df) <- c("ageGroup", "color")

# remove red-35 and red-40
subdf <- df[!(df$color=="Red" & df$ageGroup %in% c(35, 40)), ]

# sample from the remaining combinations, each with equal probability
N <- nrow(subdf)
result <- subdf[sample(1:N, 100, T), ]