Statistical inference on dose-response parameters using
weighted mixed-effects models

Nicola Orsini, PhD
Associate Professor of Medical Statistics
Department of Global Public Health
Karolinska Institutet

2021 Stata Biostatistics and Epidemiology
Virtual Symposium 18 February

Abstract

Discerning a possible dose-response pattern based on tables of empirical contrasts is difficult. Specification of a statistical model able to consider the possible dose-response data generating mechanism including its variation across studies is crucial for statistical inference. Aim of this presentation is to illustrate weighted mixed-effects dose-response models suitable for tables of correlated estimates. The command drmeta can be used with additive (mean difference) and multiplicative (odds ratios, hazard ratios) measures of association. The post-estimation command drmeta\_graph greatly facilitates the visualization of predicted average and study-specific dose-response relationships. Applications of the drmeta command are illustrated with regression splines in experimental and observational data based on non-linear and random-effects data generation mechanisms that can be encountered in health related sciences.

Research questions

  • Is the average response changing approximately at a constant rate throughout the dose/exposure range?
  • Is there any levelling off in the average response beyond a certain dose/exposure level?
  • What is the dose/exposure interval associated with most of the effect?

Research articles

Screenshot%202021-02-18%20at%2008.29.20.png circulation_2021_head.png

fig3.png

Screenshot%202021-02-18%20at%2008.25.14.png Screenshot%202021-02-18%20at%2008.25.06.png Screenshot%202021-02-18%20at%2009.49.02.png

Screenshot%202021-02-18%20at%2009.57.08.png Screenshot%202021-02-18%20at%2010.25.00.png

Trend and scientific fields

visualization.jpg

Data source: Web of Science

glcitations.png

Typical table of data and estimates for a single study

Screenshot%202021-02-18%20at%2013.56.40.png

Statistical model

A weighted (linear) mixed-effects dose-response model (Stat Meth Med Res, 2019), also known as one-stage approach, can be specified as follows

$$ \begin{equation} \boldsymbol{\hat \gamma}_i = \mathbf{X}_{i} \boldsymbol{\beta} + \mathbf{Z}_{i} \mathbf{b}_i + \boldsymbol{\epsilon}_{i} \label{eq:dosresmodel} \end{equation} $$

$\boldsymbol{\hat \gamma}_i$ is the vector of empirical constrasts estimated in the $i$-th study

$\mathbf{X}_{i}$ is the design matrix for the fixed-effects $\boldsymbol{\beta}$

$\mathbf{Z}_{i}$ is the design matrix for the random-effects $\mathbf{b}_i$

$\mathbf{b}_i \sim \mathcal{N}\left(\mathbf{0}, \boldsymbol{\Psi} \right)$

The random-effects $\mathbf{b}_i$ represent study-specific deviations from the average dose-response coefficients $\boldsymbol{\beta}$.

The residual error term $\boldsymbol{\epsilon}_i \sim \mathcal{N}\left(\mathbf{0}, \mathbf{S}_i \right)$, whose variance matrix $\mathbf{S}_i$, the weight, is assumed known.

$\mathbf{S}_i$ can be either given or approximated using available data (Stata J, 2006; AJE, 2012, BMC Med Res Meth, 2016).

Parameters and assumptions

Mixed-effects dose-response model using a linear function

Interest in the constant change (linear trend) in average response associated with one unit increase in the dose

$ \begin{equation} \hat \gamma_{ij} = (\beta_1 + b_{1i}) x_{ij} + \epsilon_{ij} \end{equation} $

$\beta_1$ is the average linear trend

Mixed-effects dose-response model using a restricted cubic spline function

Interest in how the average response is smoothly varying according to the value of the dose

$ \begin{equation} \hat \gamma_{ij} = (\beta_1 + b_{1i})s_1(x_{ij}) + (\beta_2 + b_{2i})s_2(x_{ij}) + \epsilon_{ij} \label{eq:m_s} \end{equation} $

where $s_1$ and $s_2$ are restricted cubic spline functions (help mkspline) of the dose with three knots $\left(k_1, k_2, k_3\right)$, typically located at fixed percentiles of the dose distribution, the two splines are

$ \begin{align*} s_1(x_{ij}) &= x_{ij} \nonumber \\ s_2(x_{ij}) &= \frac{ \left(x_{ij} - k_1 \right)_{+}^3 - \frac{k_3 - k_1}{k_3 - k_2} \left(x_{ij} - k_2 \right)_{+}^3 + \frac{k_2 - k_1}{k_3 - k_2} \left(x_{ij} - k_3 \right)_{+}^3}{ (k_3 - k_1)^2} \end{align*} $

$\beta_1$ is the average linear trend before the first knot $k_1$

$\beta_2$ is the departure from the average linear trend above the first knot $k_1$

Mixed-effects dose-response model using a linear spline function

Interest in the change of the linear trend beyond the dose value $k$

$ \begin{equation} \hat \gamma_{ij} = (\beta_1 + b_{1i})(x_{ij}) + (\beta_2 + b_{2i})(x_{ij}>k)(x_{ij}-k) + \epsilon_{ij} \end{equation} $

where the degree-1 linear spline $(x_{ij}>k)(x_{ij}-k)$, also written as $(x_{ij}-k)_{+}$, is activated when $x_{ij}>k$

$\beta_1$ is the average linear trend before the dose value $k$

$\beta_2$ is the change in average linear trend after the dose value $k$

