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 | ||
pessoais:eder [2011/09/25 20:44] – [section 2] eder | pessoais:eder [2018/07/04 19:10] (atual) – [section 5] eder | ||
---|---|---|---|
Linha 14: | Linha 14: | ||
* {{: | * {{: | ||
* {{: | * {{: | ||
+ | * {{: | ||
+ | * {{: | ||
+ | ===== Artigos de Interesse ===== | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | * {{http:// | ||
+ | |||
+ | |||
===== Disciplinas 2011/1 ===== | ===== Disciplinas 2011/1 ===== | ||
* [[http:// | * [[http:// | ||
Linha 23: | Linha 38: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | ===== Códigos ===== | + | * [[http:// |
+ | ===== Códigos | ||
<code R> | <code R> | ||
- | ###-----------------------------------------------------------------### | + | ## |
- | ### Agulha de buffon | + | |
- | buffon <- function(n, | + | |
- | if(a< | + | |
- | if(a> | + | |
- | theta <- runif(n, | + | |
- | dist <- runif(n, | + | |
- | inter <- sum(dist <= l/ | + | |
- | phi_est <- round((n/ | + | |
- | cat(' | + | |
- | return(c(n, | + | |
- | }} | + | |
- | + | ||
- | n <- seq(10000, | + | |
- | res <- matrix(NA, | + | |
- | con <- 1 | + | |
- | for (i in n){ | + | |
- | res[con,] <- buffon(i) | + | |
- | con <- con+1 | + | |
- | } | + | |
- | + | ||
- | plot(res, | + | |
- | abline(h=pi, | + | |
- | ### | + | |
- | ### MOnte carlo | + | |
- | ## Calcula a área via simulação de monte carlo | + | |
- | ## args: r= raio, s vetor com numero de simulação, | + | |
- | MCcirculo< | + | |
- | ns< | + | |
- | r<-r | + | |
- | con <- 1 | + | |
- | for (j in ns) { | + | |
- | #pontos aleatorios | + | |
- | x< | + | |
- | y< | + | |
- | ponto< | + | |
- | cont <- sum(apply(ponto, | + | |
- | #plotando Simulação | + | |
- | if(plotS==TRUE){ | + | |
- | plot(x, | + | |
- | ang <- seq(0, 2*pi, length = 100) | + | |
- | xx <- r * cos(ang);yy <- r * sin(ang) | + | |
- | polygon(xx, | + | |
- | } | + | |
- | #Calculo de Area | + | |
- | area[con]< | + | |
- | cat(paste(round(area[con], | + | |
- | con <- con+1 | + | |
- | } | + | |
- | plot(ns, | + | |
- | abline(h=pi*r^2, | + | |
- | + | ||
- | } | + | |
- | MCcirculo(1, | + | |
- | ### | + | |
- | ### Inversão de Probabilidade | + | |
- | ### OBJ: gerar x~exp transformando de uma uniforme | + | |
- | NS <- 10000 | + | |
- | lam <- 0.5 | + | |
- | # | + | |
- | Gexp <- function(x, | + | |
- | + | ||
- | U <- runif(NS) | + | |
- | X <- Gexp(U, | + | |
- | Y <- rexp(NS, | + | |
- | + | ||
- | par(mfrow=c(1, | + | |
- | hist(U, | + | |
- | lines(density(U), | + | |
- | + | ||
- | hist(X, | + | |
- | lines(density(X), | + | |
- | lines(curve(dexp(x, | + | |
- | + | ||
- | hist(Y, | + | |
- | lines(density(Y), | + | |
- | lines(curve(dexp(x, | + | |
- | ### | + | |
- | ### Metodos de integração numerica | + | |
- | #Função | + | |
- | f <- function(x){exp(-x^2)} | + | |
- | a <- -3 | + | |
- | b <- 3 | + | |
- | # integrar de -3,3 | + | |
- | x <- seq(a, | + | |
- | plot(x, | + | |
- | # Integração nativa do R - Gauss–Kronrod quadrature | + | |
- | integrate(f, | + | |
- | ###Simpson 1/3 - INtervalos par, igualmente espaçados | + | |
- | n <- 1200 | + | |
- | xi <- seq(a, | + | |
- | i <- seq(2, | + | |
- | j <- seq(3, | + | |
- | ((b-a)/ | + | |
- | ###Simpson 3/8 - Intervalos divisiveis por 3 | + | |
- | n <- 1200 | + | |
- | xi <- seq(a, | + | |
- | i <- seq(2, | + | |
- | j <- seq(4, | + | |
- | ((3*(b-a)/ | + | |
- | ### Quadratura gausiana 3º Ordem | + | |
- | w <- c(0.555555, | + | |
- | xi <- c(-0.77459667, | + | |
- | (b-a)/ | + | |
- | ### Quadratura gausiana 4º Ordem | + | |
- | w <- c(0.3478548, | + | |
- | xi <- c(-0.86113631, | + | |
- | (b-a)/ | + | |
- | ### Quadratura gausiana 6º Ordem | + | |
- | w <- c(0.1713245, | + | |
- | xi <- c(-0.933246951, | + | |
- | (b-a)/ | + | |
- | ###Monte Carlo | + | |
- | n <- 10000 | + | |
- | xi <- runif(n, | + | |
- | Ls <- max(f(seq(a, | + | |
- | Li <- 0 | + | |
- | yi <- runif(n, | + | |
- | sum(f(xi)> | + | |
- | points(xi, | + | |
- | ### | + | |
- | #f' <- -2*x*exp(-x^2) | + | |
- | D2f <- function(x){(4*x^2-2)*exp(-x^2)} | + | |
- | D2f(0) | + | |
- | ((2*pi)/ | + | |
- | ## | + | |
- | x <- seq(a, | + | |
- | plot(x, | + | |
- | lines(x, | + | |
- | ### | + | |
- | ### | + | |
- | ### Solução analitica, númerica e por simulação do modelo | + | |
- | # X ~ B(n,p) | + | |
- | # p ~ Beta(alfa, | + | |
- | ### | + | |
- | ### | + | |
- | require(sfsmisc) | + | |
- | require(latticeExtra) | + | |
- | require(MASS) | + | |
- | # | + | |
- | + | ||
- | ### | + | |
- | ### | + | |
- | ### grid de p | + | |
- | p <- seq(0, | + | |
- | ### Priori | + | |
- | alfa <- 1 | + | |
- | beta <- 1 | + | |
- | p.priori <- dbeta(p, | + | |
- | ### Verossimilhança | + | |
- | n <- 1000 | + | |
- | x <- rbinom(1, | + | |
- | vero <- function(p, | + | |
- | p.vero <- apply(matrix(p), | + | |
- | ### | + | |
- | ### | + | |
- | ### Solução analitica | + | |
- | ### Posteriori | + | |
- | p.posteA <- dbeta(p, | + | |
- | ### Plotando | + | |
- | doubleYScale(xyplot(p.priori + p.posteA ~ p, foo, type = " | + | |
- | | + | |
- | | + | |
- | text = c(" | + | |
- | ### confirmando se a posteriori é uma fdp | + | |
- | integrate.xy(p, | + | |
- | ### | + | |
- | ### | + | |
- | ### INtegração númerica para normalização | + | |
- | ### posteriori | + | |
- | p.posteN <- (p.priori*p.vero)/ | + | |
- | ### Plotando | + | |
- | doubleYScale(xyplot(p.priori + p.posteN ~ p, foo, type = " | + | |
- | | + | |
- | | + | |
- | text = c(" | + | |
- | ### confirmando se a posteriori é uma fdp | + | |
- | integrate.xy(p, | + | |
- | ### | + | |
- | ### | + | |
- | ### Amostragem da posteriori | + | |
- | ns <- 100000 | + | |
- | theta_chapeu <- sum(x)/ | + | |
- | theta_i <- rbeta(ns, | + | |
- | u_i <- runif(ns, | + | |
- | crite <- u_i <= ((dbeta(theta_i, | + | |
- | | + | |
- | a.posteriori <- theta_i[crite] | + | |
- | mean(a.posteriori, | + | |
- | ### Taxa Aceitação | + | |
- | sum(crite)/ | + | |
- | ### | + | |
- | ### | + | |
- | ### Comparando os resultados | + | |
- | hist(a.posteriori, | + | |
- | rug(a.posteriori) | + | |
- | lines(density(a.posteriori)) | + | |
- | lines(p, | + | |
- | lines(p, | + | |
- | legend(' | + | |
- | + | ||
- | ### Intervalos via verosimilhança aproximado | + | |
- | theta_chapeu+c(-1, | + | |
- | ### IC amostragem | + | |
- | quantile(a.posteriori, | + | |
- | ### Analitico da conjugada | + | |
- | qbeta(c(0.025, | + | |
- | ### | + | |
- | ##------------------------------------------------------------### | + | |
### | ### | ||
### Regressão Beta | ### Regressão Beta | ||
Linha 277: | Linha 85: | ||
plot(grid.phi, | plot(grid.phi, | ||
abline(h=3.84) | abline(h=3.84) | ||
- | ############################################################################################## | ||
- | ### | ||
- | ### | ||
- | ### Algumas funções para analise utilizando MCMC | ||
- | ### topicos: | ||
- | ### 1) Modelos com JAGS via R (Regressão linear, Logistica) | ||
- | ### 2) dclone juntamente com JAGS | ||
- | ### 3) MCMCsamp em modelos mistos | ||
- | ### 4) MCMCglmm | ||
- | ### 5) MCMCpack | ||
- | ### | ||
- | ### | ||
- | rm(list=ls()) | ||
- | ### JAGS | ||
- | require(runjags) | ||
- | ### | ||
- | #### Exemplo JAGS (função run-jags) | ||
- | ## Exemplo de regressão linear simples | ||
- | # Simulação de dados | ||
- | X <- 1:50 | ||
- | Y <- rnorm(length(X), | ||
- | plot(X,Y) | ||
- | ### | ||
- | ### Inferencia por minimos quadrados | ||
- | m0 <- lm(Y~X) | ||
- | summary(m0) | ||
- | ### | ||
- | ### Modelo y = a*x+b | ||
- | ### Ajustando com o JAGS | ||
- | ### Priori para a ~ dnorm(0, | ||
- | ### Priori para b ~ dnorm(0, | ||
- | ### Priori para sigma ~ exp(1) | ||
- | ### Escrevendo o modelo | ||
- | model <- "model { | ||
- | for(i in 1 : N){ | ||
- | Y[i] ~ dnorm(y.est[i], | ||
- | | ||
- | } | ||
- | a ~ dnorm(0, | ||
- | b ~ dnorm(0, | ||
- | sigma ~ dexp(1); | ||
- | }" | ||
- | |||
- | ### Data e valor inicial | ||
- | data <- dump.format(list(X=X, | ||
- | inits0 <- dump.format(list(m=1, | ||
- | inits1 <- dump.format(list(m=0, | ||
- | # Run the model | ||
- | m1 <- run.jags(model=model, | ||
- | data=data, inits=c(inits0, | ||
- | ### informações do objeto | ||
- | names(m1) | ||
- | ### Verificando a cadeia | ||
- | plot(m1$mcmc[[1]]) | ||
- | ### Intervalos de credibilidade | ||
- | m1$HPD | ||
- | ### Sumario | ||
- | m1$summary | ||
- | ### | ||
- | ### | ||
- | ### Regressão logistica (Livro Introdução Analise Bayesiana) | ||
- | ## pi (n/y) é a proporção de embriões com asas | ||
- | ## ti é a variável “tempo desde a deposição dos ovos” | ||
- | ## função de ligação logit | ||
- | |||
- | t <- c(5, | ||
- | n <- c(34, | ||
- | y <- c(6, | ||
- | |||
- | dados <- cbind(y, | ||
- | m0 <- glm(dados~t, | ||
- | summary(m0) | ||
- | |||
- | datalist <- dump.format(list(metamorfose=y, | ||
- | params <- c(" | ||
- | inicial <- dump.format(list(beta0=coef(m0)[1], | ||
- | beta1=coef(m0)[2])) | ||
- | ### | ||
- | modmcmc <- " | ||
- | for(i in 1: | ||
- | metamorfose[i] ~ dbin(p[i], | ||
- | logit(p[i]) <- beta0+beta1*tempo[i] | ||
- | } | ||
- | beta0 ~ dnorm(0, | ||
- | beta1 ~ dnorm(0, | ||
- | }" | ||
- | |||
- | ### rodando o modelo | ||
- | modfit <- run.jags(model=modmcmc, | ||
- | inits=inicial, | ||
- | ### Verificando a cadeia | ||
- | plot(modfit$mcmc[[1]]) | ||
- | ### Intervalos de credibilidade | ||
- | modfit$HPD | ||
- | ### Sumario | ||
- | modfit$summary | ||
- | ### | ||
- | ### | ||
- | ### Modelos com repetição | ||
- | x <- gl(5,4) | ||
- | y <- rnorm(20, | ||
- | X <- model.matrix(~x) | ||
- | datalist <- dump.format(list(y=y, | ||
- | params <- c(" | ||
- | inicial <- dump.format(list(beta1=rep(0, | ||
- | ### | ||
- | modmcmc <- " | ||
- | for(i in 1: | ||
- | y[i] ~ dnorm(yb[i], | ||
- | yb[i] <- inprod(X[i, | ||
- | } | ||
- | tau ~ dexp(1); | ||
- | for(j in 1:5){ | ||
- | beta1[j] ~ dnorm(0, | ||
- | } | ||
- | }" | ||
- | ### rodando o modelo | ||
- | modfit <- run.jags(model=modmcmc, | ||
- | inits=inicial, | ||
- | ### Verificando a cadeia | ||
- | plot(modfit$mcmc[[1]]) | ||
- | ### Intervalos de credibilidade | ||
- | modfit$HPD | ||
- | ### Sumario | ||
- | modfit$summary | ||
- | #### Minimos quadrados | ||
- | summary(lm(y~x)) | ||
- | ### | ||
- | ### | ||
- | ### JAGS com Dclone | ||
- | require(dclone) | ||
- | ## simple regression example from the JAGS manual | ||
- | jfun <- function() { | ||
- | for (i in 1:N) { | ||
- | Y[i] ~ dnorm(mu[i], | ||
- | mu[i] <- alpha + beta * (x[i] - x.bar) | ||
- | } | ||
- | x.bar <- mean(x[]) | ||
- | alpha ~ dnorm(0.0, 1.0E-4) | ||
- | beta ~ dnorm(0.0, 1.0E-4) | ||
- | sigma <- 1.0/ | ||
- | tau ~ dgamma(1.0E-3, | ||
- | } | ||
- | ## data generation | ||
- | set.seed(1234) | ||
- | N <- 100 | ||
- | alpha <- 1 | ||
- | beta <- -1 | ||
- | sigma <- 0.5 | ||
- | x <- runif(N) | ||
- | linpred <- model.matrix(~x) %*% c(alpha, beta) | ||
- | Y <- rnorm(N, mean = linpred, sd = sigma) | ||
- | ## list of data for the model | ||
- | jdata <- list(N = N, Y = Y, x = x) | ||
- | ## what to monitor | ||
- | jpara <- c(" | ||
- | ## fit the model with JAGS | ||
- | regmod <- jags.fit(jdata, | ||
- | ## model summary | ||
- | summary(regmod) | ||
- | ## data cloning | ||
- | dcdata <- dclone(jdata, | ||
- | dcmod <- jags.fit(dcdata, | ||
- | summary(dcmod) | ||
- | #### opções de computação paralela | ||
- | ? | ||
- | ### | ||
- | ### | ||
- | ### Modelo misto - Amostrando a posteriorir via MCMC | ||
- | require(lme4) | ||
- | ### Resposta normal | ||
- | m0 <- lmer(Reaction ~ Days + (1|Subject) + (0+Days|Subject), | ||
- | summary(m0) | ||
- | sampm0 <- mcmcsamp(m0, | ||
- | HPDinterval(sampm0) | ||
- | xyplot(sampm0) | ||
- | qqmath(sampm0) | ||
- | densityplot(sampm0) | ||
- | ### | ||
- | ### | ||
- | browseURL(" | ||
- | browseURL(" | ||
- | browseURL(" | ||
- | require(MCMCglmm) | ||
- | ?MCMCglmm | ||
- | data(PlodiaPO) | ||
- | ### Modelo normal | ||
- | model1< | ||
- | summary(model1) | ||
- | plot.MCMCglmm(model1) | ||
- | ### MOdelo binomial | ||
- | model2 <- MCMCglmm(cbind(Pupated, | ||
- | data = PlodiaR, verbose = FALSE) | ||
- | plot.MCMCglmm(model2) | ||
- | ### | ||
- | ### | ||
- | require(MCMCpack) | ||
- | ### Modelo Poisson | ||
- | counts <- c(18, | ||
- | outcome <- gl(3,1,9) | ||
- | treatment <- gl(3,3) | ||
- | posterior <- MCMCpoisson(counts ~ outcome + treatment) | ||
- | plot(posterior) | ||
- | summary(posterior) | ||
- | ### | ||
- | ### | ||
- | ############################################################################################## | ||
</ | </ | ||