0

在 RI 中使用 sample.int 正在为两个群体(在示例中为 10 个人)抽取随机样本。如果概率有很小的变化,比如从 c(0.5,0.5) 到 c(0.51, 0.49) 的变化,我希望采样或多或少保持不变,即大多数人将被分配相同的抽签(例如,如果我们有 100 个人口,也许 1 个人会改变他们的分配)。如何做到这一点?

set.seed(123)
probs.1<-c(0.51,0.49)
sample.int(n=2,
           replace = TRUE,
           size=10,
           prob=probs.1)
#[1] 1 1 2 2 2 2 1 1 2 1

set.seed(123)
probs.2<-c(0.5,0.5)
sample.int(n=2,
           replace = TRUE,
           size=10,
           prob=probs.2)
#[1] 2 2 1 1 1 1 2 2 1 2
4

1 回答 1

0

我认为最好的方法是让你的第二个样本基于你的第一个样本,但只需让每个主题都有一个小概率改变组:

set.seed(123)
probs.1 <- c(0.5, 0.5)
sample1 <- sample.int(2,  100, TRUE, probs.1)
sample2 <- ifelse(sample1 == 1, 1 + rbinom(length(sample1), 1, 0.02), 2)

这意味着样本几乎相同:

head(sample1)
#> [1] 2 1 2 1 1 2

head(sample2)
#> [1] 2 1 2 1 1 2

但是一个主题(在这个例子中)已经切换了组:

table(sample1)
#> sample1
#>  1  2 
#> 47 53

table(sample2)
#> sample2
#>  1  2 
#> 46 54

reprex 包于 2020-11-21 创建(v0.3.0)

于 2020-11-21T15:05:15.367 回答