- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 120 个实验对象和 147 个对照的数据框。我想让两组 100 人在年龄、性别和 BMI 上匹配。
使用 MatchIt 包:
match.it <- matchit(group ~ age + sex + bmi , data, method="nearest", ratio=1)
summary(match.it)$nn #return sample sizes
Control Treated
All 147 120
Matched 120 120
Unmatched 27 0
Discarded 0 0
您可以看到它会自动返回等于最小原始样本大小的样本大小。我想强制它只保留 100 个控制和 100 个处理过的样本,但我不想指定是哪些。我已经搜索了文档,但没有看到指定匹配样本大小的方法(仅处理与控制的比率)。
谢谢
更新:我能够使用 summary(match.it)$match.matrix 返回匹配的主题并将它们放入新的数据框中。我还包括了它们的距离并计算了每对距离之间的差异。如果我要用它来选择 100 对,我应该选择距离差异最小的那些,还是平均距离最小的,或者其他的。我对数学不够熟悉,无法确切知道如何解释距离。
编辑:修复了代码中的错字
最佳答案
我将简要说明我是如何解决我的问题的,然后在我有更多时间时尝试返回更详细的说明,包括一些代码。
matchit() 函数将按行号 [["matched.matrix"]] 返回匹配案例列表,而 match.data() 函数将返回具有原始数据的匹配案例,以及距离度量每个案例都是通过最近邻法计算的。
请记住,我真的不知道如何解释距离度量,所以我尝试了几种不同的方法来挑选最好的 100 对。我用每一对连续制作了一个数据框,并计算了距离的绝对差和距离的平均值。然后我测试了 100 对的不同子集,用于治疗组和对照组之间的年龄、性别和 BMI 的 t 检验。这五个小组是; 1. 随机选择 100 对, 2. 基于平均距离的前 100 对, 3. 基于平均距离的后 100 对, 4. 基于距离差异的前 100 对,以及 5. 基于距离差异的后 100 对。
在我的数据集中,第 5 组产生了最好的结果(各组之间在年龄、性别和 BMI 方面的差异最小)。我不确定这些结果是否会扩展到其他数据集,但如果更接近的差异意味着更接近匹配的案例,那是有道理的。
抱歉,如果我的冗长解释不是很清楚。我会尝试稍后回来编辑它以添加示例代码并清理它。
关于r - 如何在 R 中使用 matchit() 指定样本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48997122/
我是一名优秀的程序员,十分优秀!