Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior Próxima revisão Ambos lados da revisão seguinte | ||
disciplinas:ce227-2018-01:historico [2018/04/16 21:23] paulojus |
disciplinas:ce227-2018-01:historico [2018/05/15 16:40] paulojus |
||
---|---|---|---|
Linha 32: | Linha 32: | ||
| 11/04 Qua |Sem aula expositiva. Fazer atividades recomendadas da aula anterior ([[#09/04|ver abaixo]]) | | | | | 11/04 Qua |Sem aula expositiva. Fazer atividades recomendadas da aula anterior ([[#09/04|ver abaixo]]) | | | | ||
| 16/04 Seg |Resolução e discussão do exercício 6.1. Obtendo a preditiva: (i) analiticamente, (ii) por aproximação normal (iii) por simulação | |[[#16/04|ver abaixo]] | | | 16/04 Seg |Resolução e discussão do exercício 6.1. Obtendo a preditiva: (i) analiticamente, (ii) por aproximação normal (iii) por simulação | |[[#16/04|ver abaixo]] | | ||
+ | | 18/04 Qua |Algoritmo amostrador de Gibbs (Gibbs sampler). Exemplo na inferência para distribuição normal | |[[#18/04|ver abaixo]] | | ||
+ | | 23/04 Seg |Revisão Gibbs sampler. Modelo Poisson com priori Gamma e hiperpriori InvGamma. Derivação da posteriori, condicionais completas e implementação do algoritmo de Gibbs. Regressão linear: expressões para amostragem exata e via Gibbs| |[[#23/04|ver abaixo]] | | ||
+ | | 25/04 Qua |Gibbs sampler compasso Metrópolis. Modelo Poisson com priori Normal. Derivação da posteriori, condicionais completas e implementação do algoritmo de Gibbs com um passo metrópolis. | |[[#23/04|ver abaixo]] | | ||
+ | | 30/04 Seg |Feriado | | | | ||
+ | | 02/05 Qua |1a prova | | | | ||
+ | | 07/05 Seg |Discussão das questões da 1a prova. Definição de atividades para sequencia do curso | |[[#07/05|ver abaixo]] | | ||
+ | | 09/05 Qua |Recursos computacionais para inferência Bayesiana - Atividades indicadas na aula anterior. Sem aula expositiva. | | | | ||
+ | | 14/05 Seg |Gibss samples: exemplo das inas de carvão. Programação e utilização do JAGS | |[[#14/05|ver abaixo]] | | ||
=== 19/02 === | === 19/02 === | ||
Linha 209: | Linha 217: | ||
curve(dnorm(x, m=5, sd=sqrt(5+35/49)), add=T) | curve(dnorm(x, m=5, sd=sqrt(5+35/49)), add=T) | ||
</code> | </code> | ||
+ | |||
+ | === 18/04 === | ||
+ | Código visto em aula<code R> | ||
+ | ## | ||
+ | ## Inferência na distribuição normal | ||
+ | ## | ||
+ | ## Conjunta: | ||
+ | ##f(\mu, \sigma^2|y) = (\sigma^2)^{\frac{n}{2}-1} \exp\left{-\frac{1}{2\sigma^2} (S^2 + n(\theta - \overline{y})) \right\} | ||
+ | ## | ||
+ | ## Condicionais | ||
+ | ## [\mu|\sigma^2, y] \sim {\rm N}(\overline{y}, \sigma^2/n) | ||
+ | ## [\sigma^2|\mu, y] \sim {\rm IG}(\frac{n}{2}, \frac{2}{A}) | ||
+ | ## | ||
+ | ## Marginais | ||
+ | ## [\mu|y] \sim {\rm t}_{n-1}(\overline{y}, S^2/n) | ||
+ | ## \frac{\mu - \overline{y}}{\sqrt{sigma^2/n}} \sim {\rm t}_{n-1} | ||
+ | ## | ||
+ | ## [\sigma^2|y] \sim {\rm IG}(\frac{n-1}{2}, \frac{2}{S^2}) | ||
+ | ## \frac{S^2}{\sigma^2} \sim \chi^2_{n-1} | ||
+ | ## | ||
+ | ## S^2 = \sum_{i=1}^{n} (y_i - \overline{y})^2 | ||
+ | ## A = S^2 + n(\theta - \overline{y})^2 | ||
+ | |||
+ | ## Nos códigos abaixo S^2 é denotado por SQ | ||
+ | set.seed(20180419) | ||
+ | (y <- rnorm(12, mean=50, sd=8)) | ||
+ | dados <- list(n=length(y), m=mean(y), v = var(y), SQ = sum((y-mean(y))^2)) | ||
+ | ## | ||
+ | ## Amostra (exata) da posteriori | ||
+ | ## | ||
+ | ## para amostrar de pode-se explorar a fatoração: | ||
+ | ## [\mu, \sigma^2|y] = [\sigma^2|y] \cdot [\mu|\sigma^2,y] = | ||
+ | ## ou, alternativamente | ||
+ | ## [\mu, \sigma^2|y] = [\mu|y] \cdot [\sigma^2|\mu,y] = | ||
+ | ## | ||
+ | ## Vamos adotar aqui a primeira fatoração: | ||
+ | ## Obtendo uma amostra | ||
+ | ## (i) Amostrar \sigma^2 de [\sigma^2|y] | ||
+ | (sigma2.sim <- with(dados, 1/rgamma(1, shape=(n-1)/2, scale=2/SQ))) | ||
+ | ## (ii) Amostrar \mu de [\mu |\sigma^2,y] | ||
+ | (mu.sim <- with(dados, rnorm(1, mean=m, sd=sqrt(sigma2.sim/n)))) | ||
+ | ## Obtendo 25.000 amostras | ||
+ | N <- 25000 | ||
+ | sigma2.sim <- with(dados, 1/rgamma(N, shape=(n-1)/2, scale=2/SQ)) | ||
+ | mu.sim <- with(dados, rnorm(N, mean=m, sd=sqrt(sigma2.sim/n))) | ||
+ | |||
+ | ## Gráficos das amostras (correespondem às marginais) | ||
+ | par(mfrow=c(1,2)) | ||
+ | t.sim <- with(dados, (mu.sim - m)/sqrt(v/n)) | ||
+ | curve(dt(x, df=dados$n-1), from=-4, to=4) | ||
+ | lines(density(t.sim), col=4) | ||
+ | ## note a diferença para uma distribuição normal: | ||
+ | curve(dnorm(x), from=-4, to=4, col=2, lty=3, add=TRUE) | ||
+ | |||
+ | chi.sim <- with(dados, SQ/sigma2.sim) | ||
+ | curve(dchisq(x, df=dados$n-1), from=0, to=40) | ||
+ | lines(density(chi.sim), col=4) | ||
+ | |||
+ | ## | ||
+ | ## Amostra (Gibbs) da posteriori | ||
+ | ## | ||
+ | ## A estratégia de Gibbs é alternar as simulações entre **as distribuições condicionais** | ||
+ | ## o que "parece" errado ,as provouse que a cadeia de valores assim simulados **converge** para a distribuição conjunta | ||
+ | ## [\mu|\sigma^2, y] \sim {\rm N}(\overline{y}, \sigma^2/n) | ||
+ | ## [\sigma^2|\mu, y] \sim {\rm IG}(\frac{n}{2}, \frac{2}{A}) | ||
+ | ## Obtendo uma amostra | ||
+ | ## Como a distribuição de um parâmetro depende da distribuição do outro, | ||
+ | ## é necessário fornecer/arbitrar um valor para inicial o algoritmo | ||
+ | mu0 <- 50 | ||
+ | ## (i) Amostrar \sigma^2 de [\sigma^2|\mu, y] | ||
+ | A <- with(dados, SQ + n*(mu0 - m)^2) | ||
+ | (sigma2.simG <- with(dados, 1/rgamma(1, shape=n/2, scale=2/A))) | ||
+ | ## (ii) Amostrar \mu de [\mu |\sigma^2,y] | ||
+ | (mu.simG <- with(dados, rnorm(1, mean=m, sd=sqrt(sigma2.sim/n)))) | ||
+ | |||
+ | ## Gerando agora 25.000 amostras | ||
+ | N <- 25000 | ||
+ | mu.simG <- sigma2.simG <- numeric(N) | ||
+ | mu.simG[1] <- 30 | ||
+ | sigma2.simG[1] <- 100 | ||
+ | |||
+ | {for(i in 2:N){ | ||
+ | A <- with(dados, SQ + n*(mu.simG[i-1]-m)^2) | ||
+ | sigma2.simG[i] <- with(dados, 1/rgamma(1, shape=n/2, scale=2/A)) | ||
+ | mu.simG[i] <- with(dados, rnorm(1, mean=m, sd=sqrt(sigma2.simG[i]/n))) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | plot(mu.simG, type="l") | ||
+ | plot(mu.simG[-(1:1000)], type="l") | ||
+ | |||
+ | plot(sigma2.simG, type="l") | ||
+ | plot(sigma2.simG[-(1:1000)], type="l") | ||
+ | |||
+ | plot(log(sigma2.simG), type="l") | ||
+ | plot(log(sigma2.simG[-(1:1000)]), type="l") | ||
+ | |||
+ | par(mfrow=c(1,2)) | ||
+ | t.sim <- with(dados, (mu.sim - m)/sqrt(v/n)) | ||
+ | curve(dt(x, df=dados$n-1), from=-4, to=4) | ||
+ | lines(density(t.sim), col=4) | ||
+ | ##curve(dnorm(x), from=-4, to=4, col=2, add=TRUE) | ||
+ | t.simG <- with(dados, (mu.simG - m)/sqrt(v/n)) | ||
+ | lines(density(t.simG), col=3, lwd=2) | ||
+ | |||
+ | chi.sim <- with(dados, SQ/sigma2.sim) | ||
+ | curve(dchisq(x, df=dados$n-1), from=0, to=40) | ||
+ | lines(density(chi.sim), col=4) | ||
+ | chi.simG <- with(dados, SQ/sigma2.simG) | ||
+ | lines(density(chi.simG), col=3, lwd=2) | ||
+ | </code> | ||
+ | |||
+ | === 23/04 === | ||
+ | - Implementar modelo semelhante ao visto em aula porém com <math>log(lambda ~Normal). (ver detalhes na versão revisada do Cap 8 do material do curso. | ||
+ | - Implementar a regressão linear via algoritmo de Gibbs. Usar dados simulados de uma regressão linear simples. Incluir amostras da preditiva no algoritmo | ||
+ | - Código para o modelo visto em aula:<code R> | ||
+ | ## Simulando dados do modelo sendo estudado | ||
+ | set.seed(2018) | ||
+ | ctes <- list(a=3, c=2.5, d=0.8, n=50) | ||
+ | with(ctes, EVIG(c, d)) | ||
+ | betas <- with(ctes, 1/rgamma(n, shape=c, scale=d)) | ||
+ | c(mean(betas),var(betas)) | ||
+ | lambdas <- with(ctes, rgamma(n, shape=a, rate=betas)) | ||
+ | (ctes$y <- rpois(ctes$n, lambda=lambdas)) | ||
+ | with(ctes, c(media=mean(y), var=var(y))) | ||
+ | with(ctes, plot(prop.table(table(y)), type="h", ylim=c(0,0.3))) | ||
+ | with(ctes,lines((0:max(y))+0.1, dpois(0:max(y), lambda=mean(y)), type="h", col=2)) | ||
+ | ## | ||
+ | ## Iniciando inferência a ser feita via amostrador de Gibbs | ||
+ | ## | ||
+ | ctes$sumY <- sum(ctes$y) | ||
+ | ## | ||
+ | N <- 11000 # número de simulação no algorítmo | ||
+ | B <- 1000 # bunr-in - amostras s serem descartadas no início da cadeia | ||
+ | beta.sam <- lambda.sam <- numeric(N) | ||
+ | beta.sam[1] <- lambda.sam[1] <- 10 | ||
+ | { | ||
+ | for(i in 2:N){ | ||
+ | beta.sam[i] <- with(ctes, 1/rgamma(1, shape=a+c, scale=d/(d*lambda.sam[i-1]+1))) | ||
+ | lambda.sam[i] <- with(ctes, rgamma(1, shape=ctes$a+sumY, scale=beta.sam[i]/(n*beta.sam[i]+1))) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ## Explorando simulações | ||
+ | par(mfrow=c(2,1)) | ||
+ | plot(beta.sam, type="l") | ||
+ | plot(lambda.sam, type="l") | ||
+ | ## retirando amostras consideradas aquecimento | ||
+ | beta.sam <- beta.sam[-(1:B)] | ||
+ | lambda.sam <- lambda.sam[-(1:B)] | ||
+ | plot(beta.sam, type="l") | ||
+ | plot(lambda.sam, type="l") | ||
+ | plot(log(beta.sam), type="l") | ||
+ | plot(lambda.sam, type="l") | ||
+ | |||
+ | par(mfrow=c(1,2)) | ||
+ | plot(density(beta.sam)); abline(v=mean(betas)); rug(betas) | ||
+ | plot(density(lambda.sam)); abline(v=mean(lambdas)); rug(lambdas) | ||
+ | summary(ctes$y) | ||
+ | summary(betas) | ||
+ | summary(beta.sam) | ||
+ | summary(lambdas) | ||
+ | summary(lambda.sam) | ||
+ | |||
+ | par(mfrow=c(1,2)) | ||
+ | plot(density(beta.sam, from=0, to=5)); abline(v=mean(betas)); rug(betas) | ||
+ | plot(density(lambda.sam, from=0, to=20)); abline(v=mean(lambdas)); rug(lambdas) | ||
+ | </code> | ||
+ | |||
+ | === 07/05 === | ||
+ | - *Atividade 1* (individual ou duplas) Buscar algum pacote do R ou outro programa que permita obter os resultados (analíticos) vistos até aqui no curso. Evitar coincidẽncias entre os escolhidos | ||
+ | - *Atividade 2* (individual ou duplas) Buscar algum pacote do R ou outro programa que permita obter por simulação resultados pera os exemplos vistos até aqui no curso. Evitar coincidẽncias entre os escolhidos | ||
+ | - *Atividade 3* (individual ou duplas) Utilizar o recurso visto na Atividade 2 para analizar algum modelo/exemplo não visto no curso. Evitar coincidẽncias entre os escolhidos | ||
+ | |||
+ | === 14/05 === | ||
+ | - {{:disciplinas:ce227:changepointjags.r|Script R/JAGS para análise dos dados do Cap 8}} (changepoint Poisson) |