Relatórios

Normal bivariada

A distribuição normal multivariada

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:

  1. Combinações lineares dos componentes#variáveis de \(X\) são normalmente distribuídas;
  2. Todos os subconjuntos dos componentes de \(X\) são normalmente distribuídos;
  3. Covariancia igual a zero implica que os componentes correspodentes são independentemente distribuídos;
  4. A distribuição condicional dos componentes seguem distribuição normal multivariada.

Funções para normal multivariada no R

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

Definindo informações para a análise gráfica

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

Analisando gráficos 3D

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)")

Curvas de nível

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"))

Análises para diferentes covariâncias

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:

Para vetor de médias diferentes de 0

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)")

Normal assimétrica univariada

Introdução

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\).

Normal assimétrica padrão

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)\).

Algumas propriedades

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*}\]

Normal assimétrica bivariada