# pointwisebound.noboot: Estimating pointwise comparisons for qgcomp.noboot objects In qgcomp: Quantile G-Computation

## Description

Calculates: expected outcome (on the link scale), mean difference (link scale) and the standard error of the mean difference (link scale) for pointwise comparisons

## Usage

 1 pointwisebound.noboot(x, alpha = 0.05, pointwiseref = 1) 

## Arguments

 x "qgcompfit" object from qgcomp.noboot, alpha alpha level for confidence intervals pointwiseref referent quantile (e.g. 1 uses the lowest joint-exposure category as the referent category for calculating all mean differences/standard deviations)

## Details

The comparison of interest following a qgcomp fit is often comparisons of model predictions at various values of the joint-exposures (e.g. expected outcome at all exposures at the 1st quartile vs. the 3rd quartile). The expected outcome at a given joint exposure and at a given level of non-exposure covariates (W) is given as E(Y|S,W=w), where S takes on integer values 0 to q-1. Thus, comparisons are of the type E(Y|S=s,W=w) - E(Y|S=s2,W=w) where s and s2 are two different values of the joint exposures (e.g. 0 and 2). This function yields E(Y|S,W=w) as well as E(Y|S=s,W=w) - E(Y|S=p,W=w) where s is any value of S and p is the value chosen via "pointwise ref" - e.g. for binomial variables this will equal the risk/ prevalence difference at all values of S, with the referent category S=p-1. For the non-boostrapped version of quantile g-computation (under a linear model)

Note that function only works with standard "qgcompfit" objects from qgcomp.noboot (so it doesn't work with zero inflated, hurdle, or Cox models)

Variance for the overall effect estimate is given by: transpose(G) Cov(β) G

Where the "gradient vector" G is given by

G = [\partial(f(β))/\partialβ_1 = 1, ..., \partial(f(β))/\partialβ_3k= 1]

f(β) = ∑_i^p β_i, and \partial y/ \partial x denotes the partial derivative/gradient. The vector G takes on values that equal the difference in quantiles of S for each pointwise comparison (e.g. for a comparison of the 3rd vs the 5th category, G is a vector of 2s)

This variance is used to create pointwise confidence intervals via a normal approximation: (e.g. upper 95% CI = psi + variance*1.96)

## Value

A data frame containing

hx:

The "partial" linear predictor β_0 + ψ∑_j X_j^q w_j, or the effect of the mixture + intercept after conditioning out any confounders. This is similar to the h(x) function in bkmr. This is not a full prediction of the outcome, but only the partial outcome due to the intercept and the confounders

rr/or/mean.diff:

The canonical effect measure (risk ratio/odds ratio/mean difference) for the marginal structural model link

se....:

the stndard error of the effect measure

ul..../ll....:

Confidence bounds for the effect measure

qgcomp.noboot, pointwisebound.boot
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 set.seed(12) ## Not run: n = 100 dat <- data.frame(x1=(x1 <- runif(n)), x2=(x2 <- runif(n)), x3=(x3 <- runif(n)), z=(z <- runif(n)), y=rnorm(n)+x1 + x2 - x3 +z) linear model for continuous outcome ft <- qgcomp.noboot(y ~ z + x1 + x2 + x3, expnms=c('x1','x2','x3'), data=dat, q=10) ft2 <- qgcomp.boot(y ~ z + x1 + x2 + x3, expnms=c('x1','x2','x3'), data=dat, q=10) pointwisebound.noboot(ft, alpha=0.05, pointwiseref=3) pointwisebound.boot(ft2, alpha=0.05, pointwiseref=3) dat <- data.frame(x1=(x1 <- runif(n)), x2=(x2 <- runif(n)), x3=(x3 <- runif(n)), z=(z <- runif(n)), y=rbinom(n, 1, 1/(1+exp(-(x1 + x2 - x3 +z))))) glms for binary outcome ft <- qgcomp.noboot(y ~ z + x1 + x2 + x3, expnms=c('x1','x2','x3'), data=dat, q=10, family=binomial()) ft2 <- qgcomp.boot(y ~ z + x1 + x2 + x3, expnms=c('x1','x2','x3'), data=dat, q=10, family=binomial()) pointwisebound.noboot(ft, alpha=0.05, pointwiseref=3) pointwisebound.boot(ft2, alpha=0.05, pointwiseref=3) dat\$z = as.factor(sample(1:3, n, replace=TRUE)) ftf <- qgcomp.noboot(y ~ z + x1 + x2 + x3, expnms=c('x1','x2','x3'), data=dat, q=10, family=binomial()) pointwisebound.noboot(ftf, alpha=0.05, pointwiseref=3) ## End(Not run)