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 anteriorRevisão anterior
Próxima revisão
Revisão anterior
dicas:rstudio [2011/04/15 18:16] – [Gráfico de duas densidades normais com destaque para áreas acumuladas até o quantil] silviadicas:rstudio [2011/04/25 10:44] (atual) walmes
Linha 7: Linha 7:
   * Histograma com controle no número de classes, intervalo de classe e tipo de frequência;   * Histograma com controle no número de classes, intervalo de classe e tipo de frequência;
   * ✔ Gráfico de densidade controlando o bandwidth e tipo de função kernel (Walmes);   * ✔ Gráfico de densidade controlando o bandwidth e tipo de função kernel (Walmes);
-  * Boxplot com controle no critério de representação dos extremos;+  * ✔ Boxplot com controle no critério de representação dos extremos (Walmes);
   * Gráfico para ilustrar poder do teste controlando a diferença entre as médias;   * Gráfico para ilustrar poder do teste controlando a diferença entre as médias;
   * ✔ Gráfico da densidade normal padrão com destaque para área acumulada até o quantil (Walmes);   * ✔ Gráfico da densidade normal padrão com destaque para área acumulada até o quantil (Walmes);
Linha 15: Linha 15:
   * ✔ Gráfico tridimensional variando o ângulo de observação (Walmes);   * ✔ Gráfico tridimensional variando o ângulo de observação (Walmes);
   * Aproximação da binomial pela normal controlando o valor de p;   * Aproximação da binomial pela normal controlando o valor de p;
 +  * ✔ Outras Aproximações pela normal;
   * Convergência da média de realizações binomial, Poisson, beta, etc, para uma distribuição normal controlando tamanho da amostra;   * Convergência da média de realizações binomial, Poisson, beta, etc, para uma distribuição normal controlando tamanho da amostra;
 +  * ✔ Gráfico para estudo de medidas de influência em modelos de regressão linear (Walmes);
 +  * ✔ Teste de normalidade aplicado aos dados e aos resíduos (Walmes);
 +  * ✔ Teste de correlação para dados e resíduos de experimentos (Walmes);
 +  * ✔ Taxa de erro tipo I e tipo II (Walmes).
  
 Dicas sobre o editor: Dicas sobre o editor:
