【问题标题】:Take sample from diminishing population从人口减少中抽取样本
【发布时间】:2017-02-02 04:27:04
【问题描述】:

我想从 data.frame 中随机抽取行样本,将函数应用于子集,然后从剩余行中抽取样本,将函数应用于新子集(使用不同的参数),等等上。

一个简单的例子是,如果每个月有 5% 的人口死亡,那么在第 2 个月,我需要人口减去在第 1 个月时间死亡的人口。

我已经整理了一个非常详细的方法来执行此操作,其中包括我从采样行中保存 ID,然后从第二个时期的数据中将它们子集化,等等。

library(data.table)
dt <- data.table(Number=1:100, ID=paste0("A", 1:100))


first<-dt[sample(nrow(dt), nrow(dt)*.05)]$ID
mean(dt[ID %in% first]$Number)


second<-dt[!(ID %in% first)][sample(nrow(dt[!(ID %in% first)]),
                                 nrow(dt[!(ID %in% first)])*.05)]$ID
mean(dt[ID %in% c(first,second)]$Number)

dt[!(ID %in% first)][!(ID %in% second)] #...

显然,这在过去几个时期内是不可持续的。这样做的更好方法是什么?我想这是一种标准方法,但想不出具体要寻找什么。感谢您的所有意见。

【问题讨论】:

  • 那很好,但我怎样才能生成如上所述的那些组?也就是说,来自初始总体的一个随机子集,然后是来自总体减去子集 1 的另一个随机子集,等等。
  • 想想你的实际问题是什么。你真的想模拟 (a) 正好 5% 的人口死亡或 (b) 人口中每个成员死亡的概率为 5%?或者,您是否想将每个成员视为一个部分生命,并将每个人仍然活着的概率向前推进?
  • 嗯,这不是我真正想要的,只是一种简单的构图方法。无论哪种方式,我是否仍然需要在每个时间段从我的人口中删除“死”观察?你能指出一些相关的事情吗?

标签: r data.table


【解决方案1】:

这显示了如何“增长”已在每个间隔时间过程中以 5% 采样的项目向量:

 removed <- numeric(0)
 for ( i in 1:10){ 
    removed <- c(removed, sample( (1:100)[!(1:100) %in% removed], # items out so far
                                  (100-length(removed))*.05))  # 5% of remainder
     cat(c(removed, "\n"))  # print to console with each iteration.
     }
54 1 76 96 93 
54 1 76 96 93 81 16 13 79 
54 1 76 96 93 81 16 13 79 80 74 30 29 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 5 70 8 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 5 70 8 66 82 50 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 5 70 8 66 82 50 6 91 99 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 5 70 8 66 82 50 6 91 99 46 27 51 
54 1 76 96 93 81 16 13 79 80 74 30 29 52 33 86 19 34 32 41 62 5 70 8 66 82 50 6 91 99 46 27 51 22 23 20 

请注意,添加到“删除”列表中的实际项目数量将会减少。

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 2015-09-17
    • 2021-01-20
    • 2017-12-06
    • 2020-07-15
    • 2022-11-23
    • 2020-11-01
    • 2016-03-07
    相关资源
    最近更新 更多