|
|
(5 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| ==[[SMHS| Scientific Methods for Health Sciences]] - Methods for Studying Heterogeneity of Treatment Effects, Case-Studies of Comparative Effectiveness Research == | | ==[[SMHS| Scientific Methods for Health Sciences]] - Methods for Studying Heterogeneity of Treatment Effects, Case-Studies of Comparative Effectiveness Research == |
| + | |
| + | ==Methods and Approaches for HTE Analytics== |
| | | |
| <center> | | <center> |
Line 19: |
Line 21: |
| |} | | |} |
| </center> | | </center> |
| + | |
| + | Adopted from: http://dx.doi.org/10.1186/1471-2288-12-185 |
| | | |
| * *CART: Classification and regression tree (CART) analysis | | * *CART: Classification and regression tree (CART) analysis |
− | * ** LGM/GMM: Latent growth modeling/Growth mixture modeling.
| + | * LGM/GMM: Latent growth modeling/Growth mixture modeling. |
− | * *** QTE: Quantile Treatment Effect.
| + | * QTE: Quantile Treatment Effect. |
− | * **** Standard meta-analysis like fixed and random effect models, and tests of heterogeneity, together with various plots and summaries, can be found in the [http://cran.r-project.org/web/packages/rmeta R-package rmeta]. Non-parametric R approaches are included in the [http://cran.r-project.org/web/packages/np/vignettes/np.pdf np package].
| + | * Standard meta-analysis like fixed and random effect models, and tests of heterogeneity, together with various plots and summaries, can be found in the [http://cran.r-project.org/web/packages/rmeta R-package rmeta]. Non-parametric R approaches are included in the [http://cran.r-project.org/web/packages/np/vignettes/np.pdf np package]. |
| | | |
| Additional details are provided in a paper entitled [http://dx.doi.org/10.1186/1471-2288-12-185 From concepts, theory, and evidence of heterogeneity of treatment effects to methodological approaches: a primer]. | | Additional details are provided in a paper entitled [http://dx.doi.org/10.1186/1471-2288-12-185 From concepts, theory, and evidence of heterogeneity of treatment effects to methodological approaches: a primer]. |
| | | |
− | ===[[SMHS_MethodsHeterogeneity_HTE |HTE Analytics, Latent growth and growth mixture modeling (LGM/GMM)]]===
| + | ==[[SMHS_MethodsHeterogeneity_HTE |HTE Analytics, Latent growth and growth mixture modeling (LGM/GMM)]]== |
− | | |
− | ===[[SMHS_MethodsHeterogeneity_MetaAnalysis |Meta-analysis]]===
| |
− | | |
− | Meta-analysis is an approach to combine treatment effects across trials or studies into an aggregated treatment effect with higher statistical power than observed in each individual trials. It may detect HTE by testing for differences in treatment effects across similar RCTs. It requires that the individual treatment effects are similar to ensure pooling is meaningful. In the presence of large clinical or methodological differences between the trials, it may be to avoid meta-analyses. The presence of HTE across studies in a meta-analysis may be due to differences in the design or execution of the individual trials (e.g., randomization methods, patient selection criteria). <b>Cochran's Q is a methods for detection of heterogeneity, which is computed as the weighted sum of squared differences between each study's treatment effect and the pooled effects across the studies.</b> It is a barometer of inter-trial differences impacting the observed study result. A possible source of error in a meta-analysis is publication bias. Trial size may introduce publication bias since larger trials are more likely to be published. Language and accessibility represent other potential confounding factors. When the heterogeneity is not due to poor study design, it may be useful to optimize the treatment benefits for different cohorts of participants.
| |
− | | |
− | Cochran's Q statistics is the weighted sum of squares on a standardized scale. <b>The corresponding P value indicates the strength of the evidence of presence of heterogeneity.</b> This test may have low power to detect heterogeneity sometimes and it is suggested to use a value of 0.10 as a cut-off for significance (Higgins et al., 2003). The Q statistics also may have too much power as a test of heterogeneity when the number of studies is large.
| |
− | | |
− | <b>Simulation Example 1</b>
| |
− | | |
− | # Install and Load library
| |
− | install.packages("meta")
| |
− | library(meta)
| |
− |
| |
− | # Set number of studies
| |
− | n.studies = 15
| |
− |
| |
− | # number of treatments: case1, case2, control
| |
− | n.trt = 3
| |
− |
| |
− | # number of outcomes
| |
− | n.event = 2
| |
− |
| |
− | # simulate the (balanced) number of cases (case1 and case2) and controls in each study
| |
− | ctl.group = rbinom(n = n.studies, size = 200, prob = 0.3)
| |
− | case1.group = rbinom(n = n.studies, size = 200, prob = 0.3)
| |
− | case2.group = rbinom(n = n.studies, size = 200, prob = 0.3)
| |
− | | |
− | # Simulate the number of outcome events (e.g., deaths) and no events in the control group
| |
− | event.ctl.group = rbinom(n = n.studies, size = ctl.group, prob = rep(<mark>0.1</mark>, length(ctl.group)))
| |
− | noevent.ctl.group = ctl.group - event.ctl.group
| |
− |
| |
− | # Simulate the number of events and no events in the case1 group
| |
− | event.case1.group = rbinom(n = n.studies, size = case1.group, prob = rep(<mark>0.5</mark>, length(case1.group)))
| |
− | noevent.case1.group = case1.group - event.case1.group
| |
− | | |
− | # Simulate the number of events and no events in the case2 group
| |
− | event.case2.group = rbinom(n = n.studies, size = case2.group, prob = rep(<mark>0.6</mark>, length(case2.group)))
| |
− | noevent.case2.group = case2.group - event.case2.group
| |
− | | |
− | # Run the univariate meta-analysis using <b>metabin()</b>, Meta-analysis of binary outcome data –
| |
− | # Calculation of fixed and random effects estimates (risk ratio, odds ratio, risk difference or arcsine
| |
− | # difference) for meta-analyses with binary outcome data. Mantel-Haenszel (MH),
| |
− | # inverse variance and Peto method are available for pooling.
| |
− | | |
− | # <b>method</b> = A character string indicating which method is to be used for pooling of studies.
| |
− | # one of "MH" , "Inverse" , or "Cochran"
| |
− | # sm = A character string indicating which summary measure (“OR”, "RR" "RD"=risk difference) is to be
| |
− | # used for pooling of studies
| |
− | | |
− | # Control vs. Case1, n.e and n.c are numbers in experimental and control groups
| |
− | meta.ctr_case1 <- metabin(event.e = <b>event.case1.group</b>, n.e = case1.group, event.c = <b>event.ctl.group</b>,
| |
− | n.c = ctl.group, method = "MH", sm = "OR")
| |
− | # in this case we use Odds Ratio, of the odds of death in the experimental and control studies
| |
− | forest(meta.ctr_case1)
| |
− | | |
− | <center>[[Image:SMHS_Methods8.png|500px]] </center>
| |
− | | |
− | # Control vs. Case2
| |
− | meta.ctr_case2 <- metabin(event.e = event.case2.group, n.e = case2.group, event.c = event.ctl.group,
| |
− | n.c = ctl.group, method = "MH", sm = "OR")
| |
− | forest(meta.ctr_case2)
| |
− | | |
− | <center>[[Image:SMHS_Methods9.png|500px]] </center>
| |
− | | |
− | # Case1 vs. Case2
| |
− | meta.case1_case2 <- metabin(event.e = event.case1.group, n.e = case1.group, event.c = event.case2.group,
| |
− | n.c = case2.group, method = "MH", sm = "OR")
| |
− | forest(meta.case1_case2)
| |
− | summary(meta.case1_case2)
| |
− | | |
− | Test of heterogeneity:
| |
− | Q d.f. p-value
| |
− | 11.99 14 0.6071
| |
− | | |
− | <center>[[Image:SMHS_Methods10.png|500px]] </center>
| |
− | | |
− | The <b>forest plo</b>t shows the I2 test indicates the evidence to reject the null hypothesis (no study heterogeneity and the fixed effects model should be used).
| |
− | | |
− | <b>Series of “N of 1” trials</b>
| |
− | | |
− | This technique combines (a “series of”) n-of-1 trial data to identify HTE. An n-of-1 trial is a repeated crossover trial for a single patient, which randomly assigns the patient to one treatment vs. another for a given time period, after which the patient is re-randomized to treatment for the next time period, usually repeated for 4-6 time periods. Such trials are most feasibly done in chronic conditions, where little or no washout period is needed between treatments and treatment effects are identifiable in the short-term, such as pain or reliable surrogate markers. Combining data from identical n-of-1 trials across a set of patients enables the statistical analysis controlling for patient fixed or random effects, covariates, centers, or sequence effects, see <b>Figure</b> below. These combined trials are often analyzed within a Bayesian context using shrinkage estimators that combine individual and group mean treatment effects to create a “posterior” individual mean treatment effect estimate which is a form of inverse variance-weighted average of the individual and group effects. Such trials are typically more expensive than standard RCTs on a per-patient basis, however, they require much smaller sample sizes, often less than 100 patients (due to the efficient individual-as-own-control design), and create individual treatment effect estimates that are not possible in a non-crossover design . For the individual patient, the treatment effect can be re-estimated after each time period, and the trial stopped at any point when the more effective treatment is identified with reasonable statistical certainty.
| |
− | | |
− | <b>Example:</b> A study involving 8 participants collected data across 30 days, in which 15 treatment days and 15 control days are randomly assigned within each participant . The treatment effect is represented as a binary variable (control day=0; treatment day=1). The outcome variable represents the response to the intervention within each of the 8 participants. Study employed a fixed-effects modeling. By creating N − 1 dummy-coded variables representing the N=8 participants, where the last (i=8) participant serves as the reference (i.e., as the model intercept). So, each dummy-coded variable represents the difference between each participant (i) and the 8th participant. Thus, all other patients' values will be relative to the values of the 8th (reference) subject. The overall differences across participants in fixed effects can be evaluated with multiple <b>degree-of-freedom F-tests.</b>
| |
− | | |
− | <center>[[Image:SMHS_Methods11.png|500px]] </center>
| |
− | | |
− | <center>
| |
− | | |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |ID||Day||Tx||SelfEff||SelfEff25||WPSS||SocSuppt||PMss||PMss3||PhyAct
| |
− | |-
| |
− | |1||1||1||33||8||0.97||5.00||4.03||1.03||53
| |
− | |-
| |
− | |1||2||1||33||8||-0.17||3.87||4.03||1.03||73
| |
− | |-
| |
− | |1||3||0||33||8||0.81||4.84||4.03||1.03||23
| |
− | |-
| |
− | |1||4||0||33||8||-0.41||3.62||4.03||1.03||36
| |
− | |-
| |
− | |...||...||...||...||...||...||...||...||...||...
| |
− | | |
− | |}
| |
− | </center> Complete data is available in the <b>Appendix.</b>
| |
− | | |
| | | |
| + | ==[[SMHS_MethodsHeterogeneity_MetaAnalysis |Meta-analysis]]== |
| | | |
− | <center>Data Summary
| + | ==[[SMHS_MethodsHeterogeneity_CER| Comparative Effectiveness Research (CER)]]== |
− | | |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |Intercept||Constant
| |
− | |-
| |
− | |Physical Activity||PhyAct
| |
− | |-
| |
− | |Intervention||Tx
| |
− | |-
| |
− | |WP Social Support||WPSS
| |
− | |-
| |
− | |PM Social Support (1-3)||PMss3
| |
− | |-
| |
− | |Self Efficacy||SelfEff25
| |
− | | |
− | |} | |
− | </center>
| |
− | | |
− | rm(list=ls())
| |
− | Nof1 <-read.table("https://umich.instructure.com/files/330385/download?download_frd=1&verifier=DwJUGSd6t24dvK7uYmzA2aDyzlmsohyaK6P7jK0Q", sep=",", header = TRUE) # 02_Nof1_Data.csv
| |
− | attach(Nof1)
| |
− | head(Nof1)
| |
− | | |
− | <center>
| |
− | | |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | | ||ID||Day||Tx||SelfEff||SelfEff25||WPSS||SocSuppt||PMss||PMss3||PhyAct
| |
− | |-
| |
− | |1||1||1||1||33||8||0.97||5.00||4.03||1.03||53
| |
− | |-
| |
− | |2||1||2||1||33||8||-0.17||3.87||4.03||1.03||73
| |
− | |-
| |
− | |3||1||3||0||33||8||0.81||4.84||4.03||1.03||23
| |
− | |-
| |
− | |4||1||4||0||33||8||-0.41||3.62||4.03||1.03||36
| |
− | |-
| |
− | |5||1||5||1||33||8||0.59||4.62||4.03||1.03||21
| |
− | |-
| |
− | |6||1||6||1||33||8||-1.16||2.87||4.03||1.03||0
| |
− | | |
− | |}
| |
− | </center>
| |
− | | |
− | df.1 = data.frame(PhyAct, Tx, WPSS, PMss3, SelfEff25)
| |
− | | |
− | # library("lme4")
| |
− | | |
− | lm.1 = model.lmer <- lmer(PhyAct ~ Tx + SelfEff + Tx*SelfEff + (1|Day) + (1|ID) , data= df.1)
| |
− | summary(lm.1)
| |
− | | |
− | Linear mixed model fit by REML ['lmerMod']
| |
− | Formula: PhyAct ~ Tx + SelfEff + Tx * SelfEff + (1 | Day) + (1 | ID)
| |
− | Data: df.1
| |
− | | |
− | REML criterion at convergence: 8820
| |
− | | |
− | <center> Scaled Residuals
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | | Min||1Q||Median||3Q||Max
| |
− | |-
| |
− | |-2.7012||-0.6833||-0.0333||0.6542||3.9612
| |
− | |}
| |
− | </center>
| |
− | | |
− | | |
− | <center> Random Effects
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | | Groups ||Name||Variance ||Std.Dev.
| |
− | |-
| |
− | | Day||(Intercept) ||0.0 || 0.00
| |
− | |-
| |
− | | |
− | |ID|| (Intercept)||601.5||24.53
| |
− | |-
| |
− | | |
− | |Residual|| ||969.0 ||31.13
| |
− | |}
| |
− | Number of obs: 900, groups: Day, 30; ID, 30
| |
− | </center>
| |
− |
| |
− | | |
− | <center> Fixed Effects
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |Estimate||Std.||Error||t value
| |
− | |-
| |
− | |(Intercept)||38.3772||14.4738||2.651
| |
− | |-
| |
− | |Tx||4.0283||6.3745||0.632
| |
− | |-
| |
− | |SelfEff||0.5818||0.5942||0.979
| |
− | |-
| |
− | |Tx:SelfEff||0.9702||0.2617||3.708
| |
− | |}
| |
− | </center>
| |
− | | |
− | | |
− | <center> Correlation of Fixed Effects
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | | ||(Intr)||Tx ||SlfEff
| |
− | |-
| |
− | | Tx|| -0.220|| ||
| |
− | |-
| |
− | | SelfEff||-0.946 ||0.208 ||
| |
− | |-
| |
− | | Tx:SelfEff ||0.208 ||-0.946 ||-0.220
| |
− | |}
| |
− | </center>
| |
− | | |
− | | |
− | # Model: PhyAct = Tx + WPSS + PMss3 + Tx*WPSS + Tx*PMss3 + SelfEff25 + Tx*SelfEff25 + ε
| |
− | lm.2 = lm(PhyAct ~ Tx + WPSS + PMss3 + Tx*WPSS + Tx*PMss3 + SelfEff25 + Tx*SelfEff25, df.1)
| |
− | summary(lm.2)
| |
− | | |
− | Call:
| |
− | lm(formula = PhyAct ~ Tx + WPSS + PMss3 + Tx * WPSS + Tx * PMss3 +
| |
− | SelfEff25 + Tx * SelfEff25, data = df.1)
| |
− | | |
− | <center> Residuals
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |Min||1Q||Median||3Q||Max
| |
− | |-
| |
− | | -102.39||-28.24||-1.47||25.16||122.41
| |
− | | |
− | |}
| |
− | </center>
| |
− | | |
− | <center>Coefficients
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | | ||Estimate||Std. Error||t value||$Pr(>|t|)$
| |
− | |-
| |
− | |(Intercept)||52.0067||1.8080||28.764||< 2e-16 ***
| |
− | |-
| |
− | |Tx||27.7366||2.5569||10.848||< 2e-16 ***
| |
− | |-
| |
− | |WPSS||1.9631||2.4272||0.809||0.418853
| |
− | |-
| |
− | |PMss3||13.5110||2.7853||4.851||1.45e-06 ***
| |
− | |-
| |
− | |SelfEff25||0.6289||0.2205||2.852||0.004439 **
| |
− | |-
| |
− | |Tx:WPSS||9.9114||3.4320||2.888||0.003971 **
| |
− | |-
| |
− | |Tx:PMss3||8.8422||3.9390||2.245||0.025025 *
| |
− | |-
| |
− | |Tx:SelfEff25||1.0460||0.3118||3.354||0.000829 ***
| |
− |
| |
− | | |
− | |}
| |
− | </center>
| |
− | | |
− | [Using SAS (StudyI_Analyses.sas, StudyIIab_Analyses.sas)]
| |
− | | |
− | <center> <b>Type 3 Tests of Fixed Effects</b>
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |<b>Effect</b>||<b>Num DF</b>||<b>Den DF</b>||<b>F Value</b>||<b>$Pr>F$</b>
| |
− | |-
| |
− | |<b>Tx</b>||1||224||67.46||<.0001
| |
− | |-
| |
− | |<b>ID</b>||7||224||25.95||<.0001
| |
− | |-
| |
− | |<b>Tx*ID</b>||7||224||2.92||0.0060
| |
− | |}
| |
− | </center>
| |
− | | |
− | <b>Quantile Treatment Effect (QTE)</b>
| |
− | | |
− | QTE employs quantile regression estimation (QRE) to examine the central tendency and statistical dispersion of the treatment effect in a population. These may not be revealed by the conventional mean estimation in RCTs. For instance, patients with different comorbidity scores may respond differently to a treatment. Quantile regression has the ability to reveal HTE according to the ranking of patients’ comorbidity scores or some other relevant covariate by which patients may be ranked. Therefore, in an attempt to inform patient-centered care, quantile regression provides more information on the distribution of the treatment effect than typical conditional mean treatment effect estimation. QTE characterizes the heterogeneous treatment effect on individuals and groups across various positions in the distributions of different outcomes of interest. This unique feature has given quantile regression analysis substantial attention and has been employed across a wide range of applications, particularly when evaluating the economic effects of welfare reform.
| |
− | | |
− | One caveat of applying QRE in clinical trials for examining HTE is that the QTE doesn’t demonstrate the treatment effect for a given patient. Instead, it focuses on the treatment effect among subjects within the qth quantile, such as those who are exactly at the top 10th percent in terms of blood pressure or a depression score for some covariate of interest, for example, comorbidity score. It is not uncommon for the qth quantiles to be two different sets of patients before and after the treatment. For this reason, we have to assume that these two groups of patients are homogeneous if they were in the same quantiles.
| |
− | | |
− | Income-Food Expenditure Example: Let’s examine the Engel data (N=235) on the relationship between food expenditure (foodexp) and household income (income). We can plot the data and then explore the superposition of the six fitted quantile regression lines.
| |
− | | |
− | install.packages("quantreg")
| |
− | library(quantreg)
| |
− | data(engel)
| |
− | attach(engel)
| |
− | | |
− | | |
− | | |
− | |}
| |
− | </center>
| |
− | | |
− | <center>head(engel)
| |
− | {| class="wikitable" style="text-align:center; " border="1"
| |
− | |-
| |
− | |||Income||Foodexp
| |
− | |-
| |
− | |1||420.1577||255.8394
| |
− | |-
| |
− | |2||541.4117||310.9587
| |
− | |-
| |
− | |3||901.1575||485.6800
| |
− | |-
| |
− | |4||639.0802||402.9974
| |
− | |-
| |
− | |5||750.8756||495.5608
| |
− | |-
| |
− | |6||945.7989||633.7978
| |
− | | |
− | |}
| |
− | </center>
| |
| | | |
| <hr> | | <hr> |
− | * SOCR Home page: http://www.socr.ucla.edu | + | * SOCR Home page: http://www.socr.umich.edu |
| | | |
| {{translate|pageName=http://wiki.socr.umich.edu/index.php/SMHS_MethodsHeterogeneity_HTE}} | | {{translate|pageName=http://wiki.socr.umich.edu/index.php/SMHS_MethodsHeterogeneity_HTE}} |