【问题标题】:How can I calculate probability for SRSWR (Simple Random Sampling with Replacement) in R?如何计算 R 中 SRSWR(带替换的简单随机抽样)的概率?
【发布时间】:2021-06-04 10:39:44
【问题描述】:

A 和 B 是 2 个大小为 50 的样本,从 100 个观察值(有替换)池中创建。 A 和 B 的共同观测值不超过 10 个的概率是多少?或者,可以创建多少个这样的样本,以便 A B 有最多 10 个共同观察值。例如Obs 1,...50 在 A 和 51,...100 在 B,或 1,3,5,...,99 在 A,2,4,...,100 在 B。 此外,是否可以对 8 个大小为 50 的样本而不是仅 2 个样本重复相同的练习?如何在 Excel 或 R 中计算?

【问题讨论】:

标签: r excel probability


【解决方案1】:

由于您在这里而不是在Mathematics Stack Exchange 中提出了这个问题,我假设您想使用模拟来估计上述概率,而不是直接计算概率。

A 和 B 的共同观测值不超过 10 个的概率是多少?

在 R 中,我们可以通过获取 2 个样本来估计这个概率,每个样本有 50 个元素,检查它们是否包含超过 10 个共同的数字,并重复这个过程,同时跟踪满足这个条件的迭代。使用 1000000 次迭代的概率估计如下:


# total iterations
n = 1000000

# Increases when samples don't share more than 10 observations
count = 0

# population
pop = 1:100

# Loop for checking the condition n times
for(i in 1:n){

  # obtain 2 samples each of size 50 (It is assumed that values in 
  # each sample can not repeat and that there is replacement after each sample is obtained)

  sam1 = sample(pop, 50)
  sam2 = sample(pop, 50)

  # Count values found in both samples
  # Takes advantage of the fact that TRUE values can be used as 1s in R
  total = sum(sam1 %in% sam2)

  # Increase counter if there are 10 or less matches
  if(total <= 10) {
    count = count + 1
   }
}

# Print the probability
print(count/n)

对于关于 8 个样本的问题,您可以使用 8 个样本而不是 2 个样本重复上述代码,并按照here 的描述查找交叉点。

注意: 因为有很多可能的样本对 (choose(100, 50)^2) 和八个样本的集合 (choose(100, 50)^8),所以这些概率可能是如此之小,以至于模拟需要非常大的样本量才能观察到满足问题标准的一对。

直接计算概率

我建议您在Mathematics Stack Exchange 中提出您的问题。我发现这对post 有一些有用,关于类似的问题。

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多