MAE0524: An´ alise Bayesiana de Dados
Aula 3: Uma introdu¸c˜ao ao R Gualberto Segundo Agamez Montalvo Instituto de Matem´atica e Estat´ıstica - USP
23 de fevereiro de 2016
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Explorando a robustez da estat´ısticat.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Explorando a robustez da estat´ısticat. Introdu¸c˜ao.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Explorando a robustez da estat´ısticat. Introdu¸c˜ao.
Introdu¸c˜ ao
Sejamx= (x1,· · · , xm)tey= (y1,· · · , yn)tduas amostras independentes. Que- remos testar a hip´otese de que a m´edia da popula¸c˜aox´e igual `a m´edia da popula¸c˜ao y, isto ´e,
H0:µx=µy.
O teste padr˜ao desta hip´otese ´e baseiado na estat´ısticat dada por T =
X¯−Y¯ spp
1/m+ 1/n,
Explorando a robustez da estat´ısticat. Introdu¸c˜ao.
Introdu¸c˜ ao
sendo:
X¯ eY¯ as m´edias amostrais dexey, respectivamente;
sp o desvio padr˜ao combinado dado por
sp= s
(m−1)s2x+ (n−1)s2y m+n−2 .
Explorando a robustez da estat´ısticat. Introdu¸c˜ao.
Introdu¸c˜ ao
Sob a hip´oteseH0, a estat´ısticaT tem uma distribui¸c˜aot−student comm+n−2 graus de liberdade quando
xey s˜ao amostras aleat´orias independentes com distribui¸c˜ao normal;
os desvios padr˜ao das popula¸c˜oesxey s˜ao iguais, isto ´e,σx=σy.
Portanto, para um n´ıvel de significˆanciaα,H0 ´e rejeitado quando
|T| ≥tm+n−2,α/2,
sendo,tdf,αo quantil de uma vari´avel aleat´oriat−student comdfgraus de liberdade.
Explorando a robustez da estat´ısticat. Introdu¸c˜ao.
Exemplo
> t.teste <- function(x,y){
+ m <- length(x) + n <- length(y)
+ sp <- sqrt(((m-1)*sd(x)^2+(n-1)*sd(y)^2)/(m+n-2)) + t.estat <- (mean(x)-mean(y))/(sp*sqrt(1/m+1/n)) + return(t.estat)
+ }
> x <- c(1,4,3,6,5)
> y <- c(5,4,7,6,10)
> t.teste(x,y) [1] -1.937926
Explorando a robustez da estat´ısticat. Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Explorando a robustez da estat´ısticat. Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Programa¸c˜ ao de uma simula¸c˜ ao de M.C.
Suponha que temos interesse no n´ıvel de significˆancia verdadeiro para a estat´ısticat quando as popula¸c˜oes n˜ao seguem as hip´oteses de normalidade e variˆancias iguais.
De forma geral, o n´ıvel de significˆancia verdadeiro depender´a de:
o n´ıvel de significˆanciaαestabelecido;
a forma e a dispers˜ao das popula¸c˜oes;
os tamanhos de amostraismen.
O verdadeiro n´ıvel de significˆancia ´e determinado por αT =P |T| ≥tm+n−2,α/2
.
Explorando a robustez da estat´ısticat. Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Programa¸c˜ ao de uma simula¸c˜ ao de M.C.
Um algoritmo de simula¸c˜ao para calcular αT:
Simular uma amostra aleat´oria xm de uma primeira popula¸c˜ao e yn de uma segunda popula¸c˜ao.
Calcular a estat´ısticaT.
Decida se|T|excede o ponto cr´ıtico eH0´e rejeitado.
Repetir os passos 1-3 do algoritmo N vezes. Uma estimativa do verdadeiro n´ıvel de significˆancia ´e dada por
ˆ
αT =n´umero de rejei¸c˜oes deH0
N .
Explorando a robustez da estat´ısticat. Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Exemplo
> Nivel.verd <- function(alpha,m,n,N){
+ n.reject <- 0 + for (i in 1:N) + {
+ x <- rnorm(m, 0, 1) # simular da popula¸c~ao 1 + y <- rnorm(n, 0, 1) # simular da popula¸c~ao 2 + t.estat <- t.teste(x,y)
+ if (abs(t.estat) > qt(1-alpha/2,n+m-2)) + n.reject <- n.reject + 1
+ }
+ Niver.sig.verd <- n.reject/N + print(Niver.sig.verd)
+ }
Explorando a robustez da estat´ısticat. Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Exemplo
Os resultados obtidos s˜ao:
> alpha <- 0.1; m <- 10; n <- 10; N <- 10000
> Nivel.verd(alpha,m,n,N) [1] 0.097
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
Nesta aplica¸c˜ao vamos obter o valor do verdadeiro n´ıvel de significˆancia do teste para os casos:
Popula¸c˜oes normais com dispers˜ao diferente.
Popula¸c˜oest−students com graus de liberdade iguais.
Popula¸c˜oest−students com graus de liberdade diferentes.
Popula¸c˜oes exponenciais com taxas iguais.
Popula¸c˜oes exponenciais com taxas diferentes.
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
Nivel.apli <- function(alpha,m,n,N,Metodo,Par){
n.reject <- 0 if(Metodo=="norm"){
for (i in 1:N) {
x <- rnorm(m, mean = 0, sd=Par[1]) # simular da popula¸c~ao 1 y <- rnorm(n, mean = 0, sd=Par[2]) # simular da popula¸c~ao 2 t.estat <- t.teste(x,y)
if (abs(t.estat) > qt(1-alpha/2,n+m-2)) n.reject <- n.reject + 1
}
Niver.sig.verd <- n.reject/N print(Niver.sig.verd)
}else if(Metodo=="exp"){
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
for (i in 1:N) {
x <- rexp(m,rate=Par[1]) # simular da popula¸c~ao 1 y <- rexp(n,rate=Par[2]) # simular da popula¸c~ao 2 t.estat <- t.teste(x,y)
if (abs(t.estat) > qt(1-alpha/2,n+m-2)) n.reject <- n.reject + 1
}
Niver.sig.verd <- n.reject/N print(Niver.sig.verd)
}else if(Metodo=="t"){
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
for (i in 1:N) {
x <- rt(m,df=Par[1]) # simular da popula¸c~ao 1 y <- rt(n,df=Par[2]) # simular da popula¸c~ao 2 t.estat <- t.teste(x,y)
if (abs(t.estat) > qt(1-alpha/2,n+m-2)) n.reject <- n.reject + 1
}
Niver.sig.verd <- n.reject/N print(Niver.sig.verd)
}}
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
Os resultados obtidos com nossa fun¸c˜ao s˜ao:
> alpha <- 0.1; m <- 10; n <- 10; N <- 100000
>
> Par <-c(1,10)
> Nivel.apli(alpha,m,n,N,"norm",Par) [1] 0.11736
>
> Par <-c(4,4)
> Nivel.apli(alpha,m,n,N,"t",Par) [1] 0.09792
>
> Par <-c(2,7)
> Nivel.apli(alpha,m,n,N,"t",Par) [1] 0.09016
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
> Par <-c(1,1)
> Nivel.apli(alpha,m,n,N,"exp",Par) [1] 0.09613
>
> Par <-c(0.5,5)
> Nivel.apli(alpha,m,n,N,"exp",Par) [1] 0.98653
Explorando a robustez da estat´ısticat. Aplica¸c˜ao.
Aplica¸c˜ ao.
Tabela:Resultados.
X∼N(0,1)eY ∼N(0,10) 0.1174
X∼t(df = 4)eY ∼t(df= 4) 0.0979 X∼t(df = 2)eY ∼t(df= 7) 0.0902 X∼exp(rate= 1)eY ∼exp(rate= 1) 0.0961 X∼exp(rate= 2)eY ∼exp(rate= 1/10) 0.9865
Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
Desempenho do I.C. para uma propor¸c˜ ao.
Suponha quey´e uma observa¸c˜ao de uma vari´avel aleat´oria binomial com tamanho amostraisne probabilidade de sucessop. O intervalo de confian¸ca ao 90%parap
´
e dado por
C(y) = pˆ−1.645
rp(1ˆ −p)ˆ
n , pˆ+ 1.645
rp(1ˆ −p)ˆ n
! ,
sendopˆ=y/n.
Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
Desempenho do I.C. para uma propor¸c˜ ao.
Exemplo: Suponha que o tamanho amostral ´e n = 20 e o verdadeiro valor da propor¸c˜ao ´e p = 0.5. Usando o comando rbinom, simular um valor de y e usar binomial.conf.intervalpara calcular o I.C. ao90%. Repetir este procedimento 20vezes, e estimar a verdadeira probabilidade de coberturaP(p∈C(y)).
binomial.conf.interval <- function(y,n){
z <- qnorm(.95) phat <- y/n
se <- sqrt(phat*(1-phat)/n) return(c(phat-z*se,phat+z*se))}
Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
Desempenho do I.C. para uma propor¸c˜ ao.
Solu¸c˜ao:
> n <- 20; p <- 0.5; n.contador <- 0; i <- 1
> while(i <= 20){
+ y <- rbinom(1,n,p)
+ IC <- binomial.conf.interval(y,n) + if(min(IC) < p & p < max(IC)){
+ n.contador <- n.contador + 1 + }
+ i <- i + 1 + }
>
> n.contador/n [1] 0.85
Referˆencias.
Sum´ ario
1 Explorando a robustez da estat´ısticat.
Introdu¸c˜ao.
Programa¸c˜ao de uma simula¸c˜ao de Monte Carlo.
Aplica¸c˜ao.
2 Desempenho do intervalo de confian¸ca tradicional para uma propor¸c˜ao.
3 Referˆencias.
Referˆencias.
Albert, Jim (2009). Bayesian Computation with R. Springer, 2a.Edi¸c˜ao.