$(\beta_1 + \beta_2)$ is the average linear trend after the dose value $k$

More on flexible modelling using splines

Orsini, N., and Spiegelman D. Meta-Analysis of Dose-Response Relationships. Chapter 18. Handbook of Meta-Analysis. Chapman & Hall/CRC Handbooks of Modern Statistical Methods. Editors CH Schmid, T. Stijnen, and I. White. 2020. Pages 395-428.

strategy.png

Estimation, inference, and model comparison

  • Weights of empirical estimates (Greenland & Longnecker AJE 1992, Hamling et al Stat Med 2008, Crippa & Orsini BMC Med Res Methodol 2016).
  • No intercept
  • One-stage vs two-stage
  • Maximum Likelihood (ML) vs Restricted Maximum Likelihood (REML)
  • Wald-type vs Likelihood ratio tests
  • Akaike Information Criteria (AIC)

Details can be found in a forthcoming article on Stata Journal, 2021.

Tabulate and plot the predicted dose-response relationship

Let $\boldsymbol{x}^{*}$ be the design matrix obtained by applying the chosen dose-response function to a number of plausible values of the dose, and let $\boldsymbol{x}^{*}_{0}$ be the same design matrix evaluated at the chosen reference level.

The motivation for using $\boldsymbol{x}^{*}$, rather than the observed $\mathbf{X}_{i}$ used to fit the model, is that $\mathbf{X}_{i}$ does not contain enough data points for a smooth plot of the either average or study-specific dose-response relationship. The predicted average dose-response curve is given by

$ \begin{equation} \begin{gathered} \hat {\boldsymbol{\gamma}}^* = (\boldsymbol{x}^{*} - \boldsymbol{x}^{*}_{0})\hat{\boldsymbol{\beta}} \end{gathered} \end{equation} $

A pointwise $100(1-\alpha)$\% confidence intervals obtained as follows

$ \begin{equation} \begin{gathered} (\boldsymbol{x}^{*} - \boldsymbol{x}^{*}_{0}) \boldsymbol{\hat \beta} \pm z_{\alpha / 2} \mathrm{diag} [ (\boldsymbol{x}^{*} - \boldsymbol{x}^{*}_{0}) V(\boldsymbol{\hat \beta}) (\boldsymbol{x}^{*} - \boldsymbol{x}^{*}_{0})^\top ]^{1/2} \end{gathered} \end{equation} $

Best Linear Unbiased Prediction (BLUP)

An advantage of the mixed-effects model is to allow estimation of study-specific dose-response relationships.

The best linear unbiased prediction (BLUP) of $\mathbf{b}$ can be computed as

$ \begin{equation} \hat {\mathbf{b}}_i = \hat{\boldsymbol{\Psi}} \boldsymbol{Z}_i^\top \hat{\boldsymbol{\Sigma}}_i^{-1} \left(\hat {\boldsymbol{\gamma}}_i - \boldsymbol{X}_i\hat{\boldsymbol{\beta}} \right) \end{equation} $

The conditional study-specific dose-response relationships are obtained by adding the fixed-effects and BLUPs as follows

$ \begin{equation} \hat {\boldsymbol{\gamma}}^{*}_{i} = (\boldsymbol{x}^{*} - \boldsymbol{x}^{*}_{0})(\hat{\boldsymbol{\beta}}+\hat {\mathbf{b}}_i) \end{equation} $

Overlaying the average $\hat {\boldsymbol{\gamma}}^*$ and study-specific $\hat {\boldsymbol{\gamma}}^{*}_{i}$ allows visual appreciation of the central tendency and spread of dose-response relationships across studies.

Predictions can be easily obtained and plotted with the drmeta postestimation command predict and drmeta_graph

drmeta command

Download and install it

Just type (once) at Stata command line

ssc install drmeta

Type of effect measures

Tables of correlated empirical contrasts arising from heterogenous and possibly non-linear relationships investigated in experimental and observational studies.

  1. Mean Differences / Standardized Mean Differences
  2. Odds Ratios / Risk Ratios
  3. Rate Ratios / Hazard Ratios

Type of study design

  1. Experimental
  2. Observational (cross-sectional, case-control, open and closed cohorts)

drmeta postestimation

predict

  • xb linear prediction for the fixed portion of the model only.
  • xbs linear prediction using study-specific coefficient vector estimated using generalized least squares; the default.
  • fitted fitted values, fixed-portion linear prediction plus contributions based on predicted random effects.
  • reffects predicted BLUPs of random effects.

drmeta_graph

The drmeta_graph command greatly facilitates the visualization of the estimated dose-response model.

drmeta_graph plots the average dose-response relationship together with confidence intervals upon indication of a list of dose/exposure values, a referent, and the types of transformations used to model the quantitative predictor.

It is particularly convenient when modelling the dose with splines.

drmeta_gof

The drmeta_gof command provides tools (deviance test, R-squared) to evaluate the goodness-of-fit in dose-response meta-analysis.

Further details

Discacciati A, Crippa A, Orsini N. Goodness of fit tools for dose-response meta-analysis of binary outcomes. Research Synthesis Methods. 2017 Jun;8(2):149-160.

Simulated examples

A Monte-Carlo simulation study consisted of the following steps:

  • Generate multiple individual data according to a certain dose-response relationship
  • Create tables of estimated mean differences (plus confidence intervals) upon categorization of the dose into quantiles
  • Fit a weighted linear mixed model on tables of aggregated data

