The parameter \(\lambda\) in skew-symmetric models of the type (Azzalini 1985)
\[s(x\mid \mu, \sigma ,\lambda) = 2 f\left(\dfrac{x-\mu}{\sigma}\right)G\left(\lambda\dfrac{x-\mu}{\sigma}\right),\] controls the asymmetry of the probability density function (pdf), however, it has a different role for different choices of \(f\) and \(G\). In the case \(f=\phi\) and \(G=\Phi\), we obtain the skew-normal distribution (Azzalini 1985). In this case, Rubio and Genton (2016) pointed out that the normal distribution is virtually symmetric for \(\vert \lambda \vert < 1.25\). In this region, the shape parameter \(\lambda\) affects mainly the location of the mode and the scale of the density function, but the effect on asymmetry is negligible.
In the context of skew-symmetric models, we might be interested on identifying whether the skewness parameter has a non-negligible effect on the pdf or not, even if it is theoretically non-zero (Dette, Ley, and Rubio 2018). Thus, we can think of comparing a skew-symmetric model with parameters \((0,1,\lambda)\) and the corresponding ``closest’’ nested symmetric density \(f\) with location \(\mu\) and scale \(\sigma\). In the skew-normal case, we would like to compare the skew normal density with parameters \((0,1,\lambda)\) and the closest Normal density with location \(\mu\) and scale \(\sigma\). This is, we would like to find the closest normal model the skew normal model. For this purpose, we can employ the Total Variation distance and define the minimum distance
\[m(\lambda) = \min_{\mu,\sigma} d_{TV}\left(s(0,1,\lambda), s(\mu,\sigma,0)\right),\] where \(d_{TV}(f,g) = \dfrac{1}{2}\int_{\mathbb R}\vert f(x)-g(x)\vert dx\). This idea generalises the effect measure of \(\lambda\) proposed in Dette, Ley, and Rubio (2018), who consider measuring \(d_{TV}\left(s(0,1,\lambda), s(0,1,0)\right)\) instead.
The following R code shows the minimum TV distance between several skew-symmetric models and the corresponding nested symmetric models, as a function of \(\lambda\). We can see that the effect of the skewness parameter differ for different skew-symmetric distributions. This also provides an intuition about the nature of some inferential problems which appear when estimating \(\lambda\), such as those in the skew-normal distribution (Pewsey 2000). That is, in a neighbourhood of \(\lambda=0\), it is difficult to distinguish the skew-symmetric model from the nested symmetric model.
##################################################################################################
# Skew Normal
##################################################################################################
rm(list=ls())
library(sn)
## Loading required package: stats4
##
## Attaching package: 'sn'
## The following object is masked from 'package:stats':
##
## sd
# The Skew Normal is virtually symmetric for |lambda| < 1.25
tempf1 <- Vectorize(function(x) dsn(x,0,1,1))
tempf2 <- Vectorize(function(x) dnorm(x,0.534,exp(-0.2)))
curve(tempf1,-5,5, ylab = "Density")
curve(tempf2,-5,5,add=T,lty=2)
# TV distance between the SN distribution and the closest Normal model
dtv.min <- Vectorize(function(lambda){
dtv <- function(par){
tempf <- Vectorize(function(x) abs( dsn(x,0,1,lambda) - dnorm(x,par[1],exp(par[2])) ) )
int <- integrate(tempf,-Inf,Inf)$value
return(0.5*int)
}
val <- optim(c(0,0),dtv)$value
return(val)
})
dtv.min(1)
## [1] 0.01309021
curve(dtv.min, -3, 3, n = 300, lwd = 2, ylab = "m", xlab = expression(lambda))
abline(h=0.05, lwd = 2, col = "red")
##################################################################################################
# Skew Logistic
##################################################################################################
rm(list=ls())
# TV distance between the SL distribution and the closest Logistic model
dtv.min <- Vectorize(function(lambda){
dtv <- function(par){
tempf <- Vectorize(function(x) abs( 2*dlogis(x,0,1)*plogis(lambda*x,0,1) - dlogis(x,par[1],exp(par[2])) ) )
int <- integrate(tempf,-Inf,Inf)$value
return(0.5*int)
}
val <- optim(c(0,0),dtv)$value
return(val)
})
dtv.min(1)
## [1] 0.0401328
curve(dtv.min, -3, 3, n = 300, lwd = 2, ylab = "m", xlab = expression(lambda))
abline(h=0.05, lwd = 2, col = "red")
##################################################################################################
# Skew t with 2 degrees of freedom
##################################################################################################
rm(list=ls())
library(sn)
# TV distance between the St(2) distribution and the closest Student-t model
dtv.min <- Vectorize(function(lambda){
dtv <- function(par){
tempf <- Vectorize(function(x) abs( dst(x,0,1,lambda,2) - dt((x - par[1])/exp(par[2]),df=2)/exp(par[2] ) ))
int <- integrate(tempf,-Inf,Inf)$value
return(0.5*int)
}
val <- optim(c(0,0),dtv)$value
return(val)
})
dtv.min(1)
## [1] 0.07468986
curve(dtv.min, -3, 3, n = 300, lwd = 2, ylab = "m", xlab = expression(lambda))
abline(h=0.05, lwd = 2, col = "red")