이항 로지스틱을 이용한 쌍 별 비교

choyunjeong·2025년 1월 14일

1. Treatment assignment mechanism given a binary logistic model in data generated by a multinomial logistic mechanism

- Log probability ratio\text{Log probability ratio}

logPr1v0 <- lstParams$alpha10 + as.matrix(data1[,paste0('X',c(1:10))]) %*% lstParams$alpha1X

logPr2v0 <- lstParams$alpha20 + as.matrix(data1[,paste0('X',c(1:10))]) %*% lstParams$alpha2X

logPr2v1 <- logPr2v0 - logPr1v0

\\[20pt]

- Probability ratio\text{Probability ratio}

pr1v0    <- exp(logPr1v0)

pr2v0    <- exp(logPr2v0)

pr2v1    <- exp(logPr2v1)

\\[20pt]

  • 범주가 3개인 데이터에서 이항 로지스틱 모형으로 쌍별 비교를 할 경우, 세 개 (1 vs 0(1 \text{ vs } 0, 2 vs 02 \text{ vs } 0, 2 vs 1)2 \text{ vs } 1)의 로지스틱 모형이 필요하다. 여기서는 1 vs 01 \text{ vs } 0만 알아보았다.

- Individual treatment probabilities (True propensity score)\text{Individual treatment probabilities (True propensity score)}

denom    <- 1 + pr1v0
p0       <- 1 / denom
p1       <- pr2v1 / denom

\\[10pt]

P(Ti=0Xi=xi)=11+exp(α10+α1XTXi)P(Ti=1Xi=xi)=exp(α10+α1XTXi)1+exp(α10+α1XTXi)P(T_i=0|X_i=x_i)=\dfrac{1}{1+\text{exp}(\alpha_{10}+\alpha_{1X}^T X_i)} \\[10pt] P(T_i=1|X_i=x_i)=\dfrac{\text{exp}(\alpha_{10}+\alpha_{1X}^T X_i)}{1+\text{exp}(\alpha_{10}+\alpha_{1X}^T X_i)}

\\[40pt]

2. Fit binary logistic regression (1 vs 0)

data$Tr_pair = data[,'Tr']
data1 = data[data[,'Tr'] != 0,] %>% 
        mutate(Tr = if_else(Tr == min(Tr), 0, 1)); head(data1)

resLogi = glm(formula = Tr ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10,
              data    = data1,
              family  = "binomial")
              
psData = as.data.frame(predict(resLogi, type = "response"))

psVars <- sprintf("%sv%s", max(unique(data1$Tr_pair)), min(unique(data1$Tr_pair)))

colnames(psData) <- paste0("PS_", psVars)

data2 = cbind(data1,psData); head(data2)

이후 성향점수 추정 및 가중치 방법은 앞 방법과 동일하다.

IPTW=Ze(x)+1Z1e(x)IPTW= \dfrac{Z}{e(x)}+\dfrac{1-Z}{1-e(x)}

0개의 댓글