Standardised predictions (predictive margins) for regression models.
Reweights the design (using calibrate) so that the adjustment variables are uncorrelated
with the variables in the model, and then performs predictions by
calling predict. When the adjustment model is saturated this is
equivalent to direct standardization on the adjustment variables.
The svycoxph and svykmlist methods return survival curves.
marginpred(model, adjustfor, predictat, ...) ## S3 method for class 'svycoxph' marginpred(model, adjustfor, predictat, se=FALSE, ...) ## S3 method for class 'svykmlist' marginpred(model, adjustfor, predictat, se=FALSE, ...) ## S3 method for class 'svyglm' marginpred(model, adjustfor, predictat, ...)
model |
A regression model object of a class that has a |
adjustfor |
Model formula specifying adjustment variables, which must be in the design object of the model |
predictat |
A data frame giving values of the variables in |
se |
Estimate standard errors for the survival curve (uses a lot of memory if the sample size is large) |
... |
Extra arguments, passed to the |
svypredmeans for the method of Graubard and Korn implemented in SUDAAN.
## generate data with apparent group effect from confounding set.seed(42) df<-data.frame(x=rnorm(100)) df$time<-rexp(100)*exp(df$x-1) df$status<-1 df$group<-(df$x+rnorm(100))>0 des<-svydesign(id=~1,data=df) newdf<-data.frame(group=c(FALSE,TRUE), x=c(0,0)) ## Cox model m0<-svycoxph(Surv(time,status)~group,design=des) m1<-svycoxph(Surv(time,status)~group+x,design=des) ## conditional predictions, unadjusted and adjusted cpred0<-predict(m0, type="curve", newdata=newdf, se=TRUE) cpred1<-predict(m1, type="curve", newdata=newdf, se=TRUE) ## adjusted marginal prediction mpred<-marginpred(m0, adjustfor=~x, predictat=newdf, se=TRUE) plot(cpred0) lines(cpred1[[1]],col="red") lines(cpred1[[2]],col="red") lines(mpred[[1]],col="blue") lines(mpred[[2]],col="blue") ## Kaplan--Meier s2<-svykm(Surv(time,status>0)~group, design=des) p2<-marginpred(s2, adjustfor=~x, predictat=newdf,se=TRUE) plot(s2) lines(p2[[1]],col="green") lines(p2[[2]],col="green") ## logistic regression logisticm <- svyglm(group~time, family=quasibinomial, design=des) newdf$time<-c(0.1,0.8) logisticpred <- marginpred(logisticm, adjustfor=~x, predictat=newdf)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.