【发布时间】:2017-06-13 20:58:16
【问题描述】:
我有一个包含大约 400 名健康受试者的大型数据集,用于基础研究。我想将他们分成培训和验证队列。我考虑过随机拆分,但由于年龄差异很大,而且女性比男性多,我想将他们匹配成两组,男女比例相似/相同,年龄分布相似。
由于没有区分(如患者和对照),我没有事先匹配它们的组 - 就像 MatchIt 包一样。
有人有想法吗?
【问题讨论】:
标签: r
我有一个包含大约 400 名健康受试者的大型数据集,用于基础研究。我想将他们分成培训和验证队列。我考虑过随机拆分,但由于年龄差异很大,而且女性比男性多,我想将他们匹配成两组,男女比例相似/相同,年龄分布相似。
由于没有区分(如患者和对照),我没有事先匹配它们的组 - 就像 MatchIt 包一样。
有人有想法吗?
【问题讨论】:
标签: r
randomizr 包可能正是您想要的。它允许分层随机化,因此您可以在训练集和验证集之间随机化样本,同时按年龄和性别进行分层。您可能必须创建年龄箱才能使其正常工作。
【讨论】:
在randomizr:
Z <- block_ra(block_var = gender)
这将创建一个由 0 和 1 组成的向量,将每个性别的一半分配给 Z = 1。
如果你想对多个事物进行分层,可能是这样的
Z <- block_ra(block_var = paste0(gender, age_cat))
如果您需要同时对多个变量进行分层,我建议您使用blockTools 包。
【讨论】: