#五、倾向得分匹配&ATT
##1-1平衡性检验
#install.packages("MatchIt")
library("MatchIt")
for(i in 1:nrow(newdata)){
if(newdata$a285[i]==1){newdata$ifinternet[i]=0}
else {newdata$ifinternet[i]=1}
}
table(newdata$ifinternet)
#1-2基本处理
##以互联网为例,对新媒介进行匹配;#nearest加了replace处理( replace=TRUE)
library(dplyr)
library(Zelig)
internet.out<-matchit(ifinternet~gender+age+hunyin+edu+lnincome_fam+a35+v458+a36+east+west, method="nearest",data =newdata,distance = "glm",link="probit",estimand = "ATT")
internet.out
internet.out
summary(internet.out) ##控制组和处理组
#不同的方法用不同的method参数
z.att <- zelig(a15~ifinternet+gender+age+hunyin+edu+lnincome_fam+a35+v458+a36+east+west, model = "ls",
data=match.data(internet.out)) %>%
ATT(treatment = "ifinternet") %>%
get_qi(qi = "ATT", xvalue = "TE")
att.mean<-mean(z.att)
att.sd<-sd(z.att)
t.value<-att.mean/att.sd
pvalue<-1-pt(t.value,1000)
pvalue
start.p<-ifelse(pvalue<=0.001,"***",
ifelse(pvalue<=0.05,"**",
ifelse(pvalue<=0.1,"*","不显著")))
#最终结果,如果改方法,那就改第9行的method
c(round(att.mean,4),round(att.sd,4),round(t.value,4),round(pvalue,4),start.p)
R语言ATT
最新推荐文章于 2023-10-05 19:52:47 发布