Sorkin, John
2021-May-20 03:00 UTC
[R] COXPH: How should weights be entered in coxph, as the log of the weight or as the weight on its original scale?
When running a propensity score weighted analysis using coxph(), are the weights entered as the log of the weights, or as the weights on the original scale, i.e. coxph(Surv(time,status)~group,weights=weights ,data=mydata) or coxph(Surv(time,status)~group,weights=log(weights),data=mydata) I am creating weights using logistic regression as described below. # Lalonde data from the MatchIt package is used in the pseudo code below install.packages("MatchIt") library("MatchIt") ############################################# # Calculate propensity scores using logistic regression.# ############################################# ps <- glm(treat ~ age + educ +nodegree +re74+ re75,data=lalonde,family=binomial()) summary(ps) #PS on the scale of the dependent variable # Add the propensity scores to the dataset lalonde$psvalue <- predict(ps,type="response") ################################################# # END Calculate propensity scores using logistic regression.# ################################################# ################################# # Convert propensity scores to weights# ################################# # Different weights for cases (1) and controls lalonde$weight.ATE <- ifelse(lalonde$treat == 1, 1/lalonde$psvalue,1/(1-lalonde$psvalue)) summary(lalonde$weight.ATE) ##################################### # END Convert propensity scores to weights# ##################################### ########################################################## # Examples of two possible way to enter weights in the coxph model. # ########################################################## fit1 <- coxph(Surv(time,status)~group,weights=lalonde$weight,data=lalonde) or fit2 <- coxph(Surv(time,status)~group,weights=log(lalonde$weight),data=lalonde) ########################################################## # Examples of two possible way to enter weights in the coxph model. # ########################################################## [[alternative HTML version deleted]]
David Winsemius
2021-May-20 05:23 UTC
[R] COXPH: How should weights be entered in coxph, as the log of the weight or as the weight on its original scale?
Perhaps this package could be considered https://cran.r-project.org/web/packages/hrIPW/hrIPW.pdf That packages author also has a 2016 article in Statistics in Medicine on the properties of estimates from such analyses that might be useful. ? David Winsemius, MD, MPH Sent from my iPhone> On May 19, 2021, at 8:01 PM, Sorkin, John <jsorkin at som.umaryland.edu> wrote: > > ?When running a propensity score weighted analysis using coxph(), are the weights entered as the log of the weights, or as the weights on the original scale, i.e. coxph(Surv(time,status)~group,weights=weights ,data=mydata) or > coxph(Surv(time,status)~group,weights=log(weights),data=mydata) > > I am creating weights using logistic regression as described below. > > # Lalonde data from the MatchIt package is used in the pseudo code below > install.packages("MatchIt") > library("MatchIt") > > ############################################# > # Calculate propensity scores using logistic regression.# > ############################################# > ps <- glm(treat ~ age + educ +nodegree +re74+ re75,data=lalonde,family=binomial()) > summary(ps) > #PS on the scale of the dependent variable > # Add the propensity scores to the dataset > lalonde$psvalue <- predict(ps,type="response") > ################################################# > # END Calculate propensity scores using logistic regression.# > ################################################# > > ################################# > # Convert propensity scores to weights# > ################################# > # Different weights for cases (1) and controls > lalonde$weight.ATE <- ifelse(lalonde$treat == 1, 1/lalonde$psvalue,1/(1-lalonde$psvalue)) > summary(lalonde$weight.ATE) > ##################################### > # END Convert propensity scores to weights# > ##################################### > > ########################################################## > # Examples of two possible way to enter weights in the coxph model. # > ########################################################## > fit1 <- coxph(Surv(time,status)~group,weights=lalonde$weight,data=lalonde) > or > fit2 <- coxph(Surv(time,status)~group,weights=log(lalonde$weight),data=lalonde) > ########################################################## > # Examples of two possible way to enter weights in the coxph model. # > ########################################################## > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.[[alternative HTML version deleted]]