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/05 19:50]
eder [Minicursos]
pessoais:eder [2011/06/16 18:11]
eder [section 5]
Linha 12: Linha 12:
   *  Estatística Espacial   *  Estatística Espacial
   * [[http://​www.leg.ufpr.br/​doku.php/​projetos:​gem2|GEM²]] Grupo de estudos em modelos mistos   * [[http://​www.leg.ufpr.br/​doku.php/​projetos:​gem2|GEM²]] Grupo de estudos em modelos mistos
 +===== Disciplinas 2011/1 ===== 
 +  * [[http://​www.leg.ufpr.br/​doku.php/​disciplinas:​ce210-2010-02|CE-210:​ Inferência estatística II]]
 +  * [[http://​www.leg.ufpr.br/​doku.php/​disciplinas:​ce718|CE-718:​ Métodos Computacionalmente Intensivos]]
 +
  
 ===== Minicursos =====  ===== Minicursos ===== 
    * [[http://​www.leg.ufpr.br/​ragronomia|Estatística Experimental com Software R]]    * [[http://​www.leg.ufpr.br/​ragronomia|Estatística Experimental com Software R]]
-   * [[http://​www.leg.ufpr.br/​doku.php/​pessoais:​eder:​exptempoAnálise de Experimentos ​de longa duração]] +   * [[http://​www.leg.ufpr.br/​doku.php/​pessoais:​eder:​planejamentofito|Planejamento ​de experimento PG Produção Vegetal UFPR]] 
-   * [[http://​www.leg.ufpr.br/​doku.php/​pessoais:​eder:​planejamentofito|Planejamento ​de experimento PG Produção Vegetal UFPR+   * [[http://​www.leg.ufpr.br/​doku.php/​pessoais:​eder:​exptempoAnálise ​de Experimentos de longa duração]] II Reunião Paranaense Ciência do Solo
 ===== Códigos =====  ===== Códigos ===== 
 <code R> <code R>
-###buf +###-----------------------------------------------------------------###​ 
-buf <- function(n){ +### Agulha de buffon 
-  ​ttt <- NULL +buffon ​<- function(n,l=1,a=1){ 
-  ​ttt[1] <- 0 +  ​if(a<l){cat('​Erro:​ a < l, deve ser a > l\n')} 
-  ​<- runif(n) +  ​if(a>​=l){ 
-  ​th <- runif(n,0,pi+  ​theta <- runif(n,0,pi
-  ​st <- sin(th) +  ​dist <- runif(n,0,a/2
-  for ( i in 1:n){ +  ​inter <- sum(dist <= l/2*sin(theta)) 
-    ​if(st[i]>​x[i]){ +  ​phi_est ​<- round((n/inter)*(2*l/a),12) 
-      ttt[i+1] ​ <​- ​ttt[i]+1 +  cat('Número Simulação',n,'phi_estimado',phi_est,'Erro',​round(pi-phi_est,​12),'​\n') 
-    } +  ​return(c(n,​phi_est)) 
-    else { +}
-      ttt[i+1] <- ttt[i] + 
-    }} +n <- seq(10000,​1000000,​by=20000
-    if (ttt[n+1]>​0){ +res <- matrix(NA,ncol=2,​nrow=length(n)
-      plot((0:n)[ttt>​0],​2*(0:​n)[ttt>​0]/ttt[ttt>​0],type='l',xlab='numero simulação',ylab='​pi'​) +con <- 1 
-    +for (i in n){ 
-    ​else{print('no sucesso'​)} +  ​res[con,] <- buffon(i) 
-    ​abline(pi,0+  con <- con+1 
-    } +}
-   +
-  ​buf(100000)+
  
 +plot(res,​type='​l',​ylab=expression(pi),​xlab='​Simulações'​)
 +abline(h=pi,​col='​red'​)
 +###​-----------------------------------------------------------------###​
 ### MOnte carlo ### MOnte carlo
 ## Calcula a área via simulação de monte carlo ## Calcula a área via simulação de monte carlo
Linha 72: Linha 77:
 } }
 MCcirculo(1,​seq(5,​5000,​by=1000),​plotS=FALSE) MCcirculo(1,​seq(5,​5000,​by=1000),​plotS=FALSE)
-### inversão de p+###-----------------------------------------------------------------###​
 ### Inversão de Probabilidade ### Inversão de Probabilidade
 +### OBJ: gerar x~exp transformando de uma uniforme
 NS <- 10000 NS <- 10000
 +lam <- 0.5
 +#​f(x)=exp(lam) F(x)=1-exp(-lam*x),​ logo: F^-1(x)= -lam^-1*log(1-x)
 +Gexp <- function(x,​lam){-(log(1-U))/​lam}
 +
 U <- runif(NS) U <- runif(NS)
-X <- - log(U) +X <- Gexp(U,lam
-Y <- rexp(NS)+Y <- rexp(NS,lam) 
 par(mfrow=c(1,​3)) par(mfrow=c(1,​3))
 hist(U,​freq=FALSE,​main='​Uniforme',​col='​lightblue'​) hist(U,​freq=FALSE,​main='​Uniforme',​col='​lightblue'​)
 lines(density(U),​col='​red',​lwd=2) lines(density(U),​col='​red',​lwd=2)
 +
 hist(X,​freq=FALSE,​main='​Expoencial via uniforme',​col='​lightblue'​) hist(X,​freq=FALSE,​main='​Expoencial via uniforme',​col='​lightblue'​)
 lines(density(X),​col='​red',​lwd=2) lines(density(X),​col='​red',​lwd=2)
-lines(curve(dexp(x,​1),​min(X),​max(X),​add=TRUE),​col='​blue',​lwd=2)+lines(curve(dexp(x,​lam),​min(X),​max(X),​add=TRUE),​col='​blue',​lwd=2) 
 hist(Y,​freq=FALSE,​main='​Expoencial do R',​col='​lightblue'​) hist(Y,​freq=FALSE,​main='​Expoencial do R',​col='​lightblue'​)
 lines(density(Y),​col='​red',​lwd=2) lines(density(Y),​col='​red',​lwd=2)
-lines(curve(dexp(x,​1),​min(Y),​max(Y),​add=TRUE),​col='​blue',​lwd=2) +lines(curve(dexp(x,​lam),​min(Y),​max(Y),​add=TRUE),​col='​blue',​lwd=2) 
-################################################################################​ +###-----------------------------------------------------------------### 
-###​----------------------------------------------------------###​+### Metodos de integração numerica 
 +#Função 
 +f <- function(x){exp(-x^2)} 
 +a <- -3 
 +b <- 3 
 +integrar de -3,3 
 +x <- seq(a,​b,​l=100) 
 +plot(x,​f(x),​type='​l',​ylim=c(0,​1)) 
 +Integração nativa do R - Gauss–Kronrod quadrature 
 +integrate(f,​a,​b) 
 +###Simpson 1/3 - INtervalos par, igualmente espaçados 
 +n <- 1200 
 +xi <- seq(a,​b,​l=n+1) 
 +i <- seq(2,​n,​by=2) 
 +j <- seq(3,​n-1,​by=2) 
 +((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 
 +n <- 1200 
 +xi <- seq(a,​b,​l=n+1) 
 +i <- seq(2,​n,​by=3) 
 +j <- seq(4,​n-2,​by=3) 
 +((3*(b-a)/​n)/​8)*(f(a)+3*sum(f(xi[i])+f(xi[i+1]))+2*sum(f(xi[j]))+f(b)) 
 +### Quadratura gausiana 3º Ordem 
 +w <- c(0.555555,​0.888888,​0.555555) 
 +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) 
 +### Quadratura gausiana 6º Ordem 
 +w <- c(0.1713245,​0.3607616,​0.4679139,​0.4679139,​0.3607616,​0.1713245) 
 +xi <- c(-0.933246951,​-0.66120938,​-0.23861919,​0.23861919,​0.66120938,​0.933246951) 
 +(b-a)/​2*sum(f((b-a)/​2*xi+(a+b)/​2)*w) 
 +###Monte Carlo 
 +n <- 10000 
 +xi <- runif(n,​a,​b) 
 +Ls <- max(f(seq(a,​b,​l=100))) 
 +Li <- 0 
 +yi <- runif(n,​Li,​Ls) 
 +sum(f(xi)>​=yi)/​n*((b-a)*(Ls-Li)) 
 +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
 ### pacote oficial ### pacote oficial
Linha 95: Linha 239:
 fe_beta <- betareg(I(food/​income) ~ income + persons , data = FoodExpenditure) fe_beta <- betareg(I(food/​income) ~ income + persons , data = FoodExpenditure)
 summary(fe_beta) summary(fe_beta)
-###​----------------------------------------------------------###​+###-----------------------------------------------------------------###​
 ### log vero da regressão beta com duas covariaveis, ​ ### log vero da regressão beta com duas covariaveis, ​
 log.vero <- function(par,​y,​x1,​x2){ log.vero <- function(par,​y,​x1,​x2){
Linha 102: Linha 246:
         return(ll)         return(ll)
 } }
- +  
-###​----------------------------------------------------------### ​           +###-----------------------------------------------------------------### ​         
 opt <- optim(c(B0=-0.5,​B1=-0.51,​B2=0.11,​phi=35),​log.vero,​y=FoodExpenditure$food/​FoodExpenditure$income,​ opt <- optim(c(B0=-0.5,​B1=-0.51,​B2=0.11,​phi=35),​log.vero,​y=FoodExpenditure$food/​FoodExpenditure$income,​
                                                         x1=FoodExpenditure$income,​                                                         x1=FoodExpenditure$income,​
Linha 112: Linha 256:
 sqrt(-diag(solve(opt$hessian))) sqrt(-diag(solve(opt$hessian)))
 summary(fe_beta) summary(fe_beta)
 +###​-----------------------------------------------------------------###​
 +log.veroP <- function(par,​phi,​y,​x1,​x2){
 +        mu <- exp((par[1] + par[2] * x1 + par[3] * x2))/​(1+exp((par[1] + par[2] * x1 + par[3] * x2)))##​logit^-1
 +        ll  <- sum(dbeta(y,​ mu* phi, (1-mu)*phi,​log = TRUE))
 +        return(ll)
 +}
 +
 +opt <- grid.phi <- seq(20,​60,​l=150)
 +con <- 1
 +for (i in grid.phi){
 +  opt[con] <- optim(c(B0=-0.5,​B1=-0.51,​B2=0.11),​log.veroP,​phi=i,​y=FoodExpenditure$food/​FoodExpenditure$income,​
 +                                                        x1=FoodExpenditure$income,​
 +                                                        x2=FoodExpenditure$persons,​
 +                                                        hessian = TRUE, control=(list(fnscale=-1)))$value
 +  con <- con+1
 +}
 +
 +plot(grid.phi,​2*(max(opt)-opt),​type='​l'​)
 +abline(h=3.84)
 </​code>​ </​code>​
 +
 [[http://​www.ime.usp.br/​~sferrari/​beta.pdf|Regressão beta]] [[http://​www.ime.usp.br/​~sferrari/​beta.pdf|Regressão beta]]
  
  

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