Can anyone give me examples of distributions symmetric around the mean but that are more densely concentrated around the mean than the Normal distribution for the same mean and variance? Thanks
Best Answer
You can also use heavy tail Lambert W x Gaussian random variables Y with tail parameter $delta geq 0$ and $alpha geq 0$. Similar to the $t_{nu}$ distribution, the Normal distribution is nested for $delta = 0$ (in this case the input $X$ equals output $Y$). In R you can simulate, estimate, plot, etc. several Lambert W x F distributionswith the LambertW package.
In this similar post I fix the input variance $sigma_X = 1$ and vary $delta$ from $0$ to $2$. As the variance of $Y$ depends on $delta$ ($sigma_Y$ increases with $delta$ and does not exist for $delta geq 0.5$), the comparison of densities are not at the same variance.
However, you want to compare the actual distribuation at the same (finite) variance, so we need to
- keep $delta < 0.5$ as otherwise $var(Y) rightarrow infty$ or undefined;
- and compute the corresponding input standard deviation $sigma_X = sigma_X(delta)$ so that $sigma_Y = sigma_Y(sigma_X, delta) = 1$ for any given $delta$.
The following plot shows densities at varying $delta$; as $delta$ increases the density becomes more peaked/concentrated around $0$.
library(LambertW) library(RColorBrewer) # several heavy-tail parameters (delta < 0.5 so that variance exists) delta.v <- seq(0, 0.45, length = 10) x.grid <- seq(-3, 3, length = 201) col.v <- colorRampPalette(c("blue", "red"))(length(delta.v)) pdf.vals <- matrix(NA, ncol = length(delta.v), nrow = length(x.grid)) for (ii in seq_along(delta.v)) { # compute sigma_x such that sigma_y(delta) = 1 sigma.x <- delta_01(delta.v[ii])["sigma_x"] theta.01 <- list(delta = delta.v[ii], beta = c(0, sigma.x)) pdf.vals[, ii] <- dLambertW(x.grid, "normal", theta = theta.01) } matplot(x.grid, pdf.vals, type = "l", col = col.v, lwd = 2, ylab = "", xlab = "") grid() legend("topleft", paste(delta.v), col = col.v, title = expression(delta), lwd = 3, lty = seq_along(delta.v))
And similar to post on t distribution peak height at $0$:
plot(delta.v, pdf.vals[x.grid == 0, ] / dnorm(0), pch = 19, lwd = 10, col = col.v, ylab = "", xlab = expression(delta), xlim = c(0, 0.5)) mtext("Relative peak height n (Normal(0, 1) = 1.0)", side = 2, line = 2) grid() abline(h = 1, lty = 2, col = "darkgreen")