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
pessoais:eder [2011/06/12 16:21]
eder [section 5]
pessoais:eder [2011/06/15 22:07]
eder [section 5]
Linha 103: Linha 103:
 ### Metodos de integração numerica ### Metodos de integração numerica
 #Função #Função
-f <- function(x){1/18*x^2}+f <- function(x){exp(-x^2)}
 a <- -3 a <- -3
 b <- 3 b <- 3
-# Analiticamente 
-(1/​18*b^3/​3)-(1/​18*a^3/​3) 
 # integrar de -3,3 # integrar de -3,3
 x <- seq(a,​b,​l=100) x <- seq(a,​b,​l=100)
-plot(x,​f(x),​type='​l'​)+plot(x,​f(x),​type='​l'​,​ylim=c(0,​1))
 # Integração nativa do R - Gauss–Kronrod quadrature # Integração nativa do R - Gauss–Kronrod quadrature
 integrate(f,​a,​b) integrate(f,​a,​b)
 ###Simpson 1/3 - INtervalos par, igualmente espaçados ###Simpson 1/3 - INtervalos par, igualmente espaçados
-n <- 12+n <- 1200
 xi <- seq(a,​b,​l=n+1) xi <- seq(a,​b,​l=n+1)
 i <- seq(2,​n,​by=2) i <- seq(2,​n,​by=2)
Linha 120: Linha 118:
 ((b-a)/​n/​3)*(f(a)+4*sum(f(xi[i]))+2*sum(f(xi[j]))+f(b)) ((b-a)/​n/​3)*(f(a)+4*sum(f(xi[i]))+2*sum(f(xi[j]))+f(b))
 ###Simpson 3/8 - Intervalos divisiveis por 3 ###Simpson 3/8 - Intervalos divisiveis por 3
-n <- 12+n <- 1200
 xi <- seq(a,​b,​l=n+1) xi <- seq(a,​b,​l=n+1)
 i <- seq(2,​n,​by=3) i <- seq(2,​n,​by=3)
Linha 128: Linha 126:
 w <- c(0.555555,​0.888888,​0.555555) w <- c(0.555555,​0.888888,​0.555555)
 xi <- c(-0.77459667,​0,​0.77459667) xi <- c(-0.77459667,​0,​0.77459667)
 +(b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w)
 +### Quadratura gausiana 4º Ordem
 +w <- c(0.3478548,​0.6521452,​0.6521452,​0.3478548)
 +xi <- c(-0.86113631,​-0.33998104,​0.33998104,​0.86113631)
 (b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w) (b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w)
 ### Quadratura gausiana 6º Ordem ### Quadratura gausiana 6º Ordem
Linha 134: Linha 136:
 (b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w) (b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w)
 ###Monte Carlo ###Monte Carlo
-n <- 1000+n <- 10000
 xi <- runif(n,​a,​b) xi <- runif(n,​a,​b)
 Ls <- max(f(seq(a,​b,​l=100))) Ls <- max(f(seq(a,​b,​l=100)))