Mean Differences

Let's generate studies arising from a non-linear random-effects dose-response mechanism where the average shape is

$-2(x-5)+0.2(x^2-5^2)$

so, the lowest mean outcome for the average study is expected to be at

$x=-(-2)/(2(0.2))=5$ units

Mixed-effects model with a linear function

In [1]:
use http://www.stats4life.se/data/md_drm, clear
In [2]:
list id dose md , sepby(id)
     +---------------------------+
     | id       dose          md |
     |---------------------------|
  1. |  1   2.086257           0 |
  2. |  1   4.419908   -1.833671 |
  3. |  1    8.50176   -.7127696 |
     |---------------------------|
  4. |  2   2.089625           0 |
  5. |  2   4.350319    -2.24363 |
  6. |  2   8.571865    4.001513 |
     |---------------------------|
  7. |  3   1.783374           0 |
  8. |  3   3.471823   -4.205753 |
  9. |  3   5.284095   -5.813741 |
 10. |  3   9.226316   -10.75781 |
     |---------------------------|
 11. |  4   2.659683           0 |
 12. |  4   7.326583   -1.896251 |
     |---------------------------|
 13. |  5   1.788106           0 |
 14. |  5   3.554765   -.3524966 |
 15. |  5   5.281302   -5.160278 |
 16. |  5   9.098642   -2.534792 |
     |---------------------------|
 17. |  6    2.59058           0 |
 18. |  6   7.323151   -.9324588 |
     |---------------------------|
 19. |  7   1.980234           0 |
 20. |  7   4.243467    2.224448 |
 21. |  7   8.395834    19.95125 |
     |---------------------------|
 22. |  8   2.729582           0 |
 23. |  8   7.399555    -2.63299 |
     |---------------------------|
 24. |  9   1.715954           0 |
 25. |  9    3.40995   -1.278558 |
 26. |  9    5.39144   -1.119229 |
 27. |  9   9.488178    10.36862 |
     |---------------------------|
 28. | 10   2.627868           0 |
 29. | 10   7.302384    6.005856 |
     +---------------------------+

Challenge of data visualizations

In [3]:
set scheme _GRSTYLE_
In [4]:
twoway ///
 (scatter md dose if se == 0, mc(blue%30)) ///
(scatter md dose [aw=1/se^2], mc(red%30)) ///
, ytitle("Mean Difference") legend(off)
In [5]:
twoway ///
    (function dose = chi2den(5, x) , range(0 20) recast(area) lc(green%10) fc(green%10) yaxis(2) yscale(axis(2) off)) ///
     (scatter md dose if se == 0, mc(blue%30)) ///
    (scatter md dose [aw=1/se^2], sort msize(vsmall) mc(red%30) ) ///
    (pcspike md mindose md maxdose if md != 0, lc(red%30) ) ///
    ,  ytitle("Mean Difference") ///
       legend(off) plotregion(style(none)) ///
       xtitle("Dose") yscale(alt)

Screenshot%202021-02-18%20at%2013.47.58.png

In [6]:
drmeta md dose, data(n sd) id(id) type(type_md) ml

One-stage random-effects dose-response model     Number of studies =        10
Optimization   = ml                                  Number of obs =        19
           AIC = 240.04                              Model chi2(1) =      0.73
Log likelihood = -118.02019                            Prob > chi2 =    0.3943
------------------------------------------------------------------------------
          md |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        dose |   .3138377   .3683861     0.85   0.394    -.4081857    1.035861
------------------------------------------------------------------------------
---------------------------------------------
  Random-effects parameters  |   Estimate
-----------------------------+---------------
var(dose,dose)               |    1.334027
---------------------------------------------
LR test vs. no random-effects model = 571.30703       Prob >= chi2(1) = 0.0000

Interpretation

Every 1 unit increase of the dose is estimated to increase, on average, the mean outcome by 0.3 units (95% CI = -0.41, 1.04). The estimated variance of the random-effects is large, suggesting a strong variability of the study-specific linear trends. Data appears to be compatible with a flat dose-response association (z=0.85, p-value=0.394).

Although we cannot exclude that for some studies, the dose-response relationship can be actually linear, data may also be compatible with the hypothesis of higher mean outcomes at the dose extremes relative to the middle range of the dose (i.e. U/J-shaped). Such shape would be unlikely to be discovered forcing a linear dose-response function in all the studies.

Therefore, we now allow a curvilinear relationship to be detected using restricted cubic splines with 3 knots of the dose.

Mixed-effects model with restricted cubic splines

In [7]:
mkspline doses = dose, nk(3) cubic displayknots
mat knots = r(knots)

             |     knot1      knot2      knot3 
-------------+---------------------------------
        dose |  2.086257   4.350319    8.50176 

In [8]:
drmeta md doses1 doses2 , se(semd) data(n sd) id(id) type(type_md) ml

One-stage random-effects dose-response model     Number of studies =        10
Optimization   = ml                                  Number of obs =        19
           AIC = 107.34                              Model chi2(2) =     86.21
Log likelihood = -48.669605                            Prob > chi2 =    0.0000
------------------------------------------------------------------------------
          md |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      doses1 |   -1.26233   .1895313    -6.66   0.000    -1.633805   -.8908556
      doses2 |    2.76801   .5284361     5.24   0.000     1.732295    3.803726
