Added functions for the PCBM and PCBSM

This commit is contained in:
2025-05-26 11:04:03 +02:00
parent 28e43dee33
commit 0a8437fc48
7 changed files with 686 additions and 0 deletions

25
R/select_weight.R Normal file
View File

@ -0,0 +1,25 @@
## File Name: select_weight.R
## File version: 1.0
#' Compute confounding weights for the PCBSM.
#'
#' This function computes weights to be included in a PCBSM as a covariate accounting for unobserved confounding. Obtained by extracting response residuals from a probit model with grp as dependent variable and confounders and instruments as independent variables.
#'
#' @param df data.frame containing the data
#' @param grp string containing the name of the column where the group membership variable is stored in df
#' @param X vector of strings containing the name of confounders to be included in the model
#' @param instr vector of strings containing the name of instrumental variables to be included in the model
#' @return A vector of weights to be included in a PCBSM
#' @export
select_weight <- function(df=NULL,grp=NULL,X=NULL,instr=NULL) {
formu <- paste0(grp,"~")
formu2 <- paste(X,sep="+",collapse="+")
formu3 <- paste(instr,sep="+",collapse="+")
formu2 <- paste(formu2,formu3,sep="+")
formu <- paste(formu,formu2)
logit_mod <- glm(formula = formu,data = df,family = binomial(link = "probit"))
res <- residuals(logit_mod)
return(res)
}