【问题标题】:Sample matrix in RR中的样本矩阵
【发布时间】:2018-09-01 00:46:08
【问题描述】:

我正在尝试创建两个矩阵,一个可以用 0 和 0.25 填充,另一个可以用 0 和 1 填充。

vector <- c()
for(i in 1:1000){
  dummy_qt <- as.data.frame(matrix(sample(c(0, 0.25), 44, replace = TRUE), 4, 11))
  colnames(dummy_qt) <- c(2005:2015)
  boot_qt <- dummy_qt %>%
    summarise_all(funs(sum)) %>%
    sum()/11

  dummy_y <- as.data.frame(matrix(sample(c(0, 1), 44, replace = TRUE), 4, 11))
  colnames(dummy_y) <- c(2005:2015)
  boot_y <- dummy_y %>%
    mutate(sumrow = rowSums(.)/11) %>%
    select(sumrow) %>%
    sum()

  qt_y <- sum(boot_qt, boot_y)
  vector[i] <- qt_y
}

创建矩阵后,我运行一个数学公式,并将其放入一个向量中。但是,我知道矩阵 dummy_qt 可以得到的最大值是 1,而 dummy_y 是 4,如果矩阵内的所有值对于第一个矩阵为 0.25,对于第二个矩阵为 1,则最终结果为 5。

例如:

dummy_qt <- as.data.frame(matrix(0.25, 4, 11))
dummy_y <- as.data.frame(matrix(1, 4, 11))
boot_qt <- dummy_qt %>%
    summarise_all(funs(sum)) %>%
    sum()/11
boot_y <- dummy_y %>%
    mutate(sumrow = rowSums(.)/11) %>%
    select(sumrow) %>%
    sum()
qt_y <- sum(boot_qt, boot_y)

每当我运行它时,通常直方图显示我只得到 0 到 3.25 之间的值,这并不能反映现实。这么说,我想知道出了什么问题,因为它们应该在 0 和 5 之间变化。

【问题讨论】:

  • 我不太清楚你的问题是什么。使用set.seed(42) 运行上面的示例,我得到了这些分位数1.636364 2.295455 2.500000 2.727273 3.386364。为什么您会期望这些值达到极端?
  • @Val 如果您查看我的第二个代码示例,其中一个矩阵的所有值都是 0.25,而另一个矩阵的所有值都是 1,那么我希望它是 5。
  • 但是您专门将其设置为所有0.25 或所有1 ...随机抽样(如您上面的示例)发生的机会非常低......所以如果你至少有一个不同的值,它不能是 0 或 5
  • 问题是,尽管知道采样到那个极端的机会很低,但我仍然希望它偶尔会更高一点。我遇到的问题是,由于这反映了一个真实的案例场景,我们确实经常看到等于 5 的值,我不确定如何验证它。但可能这是一个统计问题,而不是编码问题。我只是想知道是否有任何编码选项可以获得更多的极端值。
  • 听起来像是一个统计问题......也许你的真实案例场景并不那么随机。使用sample,您可以设置概率,但这无助于更频繁地获得两个极端

标签: r matrix random statistics


【解决方案1】:

简而言之,正如@Val 所建议的那样,这确实是一个概率问题。要将sum(boot_qt, boot_y) 观察为5,您需要dummy_qt 的所有元素为0.25,dummy_y 的所有元素为1。概率为2^(-88) =~ 0.32 * 10^(-26)

要看到这一点,尝试减少dummy_qtdummy_y 的行数和列数,你会发现你离上限更近了。

例如,如果nrnc 分别表示两个矩阵的行数和列数,那么您将以2^(-2 * nr * nc) 的概率一次尝试达到上限。假设

nr <- nc <- 3

我们尝试了 1000 次。那么至少观察一次 3.75(上限)的概率为

1 - (1 - 2^(-2 * nr * nc))^1000
# [1] 0.003807438

仍然非常低,但不再像最初的情况那样基本上为零。或者,您可能希望增加条目为 0.25 或 1 的概率。

所以现在让我们写下一般概率。设N为尝试次数,p1为绘制0.25的概率,p2为绘制1的概率。那么至少绘制一次上限的概率为

1 - (1 - (p1 * p2)^(-2 * nr * nc))^iter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多