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:57] – [Área de Interesse] eder | pessoais:eder [2018/07/04 19:10] (atual) – [section 5] eder | ||
|---|---|---|---|
| Linha 15: | Linha 15: | ||
| * {{: | * {{: | ||
| * {{: | * {{: | ||
| + | * {{: | ||
| + | ===== Artigos de Interesse ===== | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | * {{http:// | ||
| + | |||
| ===== Disciplinas 2011/1 ===== | ===== Disciplinas 2011/1 ===== | ||
| Linha 25: | Linha 38: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| ===== Códigos (Em construção) ===== | ===== Códigos (Em construção) ===== | ||
| <code R> | <code R> | ||
| - | ### | ||
| - | ### Reversible jump MCMC | ||
| - | ### Modelo 1 y ~ N(b0+b1*x, | ||
| - | ### Modelo 1 y ~ N(b0+b1*x+b2*x², | ||
| - | # | ||
| - | # pg 76 | ||
| - | require(MASS)# | ||
| - | require(MCMCpack)# | ||
| - | require(coda)# | ||
| - | rm(list=ls()) | ||
| - | ### Ajustar Prioris | ||
| - | ### conferir jacobiano | ||
| - | |||
| - | rj.modelo <- function(y, | ||
| - | mu02=mu02, | ||
| - | if (model == 1){ | ||
| - | u <- rnorm(1, mu,sd) | ||
| - | b0_n <- b0 | ||
| - | b1_n <- b1 | ||
| - | sigma_n <- sigma | ||
| - | b01_n <- b0 * u | ||
| - | b11_n <- b1 * u | ||
| - | b21_n <- u | ||
| - | sigma1_n <- sigma * (u^2) | ||
| - | } | ||
| - | if (model == 2){ | ||
| - | u <- b21 | ||
| - | b0_n <- b01 / u | ||
| - | b1_n <- b11 / u | ||
| - | sigma_n <- sigma1 / (u^2) | ||
| - | b01_n <- b01 | ||
| - | b11_n <- b11 | ||
| - | b21_n <- b21 | ||
| - | sigma1_n <- sigma1 | ||
| - | } | ||
| - | num <- (sum(dnorm(y, | ||
| - | # sum(dnorm(y, | ||
| - | # | ||
| - | # sum(log(dinvgamma(y, | ||
| - | ) * u^4 | ||
| - | den <- (sum(dnorm(y, | ||
| - | # sum(dnorm(y, | ||
| - | # sum(dnorm(y, | ||
| - | # sum(dnorm(y, | ||
| - | # sum(log(dinvgamma(y, | ||
| - | ) * dnorm(u, | ||
| - | u = runif(1, 0, 1) | ||
| - | if (model == 1) { | ||
| - | aceita = min(1, num/den) | ||
| - | if (u < aceita) { | ||
| - | model = 2 | ||
| - | b0 <- b0_n | ||
| - | b1 <- b1_n | ||
| - | sigma <- sigma_n | ||
| - | } | ||
| - | } | ||
| - | if (model == 2){ | ||
| - | aceita = min(1, den/num) | ||
| - | if (u < aceita) { | ||
| - | model = 1 | ||
| - | b01 <- b01_n | ||
| - | b11 <- b11_n | ||
| - | b21 <- b21_n | ||
| - | sigma1 <- sigma1_n | ||
| - | } | ||
| - | } | ||
| - | if (model == 1){return(list(model = model, | ||
| - | if (model == 2){return(list(model = model, | ||
| - | } | ||
| - | |||
| - | |||
| - | | ||
| - | rjmcmc <- function(nI, | ||
| - | chain = matrix(NA, nrow = nI, ncol = 8) | ||
| - | nv <- c(0,0) | ||
| - | chain[1, | ||
| - | model = 1 | ||
| - | n <- length(y) | ||
| - | ### | ||
| - | ###MOdel 1 | ||
| - | X <- model.matrix(~x) | ||
| - | k< | ||
| - | #beta | ||
| - | mu0< | ||
| - | V0< | ||
| - | #sigma2 | ||
| - | v0<-3 | ||
| - | tau0< | ||
| - | #Valores iniciais | ||
| - | chain[1,3] < | ||
| - | invV0 <- solve(V0) | ||
| - | XtX <- crossprod(X, | ||
| - | Xty <- crossprod(X, | ||
| - | invV0_mu0 <- invV0 %*% mu0 | ||
| - | ### | ||
| - | # Model 2 | ||
| - | X2 <- cbind(1, | ||
| - | k2< | ||
| - | #beta | ||
| - | mu02< | ||
| - | V02< | ||
| - | #sigma2 | ||
| - | v02<-3 | ||
| - | tau02< | ||
| - | #Valores iniciais | ||
| - | chain[1,7] <- sig2draw2< | ||
| - | invV02 <- solve(V02) | ||
| - | XtX2 <- crossprod(X2, | ||
| - | Xty2 <- crossprod(X2, | ||
| - | invV0_mu02 <- invV02 %*% mu02 | ||
| - | ### | ||
| - | for (i in 2:nI) { | ||
| - | if (model == 1){ | ||
| - | # Model 1 | ||
| - | #beta | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | # sigma | ||
| - | | ||
| - | yXb <- (y-X %*% chain[i, | ||
| - | tyXb <-t(yXb) | ||
| - | | ||
| - | | ||
| - | } | ||
| - | if (model == 2){ | ||
| - | # Model 2 | ||
| - | #beta | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | # sigma | ||
| - | | ||
| - | yXb2 <- (y-X2 %*% chain[i, | ||
| - | tyXb2 < | ||
| - | | ||
| - | | ||
| - | } | ||
| - | new <- rj.modelo(y, | ||
| - | model <- new$model | ||
| - | if (model == 1) { | ||
| - | chain[i, 1] = new$b0 | ||
| - | chain[i, 2] = new$b1 | ||
| - | chain[i, 3] = new$sigma | ||
| - | nv[1] = nv[1] + 1 | ||
| - | } | ||
| - | if (model == 2) { | ||
| - | chain[i, 4] = new$b01 | ||
| - | chain[i, 5] = new$b11 | ||
| - | chain[i, 6] = new$b21 | ||
| - | chain[i, 7] = new$sigma1 | ||
| - | nv[2] = nv[2] + 1 | ||
| - | } | ||
| - | } | ||
| - | chain[,8] <- 1 | ||
| - | chain[is.na(chain[, | ||
| - | chain <- chain[- c(1: | ||
| - | colnames(chain) <- c(' | ||
| - | return(list(as.mcmc(na.omit(chain[, | ||
| - | as.mcmc(na.omit(chain[, | ||
| - | as.mcmc(na.omit(chain[, | ||
| - | } | ||
| - | |||
| - | x <- 1:10 | ||
| - | y <- 10+2*x^1+rnorm(x, | ||
| - | plot(x,y) | ||
| - | res <- rjmcmc(5000, | ||
| - | lapply(res, | ||
| - | plot(res[[1]]) | ||
| - | summary(lm(y~1+I(x))) | ||
| - | plot(res[[2]]) | ||
| - | summary(lm(y~1+I(x)+I(x^2))) | ||
| - | plot(res[[3]]) | ||
| ## | ## | ||
| ### | ### | ||