首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我同时使用倾向分数时,如何将R中匹配函数的确切参数应用于一个变量

当我同时使用倾向分数时,如何将R中匹配函数的确切参数应用于一个变量
EN

Stack Overflow用户
提问于 2016-04-27 21:20:02
回答 1查看 1.3K关注 0票数 0

我想用R中{ Match }的匹配函数,以倾向评分为距离,以一对一匹配为匹配方法,估计平均治疗效果(ATT)。在相同的匹配模型中,我想使用确切的参数并将其应用于一个特定的变量。

在运行logit函数来估计倾向得分之后,如下所示:

代码语言:javascript
复制
glm1 <- glm(treat~AREA_HA + SUMVIV_TOT + SUMPOB + COUNT + luz + potable + cocina_ele + altitudeme + river_mean + 
          paved_mean + unpaved_me + VDep_mean + VNacional_ + VVecinal_m + temp_mean + rain_mean + dccpp_mean + 
          distfloss_ + idh_mean + bmass_mean + slope_mean + distANP_me + ker10_mean + titled + for10 + for10_per + 
          floss_yr001 + floss_yr002 + floss_yr003 + floss_yr004 + floss_yr005 + floss_yr006 + floss_yr007 + floss_yr008 + 
          floss_yr009 + floss_yr010, family=binomial, data=comm.vars6)

在运行Match函数时,我尝试将确切的参数应用于变量26 ("titled")。代码如下:

代码语言:javascript
复制
rr1 <- Match(Y=Y, Tr=Tr, X=glm1$fitted, exact = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0), M=1, replace = T)

然而,我收到了以下警告信息:

代码语言:javascript
复制
Warning message:
In Match(Y = Y, Tr = Tr, X = glm1$fitted, exact = c(0, 0, 0, 0,  :
length of exact != ncol(X). Ignoring exact option

我相信这是一个与X的结构有关的问题(=glm1 1$拟合)。因为当我使用以下矩阵时:

代码语言:javascript
复制
 Z<-with(comm.vars6,data.frame(AREA_HA , SUMVIV_TOT , SUMPOB , COUNT , luz , potable , cocina_ele , altitudeme , river_mean , 
                 paved_mean , unpaved_me , VDep_mean , VNacional_ , VVecinal_m , temp_mean , rain_mean , dccpp_mean , 
                 distfloss_ , idh_mean , bmass_mean , slope_mean , distANP_me , ker10_mean , titled , for10 , floss_yr001
                 , floss_yr002 , floss_yr003 , floss_yr004 , floss_yr005 , floss_yr006 , floss_yr007 , floss_yr008 , 
                 floss_yr009 , floss_yr010 , for10_per))

作为X和重新运行匹配函数:

代码语言:javascript
复制
rr1 <- Match(Y=Y, Tr=Tr, X=Z, exact = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0), M=1, replace = T)

很好用!

为了能够同时使用倾向分数(glm1 1$拟合)和“标题”的确切参数=1,代码应该是什么样的呢?

EN

回答 1

Stack Overflow用户

发布于 2016-04-27 23:10:48

下面是使用两个变量: PS (距离匹配)和标题(精确匹配)的函数应该是什么样子的粗略草图:

代码语言:javascript
复制
# get X mat
myMatchMat <- data.frame("PS"=glm1$fitted, "trim"=comm.vars6$trim)
# match
rr1 <- Match(Y=Y, Tr=Tr, X=X, exact = c(0, 1), M=1, replace = T))

因为您没有提供数据集,所以我无法测试代码,所以可能需要进行一些更改,但这就是Match函数的工作方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36901116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档