Approximating Standard Deviation from Inter-Quantile Range
Inter-Quantile Range
Studies may report inter-quantile ranges in order to communicate the spread of the data. However, meta-analysts will need standard deviations (SD) to calculate effect size estimates such as standardized mean differences (i.e., Cohen’s
Now let’s compare the range of values covered by +/- 1 SDs of a normal distribution:
The range covered by
Step 2: Convert IQR to Standard Deviations
The quantile function (
Now that we have the IQR in terms of SD units, we can divide with the raw IQR to obtain an estimate of the SD of
# Define IQR
<- 30
X_25 <- 50
X_75 <- X_75 - X_25
X_75_25
# Compute IQR in SDs
<- qnorm(.75) - qnorm(.25)
S_75_25
# Estimate standard deviation
<- X_75_25 / S_75_25
S_X
#print results
print(S_X)
[1] 14.82602
Note the Assumptions!
Since this method provides an approximation of a normal distribution it is important to point out that the method may be biased under different distributions. For example, if we try the same method on a Student’s t distribution with heavy tails (3.5 degrees of freedom),
Applying it to simulated data
Lets see how it performs in simulated sample of normally distributed data… Close enough!!
# Set seed
set.seed(343)
# Simulate normal data (Mean = 10, SD = 5)
= rnorm(100,10,5)
X
# Define IQR
<- as.numeric(quantile(X,.25))
q25 <- as.numeric(quantile(X,.75))
q75 <- q75 - q25
X_75_25
# Compute IQR in SD units
<- qnorm(.75) - qnorm(.25)
S_75_25
# Estimate standard deviation
<- X_75_25 / S_75_25
S_X
# Print results
print(S_X)
[1] 4.706901