Как получить доверительные интервалы для ATT с помощью Match()

Я использую библиотеку Match() в R, и мне нужен CI для ATT.

  1. Есть ли способ получить это? Я хочу использовать оценки склонности при расчете ATT и CI.

  2. Как это будет рассчитываться? (т.е. какая будет формула и почему?)

Ура,

PS: я смотрел на них, но это было не совсем то, что я искал: https://stats.stackexchange.com/questions/132509/confidence-interval-for-average-treatment-effect-from-propensity-score-weighting

и: https://stats.stackexchange.com/questions/238431/is-the-average-treatment-effect-on-the-treated-att-a-meaningful-comparison-in

PS2: Соответствующий кусок кода прилагается; после нахождения баланса я пытаюсь получить КИ с помощью метода regression+confint(), но это не работает, потому что я не знаю, как передать оценки склонности, и я навязываю модель регрессии (я уверен, что это не нужно, но я знаю только функцию confint для КИ).

(3) Using the Match() help file code example as a guide, use propensity score matching to produce an estimated treatment effect and confidence interval. Report your results.

```{r}
library(Matching)

DataFrame=as.data.frame(data1)

# Estimate the propensity model

glm1  <- glm(treat~age + I(age^2) + education + I(education^2) + black +
             hispanic + married + nodegree + re74  + I(re74^2) + re75 + I(re75^2) , family=binomial, data=DataFrame)
#save data objects
X  <- glm1$fitted
Y  <- DataFrame$re78
Tr  <- DataFrame$treat

# One-to-one matching with replacement (the "M=1" option).
# Estimating the treatment effect on the treated (the "estimand" option defaults to ATT==Average Treatment effect for Treated).
rr  <- Match(Y=Y, Tr=Tr, X=X, M=1);
summary(rr)
```
Finding Balance:

```{r}
# Let's check the covariate balance:
mb  <- MatchBalance(treat~age + I(age^2) + education + I(education^2) + black +hispanic + married + nodegree + re74  + I(re74^2) + re75 + I(re75^2), data=DataFrame, match.out=rr, nboots=500)

rr1  <- Match(Y=Y, Tr=Tr, X=X, M=1,Weight.matrix=);

#After obtaining balance, find ATT 
rr1  <- Match(Y=Y, Tr=Tr, X=X, M=1);
summary(rr1)
```

Find a way to obtain CIs - Doesnt work:
```{r}
X<-mb
Y<-re78
RegressionOnMatched<-lm(re78~X,data = )
confint(RegressionOnMatched)
#mean(rr$re78)
#quantile(rr$re78, c(0.025, 0.975))
```

1 ответ

Я считаю, что ваша проблема - это аргумент, который вы передаете квантилю. Попробуй это:

ci_upper <- 2*mean(rr$re78) - quantile(rr$re78, 0.025)    
ci_lower <- 2*mean(rr$re78) - quantile(rr$re78, 0.975)
ci <- c(ci_lower, ci_upper)
Другие вопросы по тегам