2015-01-24 2 views
2

я выполнил стратификацию на счет предрасположенности с помощью пакета MatchIt:Стратификация по оценке склонности: как я могу рассчитать коэффициент дисперсии?

install.packages("MatchIt") 
library(MatchIt) 

# Stratification on the propensity score 

stra <- matchit(treat ~ X1 + X2 + X3, data = data.mc, , method = "subclass") 
smry.stra <- summary(stra, standardize = TRUE) 
data.stra <- match.data(stra) 

Теперь я хотел бы, чтобы вычислить отношение дисперсии оценки склонности между лечением и контрольной группой. Могу ли я просто рассчитать отклонения от общей группы лечения и контроля?

stra.ratio <- var(data.stra$distance[data.stra$treat == 1])/
var(data.stra$distance[data.stra$treat == 0]) 

Или мне нужно было бы как-то рассмотреть слои и массы пластов?

спасибо, что заблаговременно!

+0

Это, кажется, больше просьбы о статистической консультации. Возможно, вы могли бы включить ссылку на страницу, в которой описывается, как «отношение дисперсии» (независимо от того, что может быть в контексте оценки успеха в сопоставлении) _should_ должно быть рассчитано, если вы хотите, чтобы это было конкретным вопросом кодирования. –

+0

После сопоставления без расслоения, например. Ближайшее сопоставление соседей, коэффициент дисперсии вычисляется следующим образом: отношение = группа обработки вариаций/группа контроля дисперсии. Я просто не знал, если и как я должен учитывать страты и веса в случае стратификации по оценке склонности. – JSP

ответ

2

Из документации пакета, описание значения weights:

«Каждый согласованный блок управления имеет вес, пропорциональный количеству единиц обработки, к которому она была совпадают, а сумма контроля вес равен числу однозначно соответствующих блоков управления. "

Это указывает мне, что да, мы должны принять взвешенное отклонение. Меня не удивит, если взвешенная дисперсия лечения всегда будет равна взвешенной дисперсии, так как весы всегда должны быть едины, но мы определенно увидим разницу в контрольной дисперсии.

Вот воспроизводимый пример, используя данные, которые пришли с MatchIt пакета:

library(MatchIt) 
library(SDMTools) 

data(lalonde) 

stra <- matchit(treat ~ age + educ + black + hispan + married + nodegree, data = lalonde, method = "subclass") 
data.stra <- match.data(stra) 
treatment <- data.stra[data.stra$treat == 1, ] 
control <- data.stra[data.stra$treat == 0, ] 
stra.ratio <- wt.var(treatment$distance, treatment$weights)/wt.var(control$distance, control$weights) 
+0

Большое спасибо! Я пробовал так, и это сработало отлично! – JSP

Смежные вопросы