SAS: Meta-Analysis CMH Example for Categorical Variable

A. Reference

B. Meta-Analysis

A meta-analysis is a statistical analysis that combines the results of multiple scientific studies. Meta-analysis can be performed when there are multiple scientific studies addressing the same question, with each individual study reporting measurements that are expected to have some degree of error. The aim then is to use approaches from statistics to derive a pooled estimate closest to the unknown common truth based on how this error is perceived.

Wikipedia
  • In meta-analysis, studies become observations.
  • Research collect data for meta-analysis by systematic review of the literature in the field, and compile data directly from the summary statistics in the publication.

C. Problem with simply lumping the data from different studies together

  • Not consider treatment-by-study interaction
  • Assume response rates are the same in all studies.

D. SAS Solution (follow Hamer and Simpson’s paper, but corrected the output from the paper)

  • Create data set with the results of 2 studies. B: Remitted; N:Not remitted; P: Placebo; D: Drug.
  • I have used B (Better) to indicate Remitted cases because Proc Freq test is based on column 1 and row 1 of the 2 by 2 table, so if we code R for Remitted cases then the remitted case will be in column 2 because the table is by alphabetical order and R is after N.
  • The Hamer and Simpson paper actually tested the null hypothesis for the non-effective cases rather than the effective cases.
data chm;
input study $ response $ trt $ cellfreq @@;
datalines;
study1	B	P	24	study1	N	P	3
study1	B	D	58	study1	N	D	30
study2	B	P	16	study2	N	P	57
study2	B	D	2	study2	N	D	10
;
run;
  • Run Cochran-Mantel-Haenszel Statistics using Proc Freq procedure with cmh option.
proc freq data=chm;
tables study*trt*response /cmh;
weight cellfreq;
run;

E. SAS Output

  • SAS chm table
  • Frequency table
  • Cochrane-Mantel-Haenszel test

F. Notes

  • The Mantel-Haenszel estimator of the common odds ratio assumed the estimation to be homogeneous among both studies.
  • The Mentel-Haenszel statistics tests the null hypothesis that the response rate is the same for the two treatments, after adjusting for possible differences in study response rates.
  • For Proc Freq testing options, make sure the group that you want to tested are in row 1 and column 1. It is also important to crosstab treatment as row and response as column, so the interpretation of the relative risk for the risk of improvement make sense. In Hamper and Simpon’s paper the crosstab has been transposed, therefore the relative risk output doesn’t make sense.

G. Interpretation

  • The CMH test statistics is 4.65 with a p-value of 0.03, therefore, we can reject the null hypothesis that there is no association between treatment and response. P-value lower than 0.05 indicates that the association between treatment and response remains strong after adjusting for study.
  • Relative Risk (Column 1) equals to 0.74 which means the probability of the improvement with the drug is 0.74 time the probability of the improvement with the placebo.
  • Relative Risk (Column 2) equals to 1.51 which means the probability of no improvement in the symptoms with the drug is 1.51 times the probability of no improvement with the placebo.
  • The Breslow-Day test has a large p-value of 0.295 which indicates there is no significant difference in the odds ratios among the studies.

* I will show the odds ratio and relative risk calculation in Excel in another post.

Tableau: Show Table with Row Level Records with No Aggregation

A. Use Hyper Tableau Data Extracts

  • Follow post to create Hyper file

B. Worksheet configuration

  • Create new measure DISTINCTID
  • Analysis Menu: Aggregated Measures -> Uncheck
  • Analysis Menu: Stack Marks -> Off
  • Drag Measure Names from Dimension to Filters Shelf -> Measure Names will show in the Filter Shelf -> Edit Filter -> To only show Effect Size and N.
  • Drag Measure Values from Measures over Text on Mark Shelf -> Measure Values Shelf will appear with Effect Size and N
  • Drag Measure Names to Column Shelf
  • Drag DISTINCTID, Study, Grade range, Languages (bilingual) and Dominant cognitive benefits measured to Row Shelf
  • Make sure DISTINCTID -> computing using -> Table (down)

C. Worksheet Result

D. Important Notes

  • Measure Values and Measure Names need to work together to be effective.
  • The configuration for Aggregate Measures and Stack Marks can be different for every worksheet.

Tableau Special: Extract and Union Join Tables in PDF

A. Software

  • tableau prep builder 2019.2

B. Data Connection

  • PDF

C. Sample PDF document

page 9 of Odesope 2010

D. Data Interpreter

  • select “Use Data Interpreter”
  • drag “Page 9 Table 1” to “Add Data” canvas to start the flow
  • Effect size is recognized as character variable
  • In Input section, under Data Sample tab, select “Use all data”

E. Flow Development

  • Click “+” next to “Page 9 Table 1” in the flow and select “Add Union”
  • Union 1 shows there are 28 Rows of data with 7 Fields from “Page 9 Table 1”.
  • drag “Page 10 Table 1” over the Union 1 icon in the flow which means that “Page 10 Table 1” will be added to Union 1.
  • Union 1 now shows there are 58 Rows of data with 7 Fields from “Page 9 Table 1” and “Page 10 Table 1”.
  • add “Page 11 Table 1” to Union 1.

F. Add Calculation Field

  • Create a Calculated Field named [Effect Size] from the existing [Effect Size (g)]
  • Use split function to trim the ‘*’ from the string and then use float function to convert string to float.
  • Click ‘+’ next to Union 1 icon and select “Add Output”
  • Click Output icon to run flow
  • The output.hyper file will be generate under the c:\user\username\documents\My Tableau Prep Repository\Datasources\ folder

F. Use Case

  • Systematic Review/Meta-analysis