-Li <- min(f(seq(a,​b,​l=100)))+Li <- 0
 yi <- runif(n,​Li,​Ls) yi <- runif(n,​Li,​Ls)
 sum(f(xi)>​=yi)/​n*((b-a)*(Ls-Li)) sum(f(xi)>​=yi)/​n*((b-a)*(Ls-Li))
 points(xi,​yi) points(xi,​yi)
 +###Laplace
 +#f' <- -2*x*exp(-x^2)
 +D2f  <- function(x){(4*x^2-2)*exp(-x^2)}
 +D2f(0)
 +((2*pi)/​((-D2f(0))))^0.5*f(0)
 +##Avaliando
 +x <- seq(a,​b,​l=100)
 +plot(x,​f(x),​type='​l',​ylim=c(0,​2))
 +lines(x,​((2*pi)/​((-D2f(0))))^0.5*f(x),​col="​red"​)
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### Solução analitica, númerica e por simulação do modelo
 +# X ~ B(n,p)
 +# p ~ Beta(alfa,​beta)
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +require(sfsmisc)
 +require(latticeExtra)
 +require(MASS)
 +#​browseURL('​http://​cs.illinois.edu/​class/​sp10/​cs598jhm/​Slides/​Lecture02HO.pdf'​)
 +
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### grid de p
 +p <- seq(0,​0.99999,​by=0.001)
 +### Priori
 +alfa <- 1
 +beta <- 1
 +p.priori <- dbeta(p,​alfa,​beta)
 +### Verossimilhança
 +n <- 1000
 +x <- rbinom(1,​n,​0.3)
 +vero <- function(p,​n,​x){exp(sum(dbinom(x,​n,​p,​log=TRUE)))}
 +p.vero <- apply(matrix(p),​1,​vero,​n=n,​x=x)
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### Solução analitica
 +### Posteriori
 +p.posteA <- dbeta(p,​alfa+sum(x),​beta+sum(n-x))
 +### Plotando
 +doubleYScale(xyplot(p.priori + p.posteA ~ p, foo, type = "​l",​lwd=3), ​
 +             ​xyplot(p.vero ~ p, foo, type = "​l",​lwd=2,​lty=2),​
 +             ​style1 = 0, style2 = 3, add.ylab2 = TRUE,
 +             text = c("​Priori",​ "​Posteriori",​ "​Verossimilhança"​),​ columns = 3) 
 +### confirmando se a posteriori é uma fdp             
 +integrate.xy(p,​p.posteA) ​            
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### INtegração númerica para normalização
 +### posteriori
 +p.posteN <- (p.priori*p.vero)/​(integrate.xy(p,​p.priori*p.vero))
 +### Plotando
 +doubleYScale(xyplot(p.priori + p.posteN ~ p, foo, type = "​l",​lwd=2), ​
 +             ​xyplot(p.vero ~ p, foo, type = "​l",​lwd=2,​lty=2),​
 +             ​style1 = 0, style2 = 3, add.ylab2 = TRUE,
 +             text = c("​Priori",​ "​Posteriori",​ "​Verossimilhança"​),​ columns = 3)
 +### confirmando se a posteriori é uma fdp             
 +integrate.xy(p,​p.posteN)
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### Amostragem da posteriori
 +ns <- 100000
 +theta_chapeu <- sum(x)/​(n*length(x))
 +theta_i <- rbeta(ns,​alfa,​beta)
 +    u_i <- runif(ns,​0,​1)
 +crite <- u_i <= ((dbeta(theta_i,​alfa,​beta)*apply(matrix(theta_i),​1,​vero,​n=n,​x=x))/​
 +                 ​(dbeta(theta_chapeu,​alfa,​beta)*vero(theta_chapeu,​n=n,​x=x)))
 +a.posteriori <- theta_i[crite] ​    
 +mean(a.posteriori,​na.rm=TRUE)
 +### Taxa Aceitação
 +sum(crite)/​ns
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 +### Comparando os resultados
 +hist(a.posteriori,​prob=TRUE)
 +rug(a.posteriori)
 +lines(density(a.posteriori))
 +lines(p,​p.posteA,​col='​red',​lwd=3)
 +lines(p,​p.posteN,​col='​blue',​lty=2)
 +legend('​topleft',​c('​Amostragem','​Analitico','​Númerica'​),​lty=c(1,​1,​2),​col=c('​black','​red','​blue'​))
 +
 +### Intervalos via verosimilhança aproximado
 +theta_chapeu+c(-1,​1)*1.96*sqrt((theta_chapeu*(1-theta_chapeu))/​n)
 +### IC amostragem
 +quantile(a.posteriori,​c(0.025,​0.975))
 +### Analitico da conjugada
 +qbeta(c(0.025,​0.975),​alfa+sum(x),​beta+sum(n-x))
 +###​------------------------------------------------------------###​
 +###​------------------------------------------------------------###​
 ###​-----------------------------------------------------------------###​ ###​-----------------------------------------------------------------###​
 ### Regressão Beta ### Regressão Beta

QR Code
QR Code pessoais:eder (generated for current page)