我有一个大型数据集,包含大约400个健康主题的基础研究。我想把他们分成训练和验证队列。我想随机分裂,但由于年龄差异大,女性多于男性,我想与他们匹配,让两组男性和女性的比例相同/相同,年龄相似。按照年龄和性别划分培训和验证子集的数据框
由于没有区别(像患者和对照),我没有预先匹配他们的组 - 就像MatchIt -package。
有没有人有想法?
我有一个大型数据集,包含大约400个健康主题的基础研究。我想把他们分成训练和验证队列。我想随机分裂,但由于年龄差异大,女性多于男性,我想与他们匹配,让两组男性和女性的比例相同/相同,年龄相似。按照年龄和性别划分培训和验证子集的数据框
由于没有区别(像患者和对照),我没有预先匹配他们的组 - 就像MatchIt -package。
有没有人有想法?
randomizr包可能是你正在寻找。它允许分层随机化,因此您可以在培训和验证集之间随机抽样,同时按年龄和性别进行分层。您可能必须创建年龄段才能使其工作。
randomizr
:
Z <- block_ra(block_var = gender)
这将创建零和一的向量给每个性别到Z = 1,如果你想在分层多东西
,也许类似的一半
Z <- block_ra(block_var = paste0(gender, age_cat))
如果您需要在许多变量上同时分层,我建议使用blockTools
包。