理解 R

如何解决理解 R

我正在尝试使用贪婪匹配进行我的第一个匹配对分析。我一直在关注 Coursera 课程示例,但我不确定我是否应该对匹配结果感到满意。

这是我为贪婪匹配而运行的:

    library(Matching)

    set.seed(123)

    n = 1500
    id <- 1:n

    score <- rnorm(n,mean=.5,sd=.13)
    location <- sample(c("A","B"),n,replace=TRUE)

    treatment <- rep(0,n)
    tr_subset <- sample(n,n*.1)
    treatment[tr_subset] = 1

    outcome <- rep(0,n)
    ot_subset <- sample(n,n*.63)
    outcome[ot_subset] = 1

    data_set <- data.frame(id,location,score,treatment,outcome)

    #prepare for matching
    loc_a <- as.numeric(location =="A")
    loc_b <- as.numeric(location =="B")

    prematch <- cbind(loc_a,loc_b,outcome)
    prematch <- data.frame(prematch)

    #variables that will be used for matching
    xvars<-c("loc_a","loc_b","score")

    #greedy matching
    greedymatch<-Match(Tr=treatment,M=1,X=prematch[xvars])

    matched<- 
    prematch[unlist(greedymatch[c("index.treated","index.control")]),]

我遇到了以下“问题”。

  • 即使我设置了 M=1,我也会得到多个匹配到 1 个处理的结果。例如,这里有一个匹配 4 个控件:

治疗

loc_a loc_b 得分 治疗 结果
282 1 0 .544612 1 0
282.1 1 0 .544612 1 0
282.2 1 0 .544612 1 0
282.3 1 0 .544612 1 0

控制

loc_a loc_b 得分 治疗 结果
760 1 0 .545 0 1
1045 1 0 .545014 0 1
1060 1 0 .544711 0 0
1241 1 0 .544997 0 1
  • 此外,如果处理与多个对照匹配,它会创建处理的多个重复行(见上文)
  • 对照组中的一些人与治疗组中的多个人匹配:

治疗

loc_a loc_b 得分 治疗 结果
644 1 0 .480298 1 0
1139 1 0 .480262 1 0
1206.1 1 0 .48056 1 0
1218.1 1 0 .480588 1 0

控制

loc_a loc_b 得分 治疗 结果
1404 1 0 .48038 0 1
1404.1 1 0 .48038 0 1
1404.2 1 0 .48038 0 1
1404.3 1 0 .48038 0 1

这些问题是我需要解决的问题还是贪婪匹配工作原理的一部分?

我很难找到在 R 中使用 Matched() 进行贪婪匹配的好例子。您还知道一般贪婪匹配的任何好资源吗?

解决方法

这是因为 Match() 中有几个默认值。

第一种情况是由于 distance.toleranceties 参数给 Match()。默认情况下,distance.tolerance1e-5,这意味着距离处理单元 1e-5 或更短距离内的任何控制单元都将被视为与处理单元等距。因此,例如,控制单元 760、1045、1060 和 1241 都在处理单元 282 的 1e-5 内。由于 ties 参数默认为 TRUE,因此将包括任何关系在比赛中。在这里,这四个控制单元是绑定的,因此它们都与处理过的单元匹配(并且每对的权重为 0.25)。为了防止这种情况发生,您可以设置 ties = FALSE,在这种情况下,将选择一个控制单元与每个处理过的单元相匹配。设置 distance.tolerance = 0 还可以确保尊重距离之间的任何差异,而不是四舍五入为零。

第二种情况是由于 replace 参数,默认情况下为 TRUE,因此执行匹配替换。这意味着每个控制单元可以与多个处理单元匹配,如果它与这些处理单元最接近。要在不替换的情况下执行匹配(这似乎是您想要的),请设置 replace = FALSE

请注意,Matching 并不是唯一进行贪婪匹配的包; MatchIt 也可以,并且具有符合您期望的默认值,尽管并非所有选项都可用。例如,默认情况下,Matching::Match() 执行欧几里德距离匹配,而 MatchIt::matchit() 中的默认值是倾向得分匹配。 MatchIt 中的欧几里得距离匹配需要一些额外的编程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res