Linha 86: Linha 91:
  
 #------------------------------------------------------------ #------------------------------------------------------------
 +</code>
 +
 +==== Aproximações pela normal ====
 +<code R>
 +require(manipulate)
 +##
 +## Poisson e normal
 +##
 +manipulate(
 +  {
 +    XM <- floor(lam+4*sqrt(lam))
 +    curve(dpois(x, lambda=lam), 0, XM, n=XM+1,
 +          ylab="P[X=x] / f(x)", type="h")
 +    curve(dnorm(x, m=lam, sd=sqrt(lam)), 0, XM,
 +          add=T, col=2)
 +    legend("topright", c("Poisson", "Normal"), lty=1, col=1:2)
 +    title(substitute(lambda == l, list(l=lam)))
 +  },
 +  lam=slider(0.5, 30, step=0.5)
 +  )
 +
 +##
 +## t e normal
 +##
 +manipulate(
 +    {
 +    curve(dt(x, df=df), -4, 4, ylim=c(0, 0.4), ylab="densidade f(x)")
 +    curve(dnorm(x), -4, 4, add=T, col=2)
 +    legend("topright", 
 +      c(substitute(t[nu == a], list(a=df)), expression(N(0,1))), 
 +      lty=1, col=1:2)
 +  },
 +    df = slider(1, 40)
 +  )
 +
 +##
 +## Chi^2 e normal
 +##
 +manipulate(
 +  {
 +    curve(dchisq(x, df=df), 0, df+4*sqrt(2*df), 
 +          ylab="densidade f(x)")
 +    curve(dnorm(x, m=df, sd=sqrt(2*df)), 0, df+4*sqrt(2*df), 
 +          add=T, col=2)
 +    legend("topright", 
 +    leg=eval(substitute(c(expression(chi[nu==df]^2),
 +             expression(N(mu==df,sigma^2==df2))), 
 +             list(df2=2*df, df=df)),
 +),
 +          lty=1, col=1:2)
 +  },
 +  df=slider(1,50)
 +)
 </code> </code>
  
 ==== Gráfico de duas densidades normais com destaque para áreas acumuladas até o quantil ==== ==== Gráfico de duas densidades normais com destaque para áreas acumuladas até o quantil ====
 +(Veja o enunciado deste exemplo em [[http://www.leg.ufpr.br/~silvia/CE055/node49.html]])
  
-<code>+<code R>
 # por Silvia ------------------------------------------------ # por Silvia ------------------------------------------------
  
Linha 117: Linha 176:
   )   )
    
 +#------------------------------------------------------------
 +</code>
 +
 +==== Boxplot com controle no critério de representação dos extremos ====
 +
 +<code R>
 +# por Walmes ------------------------------------------------
 +
 +require(manipulate)
 +
 +manipulate(
 +  {
 +    x <- rep(1:10, 2)
 +    x[20] <- extreme
 +    gr <- gl(2, 10)
 +    bp <- boxplot(x~gr, outline=outline, range=range,
 +                  notch=notch, plot=FALSE)
 +    inf <- bp$stats[4,2]
 +    sup <- inf+range*diff(bp$stats[c(2,4),2])
 +    ylim <- extendrange(r=c(min(x), max(c(x,sup))), f=0.05)
 +    boxplot(x~gr, outline=outline, range=range,
 +            notch=notch, ylim=ylim)
 +    arrows(1.5, inf, 1.5, sup, angle=90, code=3, length=0.1)
 +  },
 +  extreme=slider(10, 30, step=0.5, initial=10),
 +  range=slider(1, 4, step=0.1, initial=1.5),
 +  outline=checkbox(TRUE, "show.outlier"),
 +  notch=checkbox(FALSE, "show.interval")
 +  )
 +  
 +#------------------------------------------------------------
 +</code>
 +
 +==== Gráfico para estudo de medidas de influência em modelos de regressão linear ====
 +
 +<code R>
 +# por Walmes ------------------------------------------------
 +
 +require(manipulate)
 +data(anscombe)
 +ans0 <- anscombe[,c("x1","y1")]
 +ans0 <- ans0[order(ans0$x1),]
 +rownames(ans0) <- NULL
 +ans1 <- ans0
 +rx <- 2*diff(range(ans1$x1))
 +ry <- 2*diff(range(ans1$y1))
 +cols <- rep(1,nrow(ans0))
 +
 +layout(matrix(c(1,2,1,3,4,5),2,3))
 +
 +manipulate({
 +  ans1[po,] <- ans0[po,]+c(dx,dy)
 +  plot(ans1)
 +  points(ans1[po,], col="red", pch=19)
 +  abline(a=3, b=0.5, col="gray50", lty=2)
 +  m1 <- lm(y1~x1, data=ans1)
 +  abline(m1, col=2)
 +  h <- hatvalues(m1)[po]
 +  r <- residuals(m1)[po]
 +  legend("topleft", bty="n",
 +         legend=c(substitute(h==ha, list(ha=round(h,3))),
 +                  substitute(r==re, list(re=round(r,3)))))
 +  legend("bottomright", legend=po, bty="n")
 +  plot(m1)
 +  },
 +  po=slider(1,nrow(ans0), step=1, initial=5),
 +  dx=slider(-rx+0.001, rx, initial=0),
 +  dy=slider(-ry, ry, initial=0))
 +
 +#------------------------------------------------------------
 +</code>
 +
 +==== Teste de normalidade aplicado aos dados e aos resíduos ====
 +
 +<code R>
 +# por Walmes ------------------------------------------------
 +
 +par(mfrow=c(2,1))
 +
 +manipulate({
 +  m <- rep(seq(0,by=h1,length.out=nlev), nrep)
 +  x <- rnorm(m, m, sd)
 +  xp <- qqnorm(x); qqline(x)
 +  rug(xp$x); rug(xp$y, side=2)
 +  legend("topleft", legend=shapiro.test(x)$p, bty="n")
 +  m0 <- lm(x~factor(m))
 +  xp <- qqnorm(residuals(m0)); qqline(residuals(m0))
 +  rug(xp$x);rug(xp$y, side=2)
 +  legend("topleft", bty="n",
 +         legend=shapiro.test(residuals(m0))$p)
 +  },
 +  h1=slider(0.001, 10, initial=1),
 +  nlev=slider(2, 15, initial=5),
 +  nrep=slider(2, 25, initial=5),
 +  sd=slider(0.01, 10, initial=1))
 +  
 +#------------------------------------------------------------
 +</code>
 +
 +==== Teste de correlação para dados e resíduos de experimentos ====
 +
 +<code R>
 +# por Walmes ------------------------------------------------
 +
 +require(MASS)
 +par(mfrow=c(2,1))
 +
 +manipulate({
 +  m <- rep(seq(0,by=h1,length.out=nlev), nrep)
 +  x <- mvrnorm(length(m), mu=c(0,0),
 +               Sigma=matrix(c(1,cor,cor,1),2,2))
 +  x[,1] <- x[,1]+m; x[,2] <- x[,2]+m
 +  plot(x)
 +  legend("topleft", legend=cor.test(x[,1], x[,2])$est, bty="n")
 +  m0 <- aov(x~factor(m))
 +  r <- residuals(m0)
 +  plot(r)
 +  legend("topleft", legend=cor.test(r[,1], r[,2])$est, bty="n")
 +  },
 +  h1=slider(0,19.99,initial=0.01),
 +  nrep=slider(10,300,initial=20),
 +  nlev=slider(2,15,initial=5),
 +  cor=slider(-0.99,0.99,initial=0))
 +
 +#------------------------------------------------------------
 +</code>
 +
 +==== Taxa de erro tipo I e tipo II  ====
 +
 +<code R>
 +# por Walmes ------------------------------------------------
 +
 +require(manipulate)
 +
 +n <- 70
 +xx <- seq(qnorm(0.9), 4, l=n)
 +yy <- dnorm(xx, 0, 1)
 +
 +area <- function(x,y){
 +  da <- rbind(cbind(x,y), c(x[1],y[1]))
 +  DA <- sapply(1:length(x),
 +               function(o){
 +                 dir <- da[o,1]*da[o+1,2]
 +                 esp <- da[o,2]*da[o+1,1]
 +                 c(dir, -esp)
 +               }
 +               )
 +  abs(sum(apply(DA, 1, sum)/2))
 +}
 +
 +manipulate({
 +  curve(dnorm(x, 0, 1), -4, 9, col=1,
 +        ylim=c(-0.15,0.5), yaxt="n", ylab="f(x)")
 +  axis(2, at=seq(0,0.4,0.1))
 +  curve(dnorm(x, i, 1), col=2, add=TRUE)
 +  xx2 <- seq(-4+i, qnorm(0.9, i, 1)+2, l=n)
 +  yy2 <- dnorm(xx2, i, 1)
 +  xx2 <- c(min(xx2), xx2, max(xx2))
 +  yy2 <- c(0,yy2,0)
 +  yy2 <- pmin(yy2, dnorm(xx2, 0, 1))
 +  polygon(xx2, yy2, col="gray90")
 +  polygon(c(xx, rev(xx)),
 +          c(yy, rep(0, length(yy))), den=10)
 +  segments(i, 0, i, 0.4, col=2)
 +  segments(0, 0, 0, 0.4, col=1)
 +  tipo2 <- round(area(xx2,yy2), 3)
 +  text(2, -0.075, pos=1, label=expression(alpha==0.10))
 +  arrows(2, -0.075, 2, -0.01, length=0.1)
 +  text(i/2, 0.45, pos=3, label=substitute(beta==b, list(b=tipo2)))
 +  arrows(i/2, 0.45, i/2, max(yy2)+0.01, length=0.1)
 +  },
 +  i=slider(0, 6, step=0.01, initial=0)
 +  )
 +
 #------------------------------------------------------------ #------------------------------------------------------------
 </code> </code>
  

QR Code
QR Code dicas:rstudio (generated for current page)