Seja \(X = (X_1, X_2, \dots, X_p)'\) uma variável aleatória de dimensão \(p\times1\). Temos que \(X\) tem distribuição normal e será p-variada quando a densidade da probabilidade conjunta for dada por
\[\begin{equation} f(x) = \frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}exp\left\{-\frac{1}{2}(x-\mu)'\Sigma^{-1}(x-\mu)\right\} \end{equation}\]
sendo \(x = (x_1, x_2, \dots, x_p)'\), \(- \infty < x_i < \infty\), \(i = 1, 2, \dots, p\), \(x \in \mathbb{R}^p\) ; \(\mu = (\mu_1, \mu_2, \dots, \mu_p)'\), \(\mu \in \mathbb{R}^p\), \(\Sigma_{p \times p}\) a matriz de variância-covariância definida por
\[\begin{equation} \begin{bmatrix} \sigma_{11} & \sigma_{12} & \dots & \sigma_{1p}\\ \sigma_{21} & \sigma_{22} & \dots & \sigma_{2p}\\ \vdots & \vdots & \ddots & \vdots\\ \sigma_{p1} & \sigma_{p2} & \dots & \sigma_{pp} \end{bmatrix} \end{equation}\]
sendo \(\sigma_{ii} = \sigma_i^2 = Var(X_i)\), \(j = 1,2,\dots,p\) e \(\sigma_{ij} = Cov(X_i, X_j) = \sigma_{ij}\) \(j = i = 1,2,\dots,p\) com \(i \neq j\). O coeficiente de correlação de \(X_i\) e \(X_j\) será dado por
\[\begin{equation} \rho_{ij} = \frac{\sigma_{ij}}{\sqrt{\sigma_{ii}}\sqrt{\sigma_{jj}}},\mbox{ }i = j = 1,2,\dots,p \mbox{, com } -1<\rho_{ij}<1. \end{equation}\]
Algumas propriedades da função normal multivariada, que é válida para \(p=2\) são:
Aqui iremos mostrar melhor funções no R para trabalhar com distribuições multivariadas. Para trabalhar com essa distribuição no R iremos utilizar o pacote mvtnorm. A fins de exemplificações e melhor visualização iremos nos restringir a normal bivariada.
Os seguintes pacotes serão utilizados:
library(mvtnorm) #para obter as densidades da normal multi(nesse caso bivariada)
library(GA) #gráficos 3D
library(plotly) #gráficos interativos
library(dplyr) #facilitação do código
library(grid) #juntar gráficos
library(gridExtra) #juntar gráficos
Iniciaremos essa exploração utilizando normal padrão bivariada:
mu <- c(0,0) # Vetor média igual a zero
Sigma <- diag(2) # Variância igual a um
mu
## [1] 0 0
Sigma
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
Primeiro iremos definir o intervalo dos eixos x e y da normal:
x <- seq(-4.5,4.5,length = 200) # vetor de tamanho 250
Após definido o intervalo dos eixos, vamos criar uma matriz com a densidade da normal bivariada:
densidade_padrao <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade_padrao[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
Agora tendo a matriz de densidade, iremos fazer alguns plots 3D utilizando a função persp3D do pacote GA e mudar alguns parametros para entender como cada um delas pode alterar o que teremos como resultado:
persp3D(x = x, y=x, z=densidade_padrao, xlab = "x", ylab = "y", zlab = "f(x,y)")
Para gerar um gráfico de curvas de nível, usaremos a função plot_ly do pacote plotly:
plot_ly(x=x, y=x, z=densidade_padrao, type = "contour") %>% layout(xaxis=list(title="x"),yaxis=list(title="y"))
A partir de agora temos conhecimento suficiente sobre as funções para voltar o foco para a analíse do que foi gerado. Para isso, iremos plotar gráficos 3D e suas respectivas curvas de nível, variando os intervalos dos eixos (x e y), a matriz de variância-covariância, o vetor de médias, etc. Iniciaremos com a normal padrão bivariada, ou seja, \(\mu = (0,0)\), \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 =0\) se \(i \neq j\).
mu_padrao <- c(0,0)
Sigma_padrao <- diag(2)
Como já temos a matriz densidade com essas informações vamos apenas rodar a função do gráfico novamente.
persp3D(x = x, y=x, z=densidade_padrao, phi = 30, theta = 30, xlab = "x", zlab="f(x,y)", ylab = "y")
Aqui podemos ver que na normão padrão bivariada geramos um gráfico com base em formato de círculo e que conforme se aproxima das médias (0,0) temos uma densidade maior. No intervalo -2 a 2 dos eixos é onde a densidade começa a ter resultados expressivos.
Continuando com \(\mu = (0,0)\) e com uma matriz de variância-covariância positiva e definida por \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 = 0.7\) se \(i \neq j\):
mu <- c(0,0)
Sigma <- cbind(c(1, 0.7), c(0.7, 1))
Agora calculamos a densidade:
densidade <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
Obtendo os seguintes gráficos 3D e de curva de nível:
persp3D(x = x, y=x, z=densidade, phi = 30, theta = 30, xlab = "x", ticktype = "detailed", zlab="f(x,y)", ylab = "y")
Dado os gráficos acima, vemos que quando \(0<cov(x,y)<1\) a nossa base começa a ficar com um formato mais de elipse e com uma inclinação positiva. Além disso, é vísivel que a densidade tem valores maiores quando temos a covariância maior que zero e positiva.
Veremos o que acontece quando temos \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 = -0.7\) se \(i \neq j\):
Sigma <- cbind(c(1, -0.7), c(-0.7, 1))
densidade <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
Definido essas alterações, temos os seguintes gráficos:
persp3D(x = x, y=x, z=densidade, xlab = "x", ylab = "y", zlab = "f(x,y)")
Nos gráficos acima vemos algo muito parecido com o que aconteceu com o caso anterior, a base em formato de elipse mas dessa vez com inclinação negativa. A densidade apresenta valores iguais que quando estávamos tratando da covarância positiva também, mas para combinações de x’s e y’s diferentes. Aqui podemos ver o comportamento da parte mais central da matriz de variância covariância:
Iniciando com \(\mu = (2,2)\) e com uma matriz de variância-covariância positiva e definida por \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 = 0\) se \(i \neq j\):
mu <- c(2,2)
Sigma <- diag(2)
densidade <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
persp3D(x = x, y=x, z=densidade, xlab = "x", ylab = "y", zlab = "f(x,y)")
Continuando com \(\mu = (2,2)\), e com uma matriz de variância-covariância positiva e definida por \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 = 0.7\) se \(i \neq j\):
mu <- c(2,2)
Sigma <- cbind(c(1,0.7), c(0.7,1))
densidade <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
persp3D(x = x, y=x, z=densidade, xlab = "x", ylab = "y", zlab = "f(x,y)")
com \(\mu = (-2,2)\) e com uma matriz de variância-covariância positiva e definida por \(\sigma_{ij}^2 = 1\) se \(i=j\) e \(\sigma_{ij}^2 = 0\) se \(i \neq j\):
mu <- c(-2,2)
Sigma <- diag(2)
densidade <- matrix(NA, length(x), length(x))
for(i in 1:length(x)){
for(j in 1:length(x)){
densidade[i,j]<-dmvnorm(x=c(x[i],x[j]), mean=mu, sigma=Sigma)
}
}
persp3D(x = x, y=x, z=densidade, xlab = "x", ylab = "y", zlab = "f(x,y)")
Seja \(X\) uma variável normal assimétrica com “concentração” em \(\lambda\), escala \(\delta\) e “forma” \(\alpha\). Aqui iremos denotar \(X \sim SN(x;\lambda,\delta^2,\alpha)\) no caso da função densidade probabilidade ser dada por,
\[\begin{eqnarray*} f(x;\lambda,\delta^2,\alpha) = \frac{2}{\delta} \phi\left(\frac{x - \lambda}{\delta}\right) \Phi\left(\alpha\frac{x - \lambda}{\delta}\right) \end{eqnarray*}\]
onde \(x\in \mathbb{R}\) \((\alpha, \lambda \in \mathbb{R}, \delta \in \mathbb{R}^+)\), \(\phi\) representa a distribuição densidade probabilidade de uma normal padrão e \(\Phi\) a função acumulada de uma normal padrão.
Quando os parâmetros \(\lambda\) e \(\delta\) são 0 e 1, respectivamente, temos então uma distribuição normal padrão assimétrica denotada por \(SN(\alpha)\). O \(\alpha\) está relacionado com a assimetria da distribuição e para o caso de uma normal padrão, temos \(\alpha = 0\).
Considerando que \(X\) tem distribuição normal padrão assimétrica com função desidade probabilidade dada por
\[\begin{eqnarray*} f(x\text{;}0,1^2,\alpha) = \frac{2}{1} \phi\left(\frac{x - 0}{1}\right) \Phi\left(\alpha\frac{x - 0}{1}\right) \end{eqnarray*}\]
que pode ser resumida a
\[\begin{eqnarray*} f(x\text{;}\alpha) = 2\phi(x)\Phi(\alpha x). \end{eqnarray*}\]
É importante ressaltar também que se Y é uma variável aleatória com distribuição normal assimétrica, ou seja, \(Y \sim SN(\lambda, \delta^2, \alpha)\), então \(Z = \frac{Y - \lambda}{\delta} \sim SN(\alpha)\).
Aqui será ilustrado o comportamento da distribuição normal padrão assimetrica para diferentes valores de \(\alpha \geq 0\). Para isso utilizaremos a biblioteca sn, que vem do termo em inglês skew normal, do software de programação estatístico R.
x <- seq(-4,4, 0.1)
y <- dsn(x, xi = 0, omega = 1, alpha = 0)
y1 <- dsn(x, xi = 0, omega = 1, alpha = 1)
y2 <- dsn(x, xi = 0, omega = 1, alpha = 3)
y3 <- dsn(x, xi = 0, omega = 1, alpha = 5)
y4 <- dsn(x, xi = 0, omega = 1, alpha = 100000)
plot(x, y4, type = "l", col = 7, lty = 6, lwd = 2, ylab = TeX("$f(x;\\alpha)$"))
lines(x, y3, col = 4, lty = 4, lwd = 2)
lines(x, y2, col = 3, lty = 3, lwd = 2)
lines(x, y1, col = 2, lty = 2, lwd = 2)
lines(x, y, col = 1, tly = 1, lwd = 2)
legend("topright", c(TeX("$\\alpha$ = 0"),TeX("$\\alpha$ = 1"), TeX("$\\alpha$ = 3"),TeX("$\\alpha$ = 5"),TeX("$\\alpha$ = $\\infty$")), col = c(1,2,3,4,7), lty = c(1,2,3,4,6), lwd = rep(2, 5))
Agora, será mostrado para \(\alpha \leq 0\):
x <- seq(-4,4, 0.1)
y <- dsn(x, xi = 0, omega = 1, alpha = 0)
y1 <- dsn(x, xi = 0, omega = 1, alpha = -1)
y2 <- dsn(x, xi = 0, omega = 1, alpha = -3)
y3 <- dsn(x, xi = 0, omega = 1, alpha = -5)
y4 <- dsn(x, xi = 0, omega = 1, alpha = -1000000)
plot(x, y4, type = "l", col = 7, lty = 6, lwd = 2, ylab = TeX("$f(x;\\alpha)$"))
lines(x, y3, col = 4, lty = 4, lwd = 2)
lines(x, y2, col = 3, lty = 3, lwd = 2)
lines(x, y1, col = 2, lty = 2, lwd = 2)
lines(x, y, col = 1, tly = 1, lwd = 2)
legend("topright", c(TeX("$\\alpha$ = 0"),TeX("$\\alpha$ = -1"), TeX("$\\alpha$ = -3"),TeX("$\\alpha$ = -5"),TeX("$\\alpha$ = $-\\infty$")), col = c(1,2,3,4,7), lty = c(1,2,3,4,6), lwd = rep(2, 5))
Algo que pode-se perceber olhando os gráficos gerados acima é primeiro a acentuação da assimetria quando o \(\alpha\) cresce ou decresce. Além disso, é perceptível que quando \(\alpha \to \pm \infty\) temos o formato de uma distribuição meia normal. Isso ocorre pelo seguinte motivo:
Assumindo que X é uma variável aleatória com distribuição normal padrão assimétrica. Quando \(\alpha \to \pm \infty\), \(\Phi(\alpha x)\) será igual a 1. Portanto, se \(\alpha \to \infty\) a função densidade probabilidade é dada por
\[\begin{eqnarray*} f(x\text{;}\alpha) = 2\phi(x), \mbox{ }x\geq 0. \end{eqnarray*}\]
Se \(\alpha \to - \infty\) a função densidade probabilidade é dada por
\[\begin{eqnarray*} f(x\text{;}\alpha) = 2\phi(x), \mbox{ }x\leq 0. \end{eqnarray*}\]