Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

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/03/27 20:28]
paulojus
disciplinas:ce227-2018-01:historico [2018/05/15 16:40]
paulojus
Linha 25: Linha 25:
 | 19/03 Seg |Revisão e dúvidas sobe materia da aula anterior. Implementação da discretização. Amostragem e "​jitter"​ das amostras da discreta | |[[#​14/​03|ver abaixo]] | | 19/03 Seg |Revisão e dúvidas sobe materia da aula anterior. Implementação da discretização. Amostragem e "​jitter"​ das amostras da discreta | |[[#​14/​03|ver abaixo]] |
 | 21/03 Qua |Não haverá aula expositiva |Revisar conteúdos até aqui. | | | 21/03 Qua |Não haverá aula expositiva |Revisar conteúdos até aqui. | |
-| 26/03 Qua |Resumindo posteriori: Decisão (espaço discreto), estimação pontual (espaço contínuo), intervalos e testes ​ |Cap 5, sec 5.1 |[[#​26/​03|ver abaixo]] |+| 26/03 Seg |Resumindo posteriori: Decisão (espaço discreto), estimação pontual (espaço contínuo), intervalos e testes ​ |Cap 5, sec 5.1 |[[#​26/​03|ver abaixo]] |
 | 28/03 Qua |2a avaliação |  | | | 28/03 Qua |2a avaliação |  | |
-| 02/03 Qua |Resumindo posteriori: estimação pontual (espaço contínuo), intervalos e testes ​ |Cap 5 |[[#02/04|ver abaixo]] | +| 02/04 Seg |Discussão da 2a avaliação ​ | | | 
-| 04/03 Qua |Predição Bayesiana  ​|Cap 6 |[[#​04/​04|ver abaixo]] |+| 04/04 Qua |Resumindo posteriori: estimação pontual (espaço contínuo), intervalos e testes, Predição Bayesiana ​ |Cap 5 e Cap 6 |[[#04/04|ver abaixo]] | 
 +09/04 Seg |Inferência em problemas com mais de um parâmetro |Cap 4: ler, estudar e refazer exemplos |[[#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]] | 
 +| 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 133: Linha 144:
  
 === 02/04 === === 02/04 ===
-  - Refazer exemplos ​e fazer Exercício ​5.2 a 5.do Cap 5+  - Na questão 1 verificar como a mudança na priori (proporção de motoristas acima do limite) afeta os resultados 
 +  - Na questão 2 refazer com a parametrização alternativa da exponencial ​gama 
 +  - Ainda na questão 2 fazer utilizando o resultado genérico de prioris conjugadas para família exponencial 
 +  - Na questão 4 supor uma amostra de valores (7, 3, 45, 2), obter a posteriori e fazer os gráficos de priori, verossimilhança e posteriori
  
 === 04/04 === === 04/04 ===
 +  - Refazer exemplos e fazer Exercício 5.2 a 5.4 do Cap 5
   - Refazer exemplos e fazer Exercícios cap 6   - Refazer exemplos e fazer Exercícios cap 6
 +  - Escrever funções mostrando como média, mediana e quartis podem ser calculados a partir de minimização de função perda: ​
 +    - para um conjunto de dados
 +    - para uma distribuição discreta
 +    - para uma distribuição contínua
 +
 +=== 09/04 ===
 +  - Fazer um código (com operações matriciais) para os cálculos do Exemplo 1. O código deve permitir definir diferentes prioris e verossimilhanças. Experimentar com valores diferentes do exemplo.
 +  - Especificar valores para os hiperparâmetros p e q no Exemplo 2 e simular um conjunto de dados. Obter a posteriori e maginais. Fazer gráficos conjuntos e marginais da priori e posteriori.
 +  - No Exemplo 3 obter a marginal <​latex>​[\sigma^2|y]</​latex>​ e a posteriori condicional <​latex>​[\mu|\sigma^2,​y]</​latex>​
 +  - Ainda no exemplo 3 definir os hiperparâmetros de obter uma simulação de dados do modelo ​
 +  - Com os dados simulados obter as expressões da  posteriori conjunta, marginais (do material) e condicional conjunta (item anterior)
 +  - Obter uma simulação da posteriori. Comparar a conjunta e marginais teórica e simulada.
 +  ​
 +=== 16/04 ===
 +  - Para os exemplos e exercícios do Cap 6, obter a preditiva pelas 3 formas discutidas em aula. Escrever códigos que mostrem e comparem as preditivas (simlar ao visto em aula)
 +  - Experimentar diferentes
 +  - Segue código visto para ex 6.1<code R>
 +## Exercício 6.1
 +## Adicional:
 +## Seja uma amostra 7,5,8,9,3
 +## n=5 , soma = 33
 +## Seja a priori G(2, 2)
 +## A posteriori é G(2+33, 2+5) 
 +## A preditiva analítica é BN(2+33, (2+5)/​(2+5+1))
 +
 +## 1. Obtendo 1 simulação da preditiva
 +## Passo 1: simula valor do parâmetro da posteriori
 +th <- rgamma(1, 35, 7)
 +## Passo 2: simula valor predito da verossimilhança ​
 +yp <- rpois(1, lam=th)
 +
 +## 2. Obtendo 1000 simulações da preditiva
 +## Passo 1: simula valores do parâmetro da posteriori
 +th <- rgamma(1000,​ 35, 7)
 +## Passo 2: simula valores predito da verossimilhança ​
 +yp <- rpois(1000, lam=th)
 +
 +## Preditiva estimada por simulação
 +table(yp)
 +yp.sim <- table(yp)/​1000
 +
 +## Preditiva exata
 +yp.teo <- dnbinom(0:​14,​ size=35, prob=7/8)
 +
 +## comparando ​
 +rbind(yp.sim,​ yp.teo)
 +## Pode-se aumentar o número de simulações para uma melhor predição
 +th <- rgamma(1000,​ 35, 7)
 +th <- rgamma(10000,​ 35, 7)
 +yp <- rpois(10000,​ lam=th)
 +yp.sim <- table(yp)/​10000
 +yp.teo <- dnbinom(0:​max(yp),​ size=35, prob=7/8)
 +rbind(yp.sim,​ yp.teo)
 +
 +## Gráficos
 +## preditiva teórica (analítica)
 +plot((0:​17)-0.05,​ yp.teo, type="​h"​)
 +## simulação da preditiva
 +lines((0:​17)+0.05,​ yp.sim, type="​h",​ col=2)
 +## preditiva não bayesiana (plug-in)
 +yp.nonB <- dpois(0:17, lam=33/5)
 +lines((0:​17)+0.15,​ yp.nonB, type="​h",​ col=4)
 +## aproximação normal da preditiva
 +curve(dnorm(x,​ m=5, sd=sqrt(5+35/​49)),​ add=T)
 +</​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)

QR Code
QR Code disciplinas:ce227-2018-01:historico (generated for current page)