Computing the Mean Absolute Deviation to Standard Deviation Ratio
Summary
This exchange corrects a numerical check of the relationship between mean absolute deviation and standard deviation for normally distributed observations with zero mean. The calculation in the question divided the sum of absolute observations by the square root of the sum of squared observations but omitted the sample-size normalization needed to compare the two sample measures. The accepted answer states the formulas for mean absolute deviation and standard deviation and combines them into a ratio that includes the square root of the sample count in the denominator.
The example reports that this corrected calculation gives a value near 0.8 for the simulated normal sample. The discussion is a compact reminder to normalize aggregate statistics consistently before comparing them. It addresses the zero-mean case shown and does not discuss nonzero means, alternative definitions of mean deviation, estimation uncertainty, or how the relationship changes for other distributions.
Key ideas
- Mean absolute deviation for zero-mean observations is the average absolute observation.
- Standard deviation is the square root of the average squared observation in this case.
- A ratio based on sums must include matching sample-size normalization.
- The example reports a ratio near 0.8 for a simulated standard normal sample.
- The calculation applies to the zero-mean setup shown and is not a general distributional result.
Tags
Full text
# Verify numerically relation between mean deviation and standard deviation # Verify numerically relation between mean deviation and standard deviation I was reading "We Don’t Quite Know What We Are Talking About When We Talk About Volatility" by Goldstein and Taleb, and I was trying to quickly verify numerically the relation between mean deviation and standard deviation. However, I get that 0.8 is the ratio between mean deviation and variance, not mean deviation and standard deviation. See code example below. Can anybody explain to me what I am doing wrong? ``` import numpy as np n = 10000 x = np.random.normal(0, 1, size=[n, 1]) sum(abs(x)) / sum(x ** 2) # approx 0.8 sum(abs(x)) / sum(x ** 2) ** 0.5 # approx 80 ``` ## Answer by Julie Taylor (score 2) https://quant.stackexchange.com/a/69732 There's a small typo, Mean absolute deviation, with 0 mean = sum(abs(x))/n Standard deviation, with 0 mean = np.sqrt(sum(x ** 2))/np.sqrt(n) So when you divide MAD over SD you should use: sum(abs(x)) / (np.sqrt(n) * np.sqrt(sum(x ** 2))) which gives 0.8 as expected
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.