Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| disciplinas:ce227-2016-01:historico [2016/04/06 18:24] – paulojus | disciplinas:ce227-2016-01:historico [2016/06/02 14:47] (atual) – paulojus | ||
|---|---|---|---|
| Linha 27: | Linha 27: | ||
| | 04/04 Seg |Inferência (bayesiana e não bayesiana) sobre o parâmetro variância de uma distribuição normal (com média fixa). Revisão conceitual e comparações. |{{: | | 04/04 Seg |Inferência (bayesiana e não bayesiana) sobre o parâmetro variância de uma distribuição normal (com média fixa). Revisão conceitual e comparações. |{{: | ||
| | 06/04 Qua |desenvolver análises análogas às vistas na última aula para algum outro modelo com 1 parâmetro (excluindo da binomial ou algum dos parâmetros da normal) | | 06/04 Qua |desenvolver análises análogas às vistas na última aula para algum outro modelo com 1 parâmetro (excluindo da binomial ou algum dos parâmetros da normal) | ||
| + | | 11/04 Seg |Discussão das análises feitas pelos participantes do curso. Modelos com mais de um parâmetro - ideais fundamentais. Distribuições posterioris marginais, conjuntas e condicionais. |Cap 4 do material do curso | | | | ||
| + | | 13/04 Qua |Resumos da posteriori |Cap 5 do material do curso | |Preparar material para discussão sobre FBST | | ||
| + | | 18/04 Seg |Predição Bayesiana |Cap 6 do material do curso | |[[# | ||
| + | | 20/04 Qua |Testes FBST - parte 1/2 | | | | | ||
| + | | 25/04 Seg |Testes FBST - parte 2/2 e revisão/ | ||
| + | | 27/04 Qua |1a prova | | | | | ||
| + | | 02/05 Seg |Discussão da 1a prova | | | | | ||
| + | | 04/05 Qua |Atividades dos alunos - revisão da prova | | | | | ||
| + | | 09/05 Seg |Discussão da prova e detalhamento do problema da questão 5 | | |[[# | ||
| + | | 11/05 Qua |Discussão Caps 7 e 8 do material | | |[[# | ||
| + | | 16/05 Seg |Inferência Bayesiana utilizando o JAGS - instalação e exemplos | | |[[# | ||
| + | | 18/05 Qua |Inferência Bayesiana utilizando o JAGS/INLA - mais exemplos | | |[[# | ||
| + | | 23/05 Seg |Estudos (prof. em congresso) | | | | | ||
| + | | 25/05 Qua |Estudos (prof. em congresso) | | | | | ||
| + | | 31/05 Seg |Aplicação de inferência Bayesiana - erros e incertezas em estimação de vazão de uma bacia - Apres. Alana | | | | | ||
| + | | 01/06 Qua |Fundamentos do INLA | | |[[# | ||
| + | |||
| + | |||
| === 29/02 === | === 29/02 === | ||
| Manifestar uma opinião subjetiva sobre o parâmetro de uma distribuição binomial. (basear-se no contexto | Manifestar uma opinião subjetiva sobre o parâmetro de uma distribuição binomial. (basear-se no contexto | ||
| Linha 42: | Linha 60: | ||
| Propor e implementar algorítimos para discretização da posteriori e amostragem via métodos a rejeição e MCMC. | Propor e implementar algorítimos para discretização da posteriori e amostragem via métodos a rejeição e MCMC. | ||
| + | === 18/04 === | ||
| + | Considere o modelo de verossimilhança < | ||
| + | |||
| + | === 09/05 === | ||
| + | - Obter os resultados analíticos possíveis para o problema da questão 5 da prova (posteriori, | ||
| + | - Implementar os diferentes métodos para inferência baseada na posteriori (exata, aproximação normal, discretização, | ||
| + | |||
| + | === 11/05 === | ||
| + | - Derivar os expressões das condicionais completas no problema do ponto de mudança da Poisson (ex. do capitulo 8) | ||
| + | - Implementar o algorítmo de Gibbs para este exemplo. | ||
| + | |||
| + | === 16/05 === | ||
| + | Exemplos discutidos utilizando JAGS/rjags: | ||
| + | - Amostragem da normal <code R> | ||
| + | ## Simulando um conjunto de dados | ||
| + | n <- 20 | ||
| + | x <- rnorm(n, 70, 5) | ||
| + | ## Exportar os dados (não é necessário) se utilizando o rjags | ||
| + | # | ||
| + | # file = ' | ||
| + | # row.names = FALSE, | ||
| + | # col.names = FALSE) | ||
| + | ## Especificação do modelo (deve ser exportada para um arquivo) | ||
| + | cat( "model { | ||
| + | for (i in 1:n){ | ||
| + | x[i] ~ dnorm(mu, tau) | ||
| + | } | ||
| + | mu ~ dnorm(0, 0.0001) | ||
| + | tau <- pow(sigma, -2) | ||
| + | sigma ~ dunif(0, 100) | ||
| + | | ||
| + | ) | ||
| + | ## Carregando o pacotes rjags (pode-se ainda usar outros como runjags, R2jags etc) | ||
| + | require(rjags) | ||
| + | |||
| + | ## Definindo valores iniciais. No caso três conjuntos porque iremos rodas 3 cadeias. | ||
| + | ## OBS: valores iniciais são dispensáveis neste exemplo | ||
| + | inis <- list(list(mu=10, | ||
| + | | ||
| + | | ||
| + | ## O proximo comando prepara e " compila" | ||
| + | jags <- jags.model(' | ||
| + | data = list(' | ||
| + | | ||
| + | inits = inis, | ||
| + | | ||
| + | ## Obtendo as amostras (diferentes opções, a última já prepara em formato para uso com o | ||
| + | ## pacote ´coda´) | ||
| + | # | ||
| + | #sam <- jags.samples(jags, | ||
| + | sam <- coda.samples(jags, | ||
| + | ## Visualizações e resultados | ||
| + | par(mfrow=c(2, | ||
| + | plot(sam) | ||
| + | str(sam) | ||
| + | summary(sam) | ||
| + | HPDinterval(sam) | ||
| + | </ | ||
| + | - regressão linear simples< | ||
| + | ## simulando dados | ||
| + | n <- 20 | ||
| + | x <- sort(runif(n, | ||
| + | epsilon <- rnorm(n, 0, 2.5) | ||
| + | y <- 2 + 0.5*x + epsilon | ||
| + | |||
| + | plot(y ~ x) | ||
| + | lines(lm(y ~x)) | ||
| + | ## especificando o modelo para o JAGS | ||
| + | cat( "model { | ||
| + | for (i in 1:n){ | ||
| + | y[i] ~ dnorm(mu[i], | ||
| + | mu[i] <- b0 + b1 * x[i] | ||
| + | } | ||
| + | b0 ~ dnorm(0, .0001) | ||
| + | b1 ~ dnorm(0, .0001) | ||
| + | tau <- pow(sigma, -2) | ||
| + | sigma ~ dunif(0, 100) | ||
| + | }", file=" | ||
| + | |||
| + | ## poderia-se redefinir o modelo acima com uma possível priori alternativa, | ||
| + | ## tau ~ dgamma(0.001, | ||
| + | ## sigma2 <- 1/tau | ||
| + | |||
| + | # | ||
| + | # file = ' | ||
| + | # row.names = FALSE, | ||
| + | # col.names = TRUE) | ||
| + | |||
| + | require(rjags) | ||
| + | |||
| + | ## Valores iniciais (vamos rodar só duas cadeias neste exemplo) | ||
| + | inis <- list(list(b0=0, | ||
| + | | ||
| + | | ||
| + | ## Compilando modelo, dados e opções | ||
| + | jags <- jags.model(' | ||
| + | data = list(' | ||
| + | ' | ||
| + | ' | ||
| + | | ||
| + | # inits=inits, | ||
| + | | ||
| + | # | ||
| + | class(jags) | ||
| + | |||
| + | ## obtenção das amostras da posteriori ... | ||
| + | ## ... via rjags | ||
| + | sam <- jags.samples(jags, | ||
| + | | ||
| + | 1000) | ||
| + | class(sam) | ||
| + | |||
| + | ## ... ou via coda | ||
| + | sam <- coda.samples(jags, | ||
| + | | ||
| + | 1000) | ||
| + | class(sam) | ||
| + | str(sam) | ||
| + | plot(sam) | ||
| + | |||
| + | ## Pode-se tb obter as distribuições preditivas correspondentes a cada observação | ||
| + | sam <- coda.samples(jags, | ||
| + | | ||
| + | 1000) | ||
| + | str(sam) | ||
| + | int <- HPDinterval(sam) | ||
| + | str(int) | ||
| + | ## complementar com gráficos, resumos, inferências de interesse, etc | ||
| + | </ | ||
| + | - Coeficiente de correlação | ||
| + | ## Dados simulados do modelo: | ||
| + | ## Y_{ij} \sim N(\mu_{i}, \sigma^2_y) | ||
| + | ## | ||
| + | ## b_{i} \sim N(0, \sigma^2_b) | ||
| + | ## que, por ser normal (com ligação identidade) | ||
| + | ## pode ser escrito por: | ||
| + | ## Y_{ij} = \beta_0 + b_{i} + \epsilon_{ij} | ||
| + | ## | ||
| + | ## simulando dados: | ||
| + | Ngr <- 25 | ||
| + | Nobs <- 10 | ||
| + | set.seed(12) | ||
| + | sim <- data.frame(id | ||
| + | gr = rep(1:Ngr, each=Nobs), | ||
| + | bs = rep(rnorm(Ngr, | ||
| + | eps = rnorm(Ngr*Nobs, | ||
| + | ) | ||
| + | sim <- transform(sim, | ||
| + | sim | ||
| + | |||
| + | ## estimativas " | ||
| + | resumo <- function(x) c(media=mean(x), | ||
| + | (sim.res <- aggregate(y~gr, | ||
| + | var(sim.res$y[, | ||
| + | mean(sim.res$y[, | ||
| + | mean(sim$y) | ||
| + | |||
| + | ## A seguir serão obtidas inferências de três formas diferentes: | ||
| + | ## - ajuste modelo de efeito aleatório (não bayesiano) | ||
| + | ## - ajuste via JAGS (inferência por simulação da posteriori) | ||
| + | ## - ajuste via INLA (inferência por aproximação da posteriori) | ||
| + | |||
| + | ## | ||
| + | ## Modelo de efeitos aleatórios | ||
| + | ## | ||
| + | require(lme4) | ||
| + | fit.lme <- lmer(y ~ 1|gr, data=sim) | ||
| + | summary(fit.lme) | ||
| + | ranef(fit.lme) | ||
| + | coef(fit.lme)$gr - fixef(fit.lme) | ||
| + | print(VarCorr(fit.lme), | ||
| + | |||
| + | ## JAGS | ||
| + | require(rjags) | ||
| + | |||
| + | sim.lst <- as.list(sim[c(" | ||
| + | sim.lst$N <- nrow(sim) | ||
| + | sim.lst$Ngr <- length(unique(sim$gr)) | ||
| + | mean(sim.lst$y) | ||
| + | |||
| + | cat(" | ||
| + | for(j in 1:N){ | ||
| + | y[j] ~ dnorm(mu[gr[j]], | ||
| + | } | ||
| + | for(i in 1:Ngr){ | ||
| + | mu[i] ~ dnorm(theta, | ||
| + | } | ||
| + | theta ~ dnorm(0, 1.0E-6) | ||
| + | tau.b ~ dgamma(0.001, | ||
| + | sigma2.b <- 1/tau.b | ||
| + | tau.e ~ dgamma(0.001, | ||
| + | sigma2.e <- 1/tau.e | ||
| + | cci <- sigma2.e/ | ||
| + | }", file=" | ||
| + | |||
| + | sim.jags <- jags.model(file=" | ||
| + | ## inits = ... | ||
| + | |||
| + | fit.jags <- coda.samples(sim.jags, | ||
| + | |||
| + | summary(fit.jags) | ||
| + | plot(fit.jags) | ||
| + | |||
| + | ## | ||
| + | require(INLA) | ||
| + | |||
| + | fit.inla <- inla(y ~ f(gr) , family=" | ||
| + | summary(fit.inla) | ||
| + | sqrt(1/ | ||
| + | </ | ||
| + | <fs large> | ||
| + | - Complementar as análise acima com exploração dos resultados, obtenção de gráficos e resultados de interesse | ||
| + | - Ajustar o modelo acima aos dados de:\\ Julio M. Singer, Carmen Diva Saldiva de André, Clóvis de Araújo Peres\\ **Confiabilidade e Precisão na Estimação de Médias**\\ [[http:// | ||
| + | - Identificar e ajustar modelos (não bayesianos, bayesianos por simulação ou aproximados) para dados simulados da seguinte forma: <code R> | ||
| + | set.seed(123456L) | ||
| + | n <- 50 | ||
| + | m <- 10 | ||
| + | w <- rnorm(n, sd=1/3) | ||
| + | u <- rnorm(m, sd=1/4) | ||
| + | b0 <- 0 | ||
| + | b1 <- 1 | ||
| + | idx <- sample(1:m, n, replace=TRUE) | ||
| + | y <- rpois(n, lambda = exp(b0 + b1 * w + u[idx] | ||
| + | </ | ||
| + | |||
| + | === 18/05 === | ||
| + | - {{: | ||
| + | - {{: | ||
| + | - Mais um exemplo de análise com efeitos aleatórios (serialmente) correlacionados< | ||
| + | ## | ||
| + | ## Análise de conjunto de dados com INLA com efeitos aleatórios temporalmente correlacionados | ||
| + | ## | ||
| + | require(INLA) | ||
| + | ## | ||
| + | ## Visualização dos dados | ||
| + | ## | ||
| + | data(Tokyo) | ||
| + | head(Tokyo) | ||
| + | plot(y ~ time, data=Tokyo) | ||
| + | ## colocando na forma de proporção de dias com chuva | ||
| + | plot(y/2 ~ time, data=Tokyo) | ||
| + | ## | ||
| + | ## 1. Modelo " | ||
| + | ## estimando a probabilidade de chuva como uma constante: | ||
| + | fit.glm <- glm(cbind(y, | ||
| + | abline(h=exp(coef(fit.glm))/ | ||
| + | ## ou então, como neste modelo todos os valores preditos são iguais bastaria fazer: | ||
| + | abline(h=fitted(fit.glm)[1], | ||
| + | ## | ||
| + | ## 2. Agora o mesmo modelo nulo anterior porém ajustado pelo INLA | ||
| + | ## | ||
| + | modelo0 = y ~ 1 | ||
| + | fit0 <- inla(modelo0, | ||
| + | | ||
| + | summary(fit0) | ||
| + | fit0$summary.fitted.values | ||
| + | with(fit0, matlines(summary.fitted.values[, | ||
| + | ## | ||
| + | ## 3. Modelo com probabilidades variando no tempo | ||
| + | ## através da inclusão de variável/ | ||
| + | ## modelando o logito(probabilidade) como um efeito aleatório correlacionado no tempo | ||
| + | ## segundo um " | ||
| + | modelo = y ~ 0 + f(time, model=" | ||
| + | fit <- inla(modelo, | ||
| + | control.predictor=list(compute=TRUE)) | ||
| + | ## | ||
| + | names(fit) | ||
| + | head(fit$summary.fitted.values) | ||
| + | ## sobrepondo ao gráfico dos dados (moda, mediana e média são praticamente indistinguíveis) | ||
| + | with(fit, matlines(summary.fitted.values[, | ||
| + | ## | ||
| + | ## 4. Modelando usando GAM (generalised additive model) | ||
| + | ## | ||
| + | require(mgcv) | ||
| + | fit.gam <- gam(cbind(y, | ||
| + | names(fit.gam) | ||
| + | fitted(fit.gam, | ||
| + | pred.gam <- predict(fit.gam, | ||
| + | names(pred.gam) | ||
| + | with(pred.gam, | ||
| + | </ | ||
| + | === 01/06 === | ||
| + | - **INLA** | ||
| + | - {{: | ||
| + | - [[https:// | ||
| + | - [[http:// | ||
| + | - [[https:// | ||