Nesta sessão discutiremos a obtenção de intervalos de confiança baseado na função deviance.
Seja \(X_1, \ldots , X_n\) a.a. de uma distribuição normal de média \(\theta \) e variância 1. Vimos que:
A função de log-verossimilhança é dada por \(l(\theta ) = {\rm cte} + \frac {1}{2} \sum _{i=1}^{n} (x_i - \theta )^2\);
o estimador de máxima verossimilhança é \(\hat {\theta } = \frac {\sum _{i=1}^{n} X_i}{n} = \bar {X}\);
a função deviance é \(D(\theta ) = n(\bar {x} - \theta )^2\);
e neste caso a deviance tem distribuição exata \(\chi ^2_{(1)}\);
e os limites do intervalo são dados por \(\bar {x} \stackrel {+}{-} \sqrt {c^*/n}\), onde \(c^*\) é o quantil \((1 - \alpha /2)\) da distribuição \(\chi ^2_{(1)}\).
Vamos considerar que temos uma amostra onde \(n = 20\) e \(\bar {x} = 32\). Neste caso a função deviance é como mostrada na Figura 40 que é obtida com os comandos abaixo onde primeiro definimos uma função para calcular a deviance que depois é mostrada em um gráfico para valores entre 30 e 34. Para obtermos um intervalo a 95% de confiança escolhemos o quantil correspondente na distribuição \(\chi ^2_{(1)}\) e mostrado pela linha tracejada no gráfico. Os pontos onde esta linha cortam a função são, neste exemplo, determinados analiticamente pela expressão dada acima e indicados pelas setas verticais no gráfico.
> dev.norm.v1 <- function(theta, n, xbar){n * (xbar - theta)^2} > thetaN.vals <- seq(31, 33, l=101) > dev.vals <- dev.norm.v1(thetaN.vals, n=20, xbar=32) > plot(thetaN.vals, dev.vals, ty="l", + xlab=expression(theta), ylab=expression(D(theta))) > L.95 <- qchisq(0.95, df = 1) > abline(h = L.95, lty=3) > IC <- 32 + c(-1, 1) * sqrt(L.95/20) > IC > arrows(IC, rep(L.95,2), IC, rep(0,2), length=0.1)
Vamos agora examinar o efeito do tamanho da amostra na função. A Figura 41 mostra as funções para três tamanhos de amostra, \(n=10, 20 \) e \( 50 \) que são obtidas com os comandos abaixo. A linha horizontal mostra o efeito nas amplitudes dos IC’s.
> L.95 <- qchisq(0.95, df = 1) > > dev10.vals <- dev.norm.v1(thetaN.vals, n=10, xbar=32) > plot(thetaN.vals, dev10.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta))) > IC10 <- 32 + c(-1, 1) * sqrt(L.95/10) > arrows(IC10, rep(L.95,2), IC10, rep(0,2), length=0.1) > > dev20.vals <- dev.norm.v1(thetaN.vals, n=20, xbar=32) > lines(thetaN.vals, dev20.vals, lty=2) > IC20 <- 32 + c(-1, 1) * sqrt(L.95/20) > arrows(IC20, rep(L.95,2), IC20, rep(0,2), length=0.1, lty=2) > > dev50.vals <- dev.norm.v1(thetaN.vals, n=50, xbar=32) > lines(thetaN.vals, dev50.vals, lwd=2) > IC50 <- 32 + c(-1, 1) * sqrt(L.95/50) > arrows(IC50, rep(L.95,2), IC50, rep(0,2), length=0.1, lwd=2) > > abline(h = qchisq(0.95, df = 1), lty=3) > legend(31, 2, c('n=10', 'n=20', 'n=50'), lty=c(1,2,1), lwd=c(1,1,2), cex=0.7)
Seja \(x_1, \ldots , x_n\) a.a. de uma distribuição exponencial de parâmetro \(\theta \) com função de densidade \(f(x) = \theta \exp \{-\theta x\}\). Vimos que:
A função de log-verossimilhança é dada por \(l(\theta ) = n \log (\theta ) - \theta n \bar {x}\);
o estimador de máxima verossimilhança é \(\hat {\theta } = \frac {n}{\sum _{i=1}^{n} X_i} = \frac {1}{\bar {X}}\);
a função deviance é \(D(\theta ) = 2n\left [\log (\hat {\theta }/\theta ) + \bar {x}(\theta - \hat {\theta })\right ]\);
e neste caso a deviance tem distribuição assintótica \(\chi ^2_{(1)}\);
e os limites do intervalo não podem ser obtidos analiticamente, devendo ser obtidos por:
A seguir vamos ilustrar a obtenção destes intervalos no R. Vamos considerar que temos uma amostra onde \(n = 20\) e \(\bar {x} = 10\) para a qual a função deviance é mostrada na Figura 42 e obtida de forma análoga ao exemplo anterior. O estimador de máxima verossimilhança pode ser obtido analiticamente neste exemplo \(\hat {\theta } = 1/\bar {x} = 1/10 = 0.1\).
> dev.exp <- function(theta, n, xbar){ + 2*n*(log((1/xbar)/theta) + xbar*(theta-(1/xbar))) + } > thetaE.vals <- seq(0.04,0.20, l=101) > dev.vals <- dev.exp(thetaE.vals, n=20, xbar=10) > plot(thetaE.vals, dev.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta)))
Neste exemplo, diferentemente do anterior, não determinamos a distribuição exata da deviance e usamos a distribuição assintótica \(\chi ^2_{(1)}\) na qual se baseia a linha de corte tracejada mostrada no gráfico para definir o IC do parâmetro ao nível de 95% de confiança.
Para encontrar os limites do IC precisamos dos valores no eixo dos parâmetros nos pontos onde a linha de corte toca a função deviance o que corresponde a resolver a equação \(D(\theta ) = 2n\left [\log (\hat {\theta }/\theta ) + \bar {x}(\theta - \hat {\theta })\right ] = c^*\) onde \(c^*\) é quantil da distribuição da \(\chi ^2\) com 1 grau de liberdade correspondente ao nível de confiança desejado. Por exemplo, para 95% o valor de \(\chi ^2_{1, 0.95}\) é 3.84. Como, diferentemente do exemplo anterior, esta equação não tem solução analítica vamos examinar a seguir duas possíveis soluções para encontrar os limites do intervalo.
Iremos aqui considerar uma solução simples baseada no gráfico da função deviance para encontrar os limites do IC que consiste no seguinte: Para fazermos o gráfico da deviance criamos uma sequência de valores do parâmetro \(\theta \). A cada um destes valores corresponde um valor de \(D(\theta )\). Vamos então localizar os valores de \(\theta \) para os quais \(D(\theta )\) é o mais próximo possível do ponto de corte. Isto é feito com o código abaixo e o resultado exibido na Figura 43.
> plot(thetaE.vals, dev.vals, ty="l", xlab=expression(theta), ylab=expression(D(theta))) > L.95 <- qchisq(0.95, df = 1) > abline(h = L.95, lty=3) > dif <- abs(dev.vals - L.95) > #linf <- thetaE.vals[thetaE.vals<(1/10)][which.min(dif[thetaE.vals<(1/10)])] > #lsup <- thetaE.vals[thetaE.vals>(1/10)][which.min(dif[thetaE.vals>(1/10)])] > #limites.dev <- c(linf, lsup) > #limites.dev > theta.est <- 1/10 > lim.fc <- function(x) dev.exp(x, n=20, xbar=10) - L.95 > ICdev <- c(uniroot(lim.fc, c(0, theta.est))$root, + uniroot(lim.fc, c(theta.est, 1))$root) > arrows(ICdev, rep(L.95,2), ICdev, rep(0,2), len=0.1) > text(ICdev, 0, round(ICdev, dig=3), pos=1, cex=0.8, offset=0.3)
Note que neste código procuramos primeiro o limite inferior entre os valores menores que a estimativa do parâmetro (1/10) e depois o limite superior entre os valores maiores que esta estimativa. Para isto usamos a função uniroot() que fornece raízes unidimensionais de uma função que definimos como a diferença entre a função deviance e o valor de corte definido pela distribuição \(\chi ^2\) para o nível de significância desejado.
Nesta abordagem aproximamos a função deviance por uma função quadrática obtida pela expansão por série de Taylor ao redor do estimador de máxima verossimilhança: \[D(\theta ) \approx n\left (\frac {\theta - \hat {\theta }}{\hat {\theta }} \right )^2.\] A Figura 44 obtida com os comandos mostra o gráfico desta função deviance aproximada. A Figura também mostra os IC’s obtido com esta função. Para a aproximação quadrática os limites dos intervalos são facilmente determinados analiticamente e neste caso dados por: \[\left (\hat {\theta }(1 - \sqrt {c^*/n})\;\; , \;\; \hat {\theta }(1 + \sqrt {c^*/n}) \right ).\]
> devap.exp <- function(theta, n, xbar){n * (xbar *(theta - (1/xbar)))^2} > devap.vals <- devap.exp(thetaE.vals, n=20, xbar=10) > plot(thetaE.vals, devap.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta))) > L.95 <- qchisq(0.95, df = 1) > abline(h = L.95, lty=3) > ICdevap <- (1/10)*(1 + c(-1,1) * sqrt(L.95/20)) > ICdevap
[1] 0.05617387 0.14382613
> arrows(ICdevap, rep(L.95,2), ICdevap, rep(0,2), len=0.1) > text(ICdevap, 0, round(ICdevap, dig=3), pos=1, cex=0.8, offset=0.3)
Examinando os limites dos intervalos encontrados anteriormente podemos ver que são diferentes. Vamos agora colocar os resultados pelos dois métodos em um mesmo gráfico (Figura 45) para comparar os resultados.
> plot(thetaE.vals, dev.vals, ty="l", + xlab=expression(theta), ylab=expression(D(theta))) > lines(thetaE.vals, devap.vals, lty=2) > abline(h = L.95, lty=3) > arrows(ICdev, rep(L.95,2), ICdev, rep(0,2), len=0.1) > arrows(ICdevap, rep(L.95,2), ICdevap, rep(0,2), lty=2, len=0.1) > legend(0.07, 12, c('deviance', 'aproximação quadrática'), lty=c(1,2), cex=0.8)
Vamos agora examinar o efeito do tamanho da amostra na função deviance e sua aproximação quadrática. A Figura 46 mostra as funções para três tamanhos de amostra, \(n=10, 30\) e \(100\) que são obtidas com os comandos abaixo onde vemos que a aproximação fica cada vez melhor com o aumento do tamanho da amostra.
> thetaE.vals <- seq(0.04, 0.20, l=101) > dev10.vals <- dev.exp(thetaE.vals, n=10, xbar=10) > plot(thetaE.vals, dev10.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta))) > devap10.vals <- devap.exp(thetaE.vals, n=10, xbar=10) > lines(thetaE.vals, devap10.vals, lty=2) > abline(h = qchisq(0.95, df = 1), lty=3) > > dev30.vals <- dev.exp(thetaE.vals, n=30, xbar=10) > plot(thetaE.vals, dev30.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta))) > devap30.vals <- devap.exp(thetaE.vals, n=30, xbar=10) > lines(thetaE.vals, devap30.vals, lty=2) > abline(h = qchisq(0.95, df = 1), lty=3) > > dev100.vals <- dev.exp(thetaE.vals, n=100, xbar=10) > plot(thetaE.vals, dev100.vals, ty='l', + xlab=expression(theta), ylab=expression(D(theta))) > devap100.vals <- devap.exp(thetaE.vals, n=100, xbar=10) > lines(thetaE.vals, devap100.vals, lty=2) > abline(h = qchisq(0.95, df = 1), lty=3)
Seja \(14.1, 30.0, 19.6, 28.2, 12.5, 15.2, 17.1, 11.0, 25.9, 13.2, 22.8, 22.1\) a.a. de uma distribuição normal de média 20 e variância \(\sigma ^2\).
Obtenha a função deviance para \(\sigma ^2\) e faça o seu gráfico.
Obtenha a função deviance para \(\sigma \) e faça o seu gráfico.
Obtenha os IC’s a 90% de confiança.
Repita as análises mostradas no exemplo acima da distribuição exponencial mas agora utilizando a seguinte parametrização para a função de densidade: \[f(x) = \frac {1}{\lambda } \exp {(-x/\lambda )} \;\;\; x \geq 0.\] Discuta as diferenças entre os resultados obtidos nas duas parametrizações.