------------------------------------------------------------------------------
---------------------------------------------
  Random-effects parameters  |   Estimate
-----------------------------+---------------
var(doses1,doses1)           |    .1336763
var(doses2,doses2)           |    2.137952
cov(doses1,doses2)           |    .5345965
---------------------------------------------
LR test vs. no random-effects model = 615.5756        Prob >= chi2(3) = 0.0000

Interpretation

The maximized log-likelihood of a mixed-effects model using the restricted cubic spline function (−49) of the dose is, in absolute terms, about two-fifths of the maximized log-likelihood of the the linear function (−118).

Even considering the higher number of estimated parameters of the spline function (2 coefficients + 3 variance/covariance of random-effects) relative the linear function (1 coefficient + 1 variance of random-effects), the AIC of the spline function (AICs = 107) is about a half the one of the linear function (AICl = 240).

Assuming the average dose-response function is truly linear, a Wald-type statistic being as or more extreme than observed would rarely occur ($H_0 : \beta_2 = 0$, $z$=5.24, $p$-value<0.001).

That said, we still have no idea of the possible shape relating the dose to the mean outcome.

A plot of the estimated summary dose-response relationship

In [9]:
drmeta_graph , matk(knots)  dose(2(.5)10) ref(5)  name(figure2, replace) ///
 ytitle("Mean Difference") list yline(0, lp(dot) lc(black)) xlabel(2(1)10) ylabel(#7) ///
 addplot(-2*(d-5)+.2*(d^2-25))  plotopts(lc(blue))
     _x   _t1        _t2     _xb     _lb     _ub  
      2     2          0    2.15    0.79    3.51  
    2.5   2.5   .0017208    1.53    0.33    2.72  
      3     3   .0185358    0.94   -0.09    1.97  
    3.5   3.5   .0686515    0.45   -0.39    1.29  
      4     4   .1702902    0.10   -0.52    0.72  
    4.5   4.5    .341548   -0.06   -0.40    0.28  
      5     5   .5907288    0.00    0.00    0.00  
    5.5   5.5   .9095089    0.25   -0.15    0.66  
      6     6   1.287951    0.67   -0.20    1.53  
    6.5   6.5   1.716116    1.22   -0.15    2.60  
      7     7   2.184068    1.89   -0.04    3.81  
    7.5   7.5   2.681868    2.63    0.13    5.13  
      8     8   3.199579    3.43    0.34    6.53  
    8.5   8.5   3.727262    4.26    0.56    7.96  
      9     9   4.256619    5.10    0.79    9.40  
    9.5   9.5   4.785977    5.93    1.02   10.85  
     10    10   5.315334    6.77    1.24   12.29  
In [10]:
graph display

Figure Estimated summary (solid line) dose-response relationship with 95% confidence intervals (dashed lines) based on 10 tables of empirical estimates. Data were fitted with a weighted mixed-effects model using restricted cubic splines for the dose with three knots located at percentiles (10th, 50th, 90th) of the overall dose distribution. The blue line is the true summary dose-response relationship. The dose value of 5 units served as referent.

Example: Odds Ratios

Let’s now consider tables of summarized data from 10 hypothetical observational prospective studies investigating the association between the quantitative dose (i.e. body mass index (BMI, $kg/m^2$) and the occurrence of a binary outcome (i.e. alive/death status during 10 years follow-up time).

  • BMI depends on age
  • Mortality risk depends on both BMI and age

Baseline age, a potential confounding variable, is associated with a higher mean BMI and is associated with higher mortality odds no matter what is the specific value taken by the BMI.

A mechanism of this type, commonly known as “confounding”, is likely to produce estimates of exposure effects apparently inconsistent.

Under a non-linear random-effect data generating mechanism , let's assume an age-adjusted odds ratio relating BMI to mortality of this form

$e^{-2.3(x-24)+0.05(x^2-24^2)}$

(i.e. higher mortality at the extremes, particularly on the right tail, of the BMI distribution).

The lowest age-adjusted mortality risk can be expected to be at this level of BMI

$x=-(-2.3)/(2(0.05)) = 23$ kg/m$^2$

In [11]:
use http://www.stats4life.se/data/or_drm, clear
In [12]:
list id bmi b seb case n , sepby(id)

     +----------------------------------------------------+
     | id        bmi           b        seb   case      n |
     |----------------------------------------------------|
  1. |  1   22.00238   -.3890369    .094743    362   1000 |
  2. |  1   26.92995           0          0    480   1000 |
     |----------------------------------------------------|
  3. |  2   22.09101   -.4829789   .1943198     74    250 |
  4. |  2   26.88089           0          0    107    250 |
     |----------------------------------------------------|
  5. |  3   22.35459   -.9275737   .1373499    148    500 |
  6. |  3    27.0792           0          0    270    500 |
     |----------------------------------------------------|
  7. |  4   22.11353   -.7965673   .0961867    310   1000 |
  8. |  4   26.89151           0          0    527   1000 |
     |----------------------------------------------------|
  9. |  5   21.16003   -.8437273   .1169753    228    667 |
 10. |  5   24.36551   -1.021478   .1177787    215    667 |
 11. |  5   27.68648           0          0    380    666 |
     |----------------------------------------------------|
 12. |  6    21.1872    .4269972   .2421495     57    167 |
 13. |  6   24.51042           0          0     44    167 |
 14. |  6   27.81176    1.034574   .2358377     82    166 |
     |----------------------------------------------------|
 15. |  7   22.05972    -.539418    .193787     85    250 |
 16. |  7    26.8837           0          0    127    250 |
     |----------------------------------------------------|
 17. |  8   22.03318   -.6075508    .133712    172    500 |
 18. |  8   26.84427           0          0    254    500 |
     |----------------------------------------------------|
 19. |  9     21.235           0          0    114    334 |
 20. |  9   24.64635   -.0910647   .1685295    117    333 |
 21. |  9   27.66506    .8185734   .1650729    190    333 |
     |----------------------------------------------------|
 22. | 10   22.25245   -.7423262   .1347532    158    500 |
 23. | 10   27.14518           0          0    254    500 |
     +----------------------------------------------------+

Screenshot%202021-02-17%20at%2023.51.19.png

In [13]:
drmeta b bmi, se(seb) data(n case) type(type) id(id) ml stddev

One-stage random-effects dose-response model     Number of studies =        10
Optimization   = ml                                  Number of obs =        13
           AIC = 50.23                               Model chi2(1) =    134.11
Log likelihood = -23.116302                            Prob > chi2 =    0.0000
------------------------------------------------------------------------------
           b |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         bmi |   .1302349    .011246    11.58   0.000     .1081931    .1522767
------------------------------------------------------------------------------
---------------------------------------------
  Random-effects parameters  |   Estimate
-----------------------------+---------------
std(bmi,bmi)                 |    .0232682
---------------------------------------------
LR test vs. no random-effects model = 3.0684958       Prob >= chi2(1) = 0.0798

Interpretation

Every increment of 3 kg/m$^2$ in BMI is associated, on average, with a 48%, $e^{0.13(3)}$, higher age-adjusted mortality odds.

We next allowed a curvilinear relationship to be detected by using a restricted cubic spline function with three knots at fixed percentiles (10th, 50th, 90th) of the BMI distribution.

In [14]:
mkspline bmis = bmi, nk(3) cubic displayknots
mat knots = r(knots)

             |     knot1      knot2      knot3 
-------------+---------------------------------
         bmi |  22.03318   24.51042    27.0792 

In [15]:
drmeta b bmis1 bmis2 , se(seb) data(n case) type(type)  id(id) ml

One-stage random-effects dose-response model     Number of studies =        10
Optimization   = ml                                  Number of obs =        13
           AIC = -3.75                               Model chi2(2) =    236.95
Log likelihood = 6.877037                              Prob > chi2 =    0.0000
------------------------------------------------------------------------------
           b |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       bmis1 |  -.1190594   .0342939    -3.47   0.001    -.1862741   -.0518446
       bmis2 |    .341312   .0442469     7.71   0.000     .2545897    .4280343
------------------------------------------------------------------------------
---------------------------------------------
  Random-effects parameters  |   Estimate
-----------------------------+---------------
var(bmis1,bmis1)             |    .0005846
var(bmis2,bmis2)             |    .0000788
cov(bmis1,bmis2)             |   -.0002146
---------------------------------------------
LR test vs. no random-effects model = 1.4161565       Prob >= chi2(3) = 0.7018
In [16]:
drmeta_graph ,  matk(knots)  dose(21(.2)28) list ref(24) ///
    addplot(-2.3*(d-24)+0.05*(d^2-24^2)) ///
    plotopts(lc(blue)) eform  ///
    ytitle("Adjusted Odds Ratio") ///
    xtitle("Body Mass Index (kg/m{sup:2})") ///
    name(fig4, replace) ylabel(1 1.2 1.5 2 3 4, angle(horiz))
      _x    _t1        _t2    _xb    _lb    _ub  
      21     21          0   1.29   1.08   1.54  
    21.2   21.2          0   1.26   1.07   1.48  
    21.4   21.4          0   1.23   1.06   1.43  
    21.6   21.6          0   1.20   1.05   1.38  
    21.8   21.8          0   1.17   1.04   1.33  
      22     22          0   1.15   1.03   1.28  
    22.2   22.2   .0001823   1.12   1.02   1.23  
    22.4   22.4   .0019384   1.09   1.01   1.19  
    22.6   22.6   .0071521   1.07   1.00   1.15  
    22.8   22.8   .0177084   1.05   0.99   1.11  
      23     23   .0354925   1.03   0.98   1.08  
    23.2   23.2   .0623895   1.01   0.98   1.05  
    23.4   23.4   .1002846   1.00   0.98   1.03  
    23.6   23.6   .1510629   1.00   0.98   1.01  
    23.8   23.8   .2166096   1.00   0.99   1.00  
      24     24   .2988097   1.00   1.00   1.00  
    24.2   24.2   .3995485   1.01   1.00   1.02  
    24.4   24.4   .5207111   1.03   1.02   1.04  
    24.6   24.6    .664127   1.05   1.04   1.07  
    24.8   24.8   .8299745   1.09   1.07   1.11  
      25     25    1.01654   1.13   1.11   1.16  
    25.2   25.2   1.222004   1.19   1.16   1.22  
    25.4   25.4    1.44455   1.25   1.22   1.29  
    25.6   25.6   1.682359   1.33   1.28   1.37  
    25.8   25.8   1.933614   1.41   1.35   1.47  
      26     26   2.196497   1.51   1.43   1.59  
    26.2   26.2   2.469189   1.61   1.51   1.72  
    26.4   26.4   2.749874   1.73   1.61   1.87  
    26.6   26.6   3.036731   1.87   1.71   2.04  
    26.8   26.8   3.327945   2.01   1.82   2.23  
      27     27   3.621696   2.17   1.94   2.43  
    27.2   27.2   3.916234   2.35   2.07   2.66  
    27.4   27.4   4.210792   2.54   2.21   2.91  
    27.6   27.6   4.505349   2.74   2.35   3.18  
    27.8   27.8   4.799907   2.96   2.51   3.48  
      28     28   5.094463   3.19   2.67   3.81  
In [17]:
graph display

Interpretation

The average dose-response relationship between BMI and age-adjusted mortality odds appear to be J-shaped with a possibile minimum at around 23.5-24 kg/m^2.

Example: Hazard Ratios

Let's now consider tables of summarized data from 30 hypothetical prospective cohort studies investigating the association between baseline brisk walking, measured in hours/week, and time until death, or end of follow-up (10 years), whichever came first.

Age is inversely associated with brisk walking and positively associated with higher mortality rates independently of brisk walking levels.

Furthermore, the true summary age-adjusted mortality hazard ratio is descreasing with higher walking levels with a threshold effect at 2 hours per week; that is

$e^{-0.5(x-2)+0.5(x>2)(x-2)}$

Principal investigators categorized brisk walking into 2/4 quantiles. Age-adjusted mortality hazard ratios comparing brisk walking categories were estimated using a Cox regression model.

Each set of empirical estimates arise from a random-effects data-generating mechanism.

In [18]:
use http://www.stats4life.se/data/hr_drm, clear
In [19]:
list, sepby(id)
     +---------------------------------------------------------------+
     | id       walk           b        seb   case          n   type |
     |---------------------------------------------------------------|
  1. |  1   .2793251    1.126792   .1099376    229   777.3834      2 |
  2. |  1   2.395885           0          0    137   1704.023      2 |
     |---------------------------------------------------------------|
  3. |  2   .0882498   -.3158149   .0945557    245   643.3843      2 |
  4. |  2   .4880067   -.4475349   .0940529    230   781.8015      2 |
  5. |  2   1.342982   -.4929771   .0933166    225   919.5527      2 |
  6. |  2   3.770511           0          0    236   624.6072      2 |
     |---------------------------------------------------------------|
  7. |  3   .1528921           0          0    317   930.5045      2 |
  8. |  3   .9615004    -.466862   .0849445    265   1599.395      2 |
  9. |  3   3.790052   -1.683847   .1093979    121   2677.427      2 |
     |---------------------------------------------------------------|
 10. |  4   .3283299    .1397779   .0482351    938   2870.116      2 |
 11. |  4   2.683378           0          0    880   3799.281      2 |
     |---------------------------------------------------------------|
 12. |  5    .161672    .1995442    .082466    319   854.0303      2 |
 13. |  5   1.018704           0          0    297   1233.004      2 |
 14. |  5   3.623844    .4628477   .0810954    315   882.9999      2 |
     |---------------------------------------------------------------|
 15. |  6   .3058116           0          0    910   3236.071      2 |
 16. |  6   2.623137   -.7453712   .0521537    656   6035.189      2 |
     |---------------------------------------------------------------|
 17. |  7   .2896355           0          0    459    1528.16      2 |
 18. |  7   2.600973   -.0614597   .0696512    429   1965.065      2 |
     |---------------------------------------------------------------|
 19. |  8   .1643253           0          0    633   1895.231      2 |
 20. |  8   .9466987   -.6235549   .0609065    496   3383.479      2 |
 21. |  8   3.628917   -1.893922   .0803656    214   5525.964      2 |
     |---------------------------------------------------------------|
 22. |  9   .2770668   -.3582188   .1000653    241   664.4189      2 |
 23. |  9   2.416099           0          0    238    629.959      2 |
     |---------------------------------------------------------------|
 24. | 10   .0915176           0          0    122   262.4762      2 |
 25. | 10   .5305347   -.0982256    .132568    118    384.079      2 |
 26. | 10   1.393327   -.6411862   .1384295    103   605.1273      2 |
 27. | 10   3.700739    -.284176   .1392116    108   476.0671      2 |
     |---------------------------------------------------------------|
 28. | 11   .2826045           0          0    470   1419.543      2 |
 29. | 11   2.666771   -.8159121   .0740083    335   3000.297      2 |
     |---------------------------------------------------------------|
 30. | 12   .1044894    .4428782    .137967    117   342.9781      2 |
 31. | 12   .5042356    .4215609   .1358672    119   416.5633      2 |
 32. | 12   1.306113           0          0    100   573.4026      2 |
 33. | 12   4.133028    .5414947   .1364696    116   393.4916      2 |
     |---------------------------------------------------------------|
 34. | 13   .3325906           0          0    944   3051.644      2 |
 35. | 13   2.747587   -.3644896    .049243    811   4645.575      2 |
     |---------------------------------------------------------------|
 36. | 14   .0761284           0          0    119   311.4999      2 |
 37. | 14   .4929709    .0550717   .1327669    116   379.6888      2 |
 38. | 14   1.319347   -.0694216   .1364633    112   461.9148      2 |
 39. | 14   3.353945   -.0353648   .1451746    107   509.0948      2 |
     |---------------------------------------------------------------|
 40. | 15    .098099    .1451558   .0660526    484   1215.047      2 |
 41. | 15   .5199782           0          0    461   1703.439      2 |
 42. | 15   1.401148   -.2061256   .0681398    411   2092.471      2 |
 43. | 15   3.964579   -.4415459   .0704884    375   2626.173      2 |
     |---------------------------------------------------------------|
 44. | 16   .1557107    .7911428   .0639705    638   1732.345      2 |
 45. | 16   .9153742    .3412233   .0638025    545   2929.215      2 |
 46. | 16   3.362979           0          0    455   3810.334      2 |
     |---------------------------------------------------------------|
 47. | 17   .1461527           0          0    315   969.7536      2 |
 48. | 17   .9265271   -.6323112    .085915    247   1689.296      2 |
 49. | 17   3.391632   -1.275282   .0967459    171   2380.976      2 |
     |---------------------------------------------------------------|
 50. | 18   .3254461           0          0    940   2752.091      2 |
 51. | 18   2.688968    .4142469   .0479734    957   2388.768      2 |
     |---------------------------------------------------------------|
 52. | 19   .2956077    1.238176   .0785387    457   1631.048      2 |
 53. | 19   2.596582           0          0    255   3508.605      2 |
     |---------------------------------------------------------------|
 54. | 20   .0878508    .2148942   .0952621    239   673.9454      2 |
 55. | 20   .5163683           0          0    216   945.9922      2 |
 56. | 20   1.494186   -1.035894   .1104081    133   1773.297      2 |
 57. | 20   4.092521   -2.629489   .1900485     32   2318.375      2 |
     |---------------------------------------------------------------|
 58. | 21   .0839196           0          0    480   1209.023      2 |
 59. | 21   .5001501   -.3648245   .0671704    433   1958.418      2 |
 60. | 21   1.340028   -1.014745   .0735737    323   3020.412      2 |
 61. | 21   3.945487   -2.344692   .1030391    121    4358.41      2 |
     |---------------------------------------------------------------|
 62. | 22   .0911063     .194189   .0663708    477   1317.607      2 |
 63. | 22   .5386549           0          0    447   1796.323      2 |
 64. | 22   1.377821   -.5047383   .0703692    370   2629.764      2 |
 65. | 22   3.860601   -1.064545   .0781567    262   3493.606      2 |
     |---------------------------------------------------------------|
 66. | 23   .1682133    .6471067   .0862075    311   973.0405      2 |
 67. | 23   .9215855           0          0    247    1765.15      2 |
 68. | 23   3.432787   -1.284732   .1181887    101   2752.034      2 |
     |---------------------------------------------------------------|
 69. | 24   .0914306           0          0    245   525.5971      2 |
 70. | 24   .5131332   -.2545962   .0933586    229    797.797      2 |
 71. | 24   1.432576   -.5888675   .0995204    203    1156.81      2 |
 72. | 24   4.051638    .2843482   .0972842    234   576.9636      2 |
     |---------------------------------------------------------------|
--more--

Screenshot%202021-02-18%20at%2015.06.35.png

Mixed-effects model with piecewise linear splines

In [20]:
// generate the degree-1 spline with a knot at 2 
gen walkplus = (walk>2)*(walk-2)
In [21]:
drmeta b walk walkplus, se(seb) data(n case) type(type)  id(id) ml

One-stage random-effects dose-response model     Number of studies =        30
Optimization   = ml                                  Number of obs =        61
           AIC = 37.55                               Model chi2(2) =    110.27
Log likelihood = -13.773298                            Prob > chi2 =    0.0000
------------------------------------------------------------------------------
           b |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        walk |  -.4678671   .0536744    -8.72   0.000     -.573067   -.3626673
    walkplus |   .5432787   .0626325     8.67   0.000     .4205213     .666036
------------------------------------------------------------------------------
---------------------------------------------
  Random-effects parameters  |   Estimate
-----------------------------+---------------
var(walk,walk)               |    .0766958
var(walkplus,walkplus)       |    .0507463
cov(walk,walkplus)           |   -.0136841
---------------------------------------------
LR test vs. no random-effects model = 2713.6          Prob >= chi2(3) = 0.0000

Linear trend per 30 min/wk between 0 and 2 h/wk

In [22]:
lincom walk*1/2, eform
 ( 1)  .5*walk = 0

------------------------------------------------------------------------------
           b |     exp(b)   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         (1) |   .7914144   .0212393    -8.72   0.000     .7508619     .834157
------------------------------------------------------------------------------

Linear trend per 30 min/wk between 2 and 4 h/wk

In [23]:
lincom (walk+walkplus)*1/2, eform
 ( 1)  .5*walk + .5*walkplus = 0

------------------------------------------------------------------------------
           b |     exp(b)   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         (1) |   1.038426   .0340727     1.15   0.250     .9737464    1.107401
------------------------------------------------------------------------------

Interpretation

Below 2 hours per week, every increment of 30 minutes per week in brisk walking is estimated to reduce the age-adjusted mortality rate by 21% (HR=$e^{-0.47(1/2)}=0.79$; 95\% CI = $e^{-.47(1/2)\pm 1.96(0.054)(1/2)} = 0.75-0.83$).

Above 2 hours per week, every increment of 30 minutes per week in brisk walking is estimated to increase, on average, the age-adjusted mortality rate by 4% (HR=$e^{(-0.47+0.54)(1/2)}=1.04$).

Statistical inference for a combination of parameters and data, such as $e^{(\beta_1+\beta_2)(1/2)}$, can be easily obtained with the lincom postestimation command.

In [24]:
drmeta_graph ,  eq(d  (d>2)*(d-2) )  dose(0(.2)4) list ref(2)  /// 
     addplot(-.5*(d-2)+.5*(d>2)*(d-2)) ///
    plotopts(lc(black) lp(longdash)) ///
    eform  ///
    ytitle("Adjusted Hazard Ratio") ///
    xtitle("Brisk walking (hours/week)")
     _x   _t1        _t2    _xb    _lb    _ub  
      0     0          0   2.55   2.07   3.15  
     .2    .2          0   2.32   1.92   2.81  
     .4    .4          0   2.11   1.79   2.50  
     .6    .6          0   1.93   1.66   2.23  
     .8    .8          0   1.75   1.55   1.99  
      1     1          0   1.60   1.44   1.77  
    1.2   1.2          0   1.45   1.34   1.58  
    1.4   1.4          0   1.32   1.24   1.41  
    1.6   1.6          0   1.21   1.16   1.26  
    1.8   1.8          0   1.10   1.08   1.12  
      2     2          0   1.00   1.00   1.00  
    2.2   2.2         .2   1.02   0.99   1.04  
    2.4   2.4   .4000001   1.03   0.98   1.09  
    2.6   2.6   .5999999   1.05   0.97   1.13  
    2.8   2.8         .8   1.06   0.96   1.18  
      3     3          1   1.08   0.95   1.23  
    3.2   3.2        1.2   1.09   0.94   1.28  
    3.4   3.4        1.4   1.11   0.93   1.33  
    3.6   3.6        1.6   1.13   0.92   1.39  
    3.8   3.8        1.8   1.15   0.91   1.44  
      4     4          2   1.16   0.90   1.50  
In [25]:
graph display

Estimated BLUPs for study id = 20

In [26]:
mat list e(blup20)
mat beta20 = e(b)+e(blup20)
mat list beta20

e(blup20)[1,2]
               walk    walkplus
blup_20  -.44304539   -.1549011



beta20[1,2]
               walk    walkplus
blup_20  -.91091252   .38837757
In [27]:
drmeta_graph ,  eq(d  (d>2)*(d-2) )  dose(0(.2)4) list ref(2)  gls noci /// 
     addplot(-.5*(d-2)+.5*(d>2)*(d-2)) ///
    plotopts(lc(black) lp(longdash)) ///
    ylabel(.5 1 2 4 8, angle(horiz)) eform  ///
    ytitle("Adjusted Hazard Ratio") ///
    xtitle("Brisk walking (hours/week)")
     _x   _t1        _t2    _xb    _lb    _ub  
      0     0          0   2.55   2.07   3.15  
     .2    .2          0   2.32   1.92   2.81  
     .4    .4          0   2.11   1.79   2.50  
     .6    .6          0   1.93   1.66   2.23  
     .8    .8          0   1.75   1.55   1.99  
      1     1          0   1.60   1.44   1.77  
    1.2   1.2          0   1.45   1.34   1.58  
    1.4   1.4          0   1.32   1.24   1.41  
    1.6   1.6          0   1.21   1.16   1.26  
    1.8   1.8          0   1.10   1.08   1.12  
      2     2          0   1.00   1.00   1.00  
    2.2   2.2         .2   1.02   0.99   1.04  
    2.4   2.4   .4000001   1.03   0.98   1.09  
    2.6   2.6   .5999999   1.05   0.97   1.13  
    2.8   2.8         .8   1.06   0.96   1.18  
      3     3          1   1.08   0.95   1.23  
    3.2   3.2        1.2   1.09   0.94   1.28  
    3.4   3.4        1.4   1.11   0.93   1.33  
    3.6   3.6        1.6   1.13   0.92   1.39  
    3.8   3.8        1.8   1.15   0.91   1.44  
      4     4          2   1.16   0.90   1.50  
In [28]:
graph display

Final remarks

  • we have seen a mixed-effects framework to conduct inference on dose-response parameters based on tables of empirical estimates (aggregated data)
  • It can be applied to a variety of research fields where additive and multiplicative measures of association for quantitative predictors are consistently summarized in tabular forms
  • Tables of empirical estimates can arise from either experimental or observational study designs. Different types of dose transformations can be specified according to the research questions the meta-analyst is willing to ask in light of the data.
  • Although the major focus of inference is usually the central tendency in dose-response relationships, mixed-effects models allow examination of the spread of the functional relations across studies via BLUPs
  • drmeta and its post-estimation commands such as drmeta_graph greatly facilitate answering a variety of questions and prevent possible mistakes

Acknowledgments

Researchers, co-authors, and doctoral students who, over the years, contributed to the development of methods and procedures for dose-response meta-analysis.

References

Orsini, N. Weighted mixed-effects dose-response models for tables of correlated contrasts. Stata Journal. 2021. Forthcoming.

Orsini, N., and Spiegelman D. Meta-Analysis of Dose-Response Relationships. Chapter 18. Handbook of Meta-Analysis. Chapman and Hall/CRC, 2020. 395-428.

Crippa, A., Discacciati, A., Bottai, M., Spiegelman, D., Orsini, N (2019). One-stage dose–response meta-analysis for aggregated data. Statistical Methods in Medical Research, 28(5), 1579-1596.