我有大约400个健康受试者的大型数据集用于基础研究。我想把它们分成训练和验证队列。我考虑过随机分裂,但由于年龄差异很大,女性多于男性,我希望将它们匹配为两组,男女比例相似/相同,年龄相似。
由于没有差异(如患者和对照),我事先没有任何组来匹配它们 - 比如 MatchIt -package。
有没有人有想法?
答案 0 :(得分:0)
randomizr包可能是您正在寻找的。它允许分层随机化,因此您可以在训练和验证集之间随机化您的样本,同时按年龄和性别进行分层。您可能需要创建年龄箱才能使其正常工作。
答案 1 :(得分:0)
+-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+
| aInst | p1 | bInst | p2 | cInst |
+-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+
| <http://www.example.com/sample#elsaid> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#history> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#califieri> |
| <http://www.example.com/sample#califieri> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#history> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#elsaid> |
| <http://www.example.com/sample#wu> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#finance> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#singh> |
| <http://www.example.com/sample#singh> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#finance> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#wu> |
+-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+
中的:
randomizr
这将创建一个零和一个向量,将每个性别的一半分配给Z = 1.
如果你想对多个事情进行分层,可能就像
Z <- block_ra(block_var = gender)
如果您需要同时对许多变量进行分层,我建议使用Z <- block_ra(block_var = paste0(gender, age_cat))
包。