How To Calculate Effect Size In R
Effect Size Calculation & Conversion
A trouble meta-analysts oftentimes face is that suitable "raw" issue size information cannot be extracted from all included studies. Most functions in the {meta} parcel, such as metacont
(Chapter 4.ii.2) or metabin
(Chapter 4.2.3.1), tin can but exist used when complete raw result size data is available.
In practice, this frequently leads to difficulties. Some published articles, particularly older ones, do not report results in a way that allows to extract the needed (raw) effect size information. Information technology is non uncommon to find that a written report reports the results of a \(t\)-examination, one-way ANOVA, or \(\chi^2\)-test, but not the group-wise mean and standard deviation, or the number of events in the study conditions, that we need for our meta-analysis.
The good news is that we can sometimes convert reported information into the desired consequence size format. This makes it possible to include affected studies in a meta-analysis with pre-calculated data (Affiliate 4.2.1) using metagen
. For example, we can catechumen the results of a two-sample \(t\)-test to a standardized hateful deviation and its standard error, and and so use metagen
to perform a meta-analysis of pre-calculated SMDs. The {esc} bundle (Lüdecke 2019) provides several helpful functions which let us to perform such conversions directly in R.
Hateful & Standard Fault
When computing SMDs or Hedges' \(g\) from the mean and standard error, nosotros can make employ of the fact that the standard deviation of a mean is divers equally its standard error, with the square root of the sample size "factored out" (Thalheimer and Cook 2002):
\[\begin{equation} \text{SD} =\text{SE}\sqrt{n} \tag{17.1} \finish{equation}\]
We can calculate the SMD or Hedges' \(g\) using the esc_mean_se
function. Hither is an example:
library ( esc ) esc_mean_se (grp1m = 8.v, # mean of grouping 1 grp1se = 1.5, # standard error of group ane grp1n = l, # sample in grouping one grp2m = 11, # mean of grouping ii grp2se = ane.viii, # standard error of group two grp2n = lx, # sample in group 2 es.type = "d" ) # catechumen to SMD; use "g" for Hedges' thousand
## ## Effect Size Calculation for Meta Assay ## ## Conversion: hateful and se to effect size d ## Consequence Size: -0.2012 ## Standard Error: 0.1920 ## Variance: 0.0369 ## Lower CI: -0.5774 ## Upper CI: 0.1751 ## Weight: 27.1366
Regression Coefficients
It is possible to calculate SMDs, Hedges' \(chiliad\) or a correlation \(r\) from standardized or unstandardized regression coefficients (Lipsey and Wilson 2001). For unstandardized coefficients, we can utilize the esc_B
function in {esc}. Here is an example:
library ( esc ) esc_B (b = 3.three, # unstandardized regression coefficient sdy = 5, # standard divergence of predicted variable y grp1n = 100, # sample size of the offset group grp2n = 150, # sample size of the second grouping es.type = "d" ) # catechumen to SMD; use "m" for Hedges' g
## ## Effect Size Calculation for Meta Analysis ## ## Conversion: unstandardized regression coefficient to effect size d ## Effect Size: 0.6962 ## Standard Mistake: 0.1328 ## Variance: 0.0176 ## Lower CI: 0.4359 ## Upper CI: 0.9565 ## Weight: 56.7018
esc_B (b = 2.ix, # unstandardized regression coefficient sdy = four, # standard deviation of the predicted variable y grp1n = 50, # sample size of the first group grp2n = fifty, # sample size of the second group es.blazon = "r" ) # convert to correlation
## Issue Size Calculation for Meta Assay ## ## Conversion: unstandardized regression coefficient ## to effect size correlation ## Result Size: 0.3611 ## Standard Fault: 0.1031 ## Variance: 0.0106 ## Lower CI: 0.1743 ## Upper CI: 0.5229 ## Weight: 94.0238 ## Fisher's z: 0.3782 ## Lower CIz: 0.1761 ## Upper CIz: 0.5803
Standardized regression coefficients tin exist transformed using esc_beta
.
esc_beta (beta = 0.32, # standardized regression coefficient sdy = 5, # standard departure of the predicted variable y grp1n = 100, # sample size of the start group grp2n = 150, # sample size of the 2d group es.type = "d" ) # convert to SMD; utilize "g" for Hedges' g
## ## Effect Size Calculation for Meta Assay ## ## Conversion: standardized regression coefficient to effect size d ## Effect Size: 0.6867 ## Standard Error: 0.1327 ## Variance: 0.0176 ## Lower CI: 0.4266 ## Upper CI: 0.9468 ## Weight: 56.7867
esc_beta (beta = 0.37, # standardized regression coefficient sdy = 4, # standard deviation of predicted variable y grp1n = 50, # sample size of the first group grp2n = 50, # sample size of the 2nd group es.type = "r" ) # convert to correlation
## Effect Size Calculation for Meta Assay ## ## Conversion: standardized regression coefficient ## to effect size correlation ## Effect Size: 0.3668 ## Standard Error: 0.1033 ## Variance: 0.0107 ## Lower CI: 0.1803 ## Upper CI: 0.5278 ## Weight: 93.7884 ## Fisher'southward z: 0.3847 ## Lower CIz: 0.1823 ## Upper CIz: 0.5871
Correlations
For as sized groups (\(n_1=n_2\)), we can utilize the post-obit formula to derive the SMD from the point-biserial correlation (Lipsey and Wilson 2001, chap. iii).
\[\begin{equation} r_{pb} = \frac{\text{SMD}}{\sqrt{\text{SMD}^ii+iv}} ~~~~~~~~ \text{SMD}=\frac{2r_{lead}}{\sqrt{i-r^2_{pb}}} \tag{17.2} \end{equation}\]
A different formula has to exist used for unequally sized groups (Aaron, Kromrey, and Ferron 1998):
\[\begin{align} r_{pb} &= \frac{\text{SMD}}{\sqrt{\text{SMD}^two+\dfrac{(N^2-2N)}{n_1n_2}}} \notag \\ \text{SMD} &= \dfrac{r_{pb}}{\sqrt{(1-r^two)\left(\frac{n_1}{Due north}\times\left(1-\frac{n_1}{Northward}\correct)\correct)}} \tag{17.3} \finish{marshal}\]
To convert \(r_{pb}\) to an SMD or Hedges' \(yard\), we tin use the esc_rpb
part.
library ( esc ) esc_rpb (r = 0.25, # betoken-biserial correlation grp1n = 99, # sample size of group one grp2n = 120, # sample size of group 2 es.type = "d" ) # convert to SMD; use "g" for Hedges' g
## ## Effect Size Calculation for Meta Assay ## ## Conversion: point-biserial r to effect size d ## Effect Size: 0.5188 ## Standard Error: 0.1380 ## Variance: 0.0190 ## Lower CI: 0.2483 ## Upper CI: 0.7893 ## Weight: 52.4967
One-Way ANOVAs
Nosotros can too derive the SMD from the \(F\)-value of a one-style ANOVA with ii groups. Such ANOVAs tin be identified by looking at the degrees of freedom. In a i-mode ANOVA with two groups, the degrees of freedom should ever start with 1 (e.g.\(F_{\text{i,147}}\)=5.31).
The formula used for the transformation looks like this (based on Rosnow and Rosenthal 1996; Rosnow, Rosenthal, and Rubin 2000; see Thalheimer and Cook 2002):
\[\begin{equation} \text{SMD} = \sqrt{ F\left(\frac{n_1+n_2}{n_1 n_2}\right)\left(\frac{n_1+n_2}{n_1+n_2-2}\right)} \tag{17.iv} \end{equation}\]
To calculate the SMD or Hedges' \(grand\) from \(F\)-values, we can use the esc_f
function. Hither is an example:
esc_f (f = 5.04, # F value of the one-style anova grp1n = 519, # sample size of grouping 1 grp2n = 528, # sample size of group 2 es.type = "grand" ) # convert to Hedges' g; use "d" for SMD
## ## Issue Size Calculation for Meta Analysis ## ## Conversion: F-value (one-style-Anova) to effect size Hedges' g ## Issue Size: 0.1387 ## Standard Error: 0.0619 ## Variance: 0.0038 ## Lower CI: 0.0174 ## Upper CI: 0.2600 ## Weight: 261.1022
Two-Sample \(t\)-Tests
An consequence size expressed equally a standardized hateful difference can also be derived from an independent ii-sample \(t\)-test value, using the post-obit formula (Rosnow, Rosenthal, and Rubin 2000; Thalheimer and Cook 2002):
\[\begin{equation} \text{SMD} = \frac {t(n_1+n_2)}{\sqrt{(n_1+n_2-two)(n_1n_2)}} \tag{17.five} \cease{equation}\]
In R, we can summate the SMD or Hedges' chiliad
from a \(t\)-value using the esc_t
office. Here is an case:
esc_t (t = iii.iii, # t-value grp1n = 100, # sample size of group1 grp2n = 150, # sample size of group 2 es.blazon= "d" ) # convert to SMD; use "thousand" for Hedges' g
## ## Consequence Size Calculation for Meta Analysis ## ## Conversion: t-value to result size d ## Effect Size: 0.4260 ## Standard Mistake: 0.1305 ## Variance: 0.0170 ## Lower CI: 0.1703 ## Upper CI: 0.6818 ## Weight: 58.7211
\(p\)-Values
At times, studies merely report the effect size (e.1000. a value of Cohen's \(d\)), the \(p\)-value of that effect, and nothing more than. Yet, to puddle results in a meta-analysis, we need a measure out of the precision of the outcome size, preferably the standard error.
In such cases, we must judge the standard error from the \(p\)-value of the upshot size. This is possible for effect sizes based on differences (i.eastward. SMDs), or ratios (i.eastward. take a chance or odds ratios), using the formulas by Altman and Bland (2011). These formulas are implemented in the se.from.p
function in R.
Bold a study with \(N=\) 71 participants, reporting an upshot size of \(d=\) 0.71 for which \(p=\) 0.013, we tin summate the standard mistake like this:
## EffectSize StandardError StandardDeviation LLCI ULCI ## 1 0.71 0.286 two.410 0.149 1.270
For a study with \(Due north=\) 200 participants reporting an upshot size of OR = 0.91 with \(p=\) 0.38, the standard error is calculated this way:
## [,1] ## logEffectSize -0.094 ## logStandardError 0.105 ## logStandardDeviation 1.498 ## logLLCI -0.302 ## logULCI 0.113 ## EffectSize 0.910 ## LLCI 0.739 ## ULCI 1.120
When upshot.size.type = "ratio"
, the role automatically also calculates the log-transformed consequence size and standard error, which are needed to use the metagen
office (Affiliate four.2.1).
\(\chi^2\) Tests
To convert a \(\chi^ii\) statistic to an odds ratio, the esc_chisq
function tin can exist used (bold that d.f. = 1; e.yard.\(\chi^2_1\) = 8.7). Here is an case:
esc_chisq (chisq = 7.9, # chi-squared value totaln = 100, # full sample size es.type = "cox.or" ) # convert to odds ratio
## ## Effect Size Adding for Meta Analysis ## ## Conversion: chi-squared-value to event size Cox odds ratios ## Upshot Size: 2.6287 ## Standard Error: 0.3440 ## Variance: 0.1183 ## Lower CI: ane.3394 ## Upper CI: v.1589 ## Weight: eight.4502
Number Needed To Treat
Effect sizes such every bit Cohen'southward \(d\) or Hedges' \(g\) are often difficult to interpret from a practical standpoint. Imagine that we found an intervention effect of \(g=\) 0.35 in our meta-analysis. How can nosotros communicate what such an upshot means to patients, public officials, medical professionals, or other stakeholders?
To brand information technology easier for others to understand the results, meta-analyses also ofttimes written report the number needed to treat (NNT). This measure is virtually commonly used in medical enquiry. It signifies how many additional patients must receive the treatment under study to forbid one additional negative event (eastward.g. relapse) or attain one boosted positive outcome (eastward.g. symptom remission, response). If NNT = three, for example, we can say that three individuals must receive the handling to avoid ane additional relapse case; or that three patients must exist treated to achieve one additional case of reliable symptom remission, depending on the research question.
When we are dealing with binary effect size data, calculation of NNTs is relatively easy. The formula looks like this:
\[\begin{equation} \text{NNT} = (p_{e_{\text{treat}}}-p_{e_{\text{control}}})^{-1} \tag{17.six} \end{equation}\]
In this formula, \(p_{e_{\text{care for}}}\) and \(p_{e_{\text{control}}}\) are the proportions of participants who experienced the event in the treatment and command grouping, respectively. These proportions are identical to the "risks" used to calculate the hazard ratio (Chapter iii.3.2.ane), and likewise known equally the experimental group event rate (EER) and control grouping event charge per unit (CER). Given its formula, the NTT can also be described as the inverse of the (absolute) risk difference.
Converting standardized mean differences or Hedges' \(g\) to a NNT is more complicated. There are two ordinarily used methods:
-
The method by Kraemer and Kupfer (2006), which calculates the NNT from an area under the bend (AUC), defined every bit the probability that a patient in the handling group has an issue preferable to the one in the control grouping. This method allows to calculate the NNT directly from an SMD or \(k\) without whatever extra information.
-
The method past Furukawa and Leucht calculates NNT values from SMDs using the CER, or a reasonable estimate thereof. Furukawa'due south method has been shown to be superior in estimating the true NNT value compared to the Kraemer & Kupfer method (Furukawa and Leucht 2011). If we can make reasonable estimates of the CER, Furukawa's method should therefore ever exist preferred.
When we use risk or odds ratios as effect size measures, NNTs tin be calculated directly from {meta} objects using the nnt
office. After running our meta-analysis using metabin
(Chapter four.ii.three.i), we merely have to plug the results into the nnt
role. Here is an example:
library ( meta ) information ( Olkin1995 ) # Run meta-analysis with binary effect size information g.b <- metabin ( ev.exp, n.exp, ev.cont, north.cont, data = Olkin1995, sm = "RR" ) nnt ( thou.b )
## Common event model: ## ## p.c NNT lower.NNT upper.NNT ## 0.0000 Inf Inf Inf ## 0.1440 xxx.5677 26.1222 37.2386 ## 0.3750 11.7383 ten.0312 14.3001 ## ## Random effects model: ## ## p.c NNT lower.NNT upper.NNT ## 0.0000 Inf Inf Inf ## 0.1440 30.1139 24.0662 41.3519 ## 0.3750 eleven.5641 ix.2417 15.8796
The nnt
function provides the number needed to treat for different assumed CERs. The three lines show the result for the minimum, mean, and maximum CER in our data set. The mean CER estimate is the "typical" NNT that is usually reported.
It is as well possible to use nnt
with metagen
models, as long every bit the summary measure sm
is either "RR"
or "OR"
. For such models, we also need to specify the assumed CER in the p.c
argument in nnt
. Here is an instance using the chiliad.gen_bin
meta-analysis object we created in Chapter 4.2.3.1.5:
# Also evidence fixed-effect model results one thousand.gen_bin <- update.meta ( m.gen_bin, fixed = TRUE ) nnt ( yard.gen_bin, p.c = 0.1 ) # Use a CER of 0.1
## Common consequence model: ## ## p.c NNT lower.NNT upper.NNT ## 0.k -9.6906 -11.6058 -8.2116 ## ## Random effects model: ## ## p.c NNT lower.NNT upper.NNT ## 0.1000 -9.7870 -16.4843 -6.4761
Standardized mean differences or Hedges' \(m\) can exist converted to the NNT using the NNT
function in {dmetar}.
To apply the Kraemer & Kupfer method, we only have to provide the NNT
part with an effect size (SMD or \(g\)). Furukawa'southward method is automatically used as presently equally a CER
value is supplied.
## Kraemer & Kupfer method used. ## [1] seven.270711
NNT (d = 0.245, CER = 0.35 )
## Furukawa & Leucht method used. ## [1] 10.61533
A Number to be Treated with Care: Criticism of the NNT
While common, usage of NNTs to communicate the results of clinical trials is not uncontroversial. Criticisms include that lay people often misunderstand it (despite purportedly being an "intuitive" alternative to other effect size measures, Christensen and Kristiansen 2006) ; and that researchers often calculate NNTs incorrectly (Mendes, Alves, and Batel-Marques 2017) .
Furthermore, information technology is not possible to calculate reliable standard errors (and conviction intervals) of NNTs, which ways that they tin non be used in meta-analyses (Hutton 2010) . Information technology is merely possible to convert results to the NNT after pooling has been conducted using another effect size mensurate.
Multi-Arm Studies
To avoid unit-of-analysis errors (Affiliate three.5.two), it is sometimes necessary to puddle the mean and standard deviation of 2 or more trial arms before calculating a (standardized) mean difference. To pool continuous upshot size information of 2 groups, nosotros can use these equations:
\[\brainstorm{marshal} n_{\text{pooled}} &= n_1 + n_2 \\ m_{\text{pooled}} &= \frac{n_1m_1+n_2m_2}{n_1+n_2} \\ SD_{\text{pooled}} &= \sqrt{\frac{(n_1-ane)SD^{2}_{1}+ (n_2-1)SD^{ii}_{2}+\frac{n_1n_2}{n_1+n_2}(m^{2}_1+m^{ii}_2-2m_1m_2)} {n_1+n_2-1}} \end{align}\]
We can apply this formula in R using the pool.groups
office.
Here is an example:
library ( dmetar ) pool.groups (n1 = 50, # sample size group 1 n2 = 50, # sample size group two m1 = three.5, # mean group 1 m2 = 4, # hateful group two sd1 = 3, # sd group i sd2 = 3.8 ) # sd group2
## Mpooled SDpooled Npooled ## 1 three.75 3.415369 100
Assemblage of Event Sizes
The aggregate
function in {metafor} can be used to amass several dependent, pre-calculated outcome sizes into one estimate, for instance because they are part of the same study or cluster. This is a way to avert the unit-of-analysis error (run across Chapter iii.v.2), but requires u.s.a. to assume a value for the inside-study correlation, which is typically unknown. Another (and often preferable) way to deal with effect size dependencies are (correlated) hierarchical models, which are illustrated in Chapter 10.
In this example, we aggregate result sizes of the Chernobyl
data set (run across Affiliate x.2), so that each study merely provides one effect size:
library ( metafor ) library ( dmetar ) data ( "Chernobyl" ) # Convert 'Chernobyl' data to 'escalc' object Chernobyl <- escalc (yi = z, # Effect size sei = se.z, # Standard mistake information = Chernobyl ) # Amass upshot sizes on written report level # Nosotros assume a correlation of rho=0.6 Chernobyl.agg <- aggregate ( Chernobyl, cluster = author, rho = 0.half-dozen ) # Show aggregated results Chernobyl.agg [,c ( "writer", "yi", "vi" ) ]
## author yi half-dozen ## 1 Aghajanyan & Suskov (2009) 0.2415 0.0079 ## 2 Alexanin et al. (2010) one.3659 0.0012 ## 3 Bochkov (1993) 0.2081 0.0014 ## 4 Dubrova et al. (1996) 0.3068 0.0132 ## 5 Dubrova et al. (1997) 0.4453 0.0110 ## [...]
Please note that aggregate
returns the aggregated event sizes yi
as well equally their variance vi
, the square root of which is the standard fault.
\[\tag*{$\blacksquare$}\]
How To Calculate Effect Size In R,
Source: https://bookdown.org/MathiasHarrer/Doing_Meta_Analysis_in_R/es-calc.html
Posted by: savoiesendes.blogspot.com
0 Response to "How To Calculate Effect Size In R"
Post a Comment