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
dicas:rstudio [2011/04/19 22:07]
paulojus
dicas:rstudio [2011/04/25 10:44] (atual)
walmes
Linha 17: Linha 17:
   * ✔ Outras Aproximações pela normal;   * ✔ 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 116: Linha 120:
     curve(dnorm(x),​ -4, 4, add=T, col=2)     curve(dnorm(x),​ -4, 4, add=T, col=2)
     legend("​topright", ​     legend("​topright", ​
-      c(substitute(t[nu == a], list(a=df)),​ expression(normal)), lty=1, col=1:2)+      c(substitute(t[nu == a], list(a=df)),​ expression(N(0,1))),  
 +      ​lty=1, col=1:2)
   },   },
     df = slider(1, 40)     df = slider(1, 40)
Linha 124: Linha 129:
 ## Chi^2 e normal ## Chi^2 e normal
 ## ##
- 
 manipulate( manipulate(
   {   {
-    curve(dchisq(x,​ df=df), 0, df+4*sqrt(2*df),​ ylab="​densidade f(x)"​) +    curve(dchisq(x,​ df=df), 0, df+4*sqrt(2*df), ​ 
-    curve(dnorm(x,​ m=df, sd=sqrt(2*df)),​ 0, df+4*sqrt(2*df),​ add=T, col=2) +          ​ylab="​densidade f(x)"​) 
-    legend("​topright",​ c(expression(chi^2), "​Normal"​),​ lty=1, col=1:2) +    curve(dnorm(x,​ m=df, sd=sqrt(2*df)),​ 0, df+4*sqrt(2*df), ​ 
-      c(substitute(chi^2[nu == a], list(a=df)), ​expression(normal)), lty=1, col=1:2) +          ​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)   df=slider(1,​50)
 ) )
Linha 198: Linha 208:
 #​------------------------------------------------------------ #​------------------------------------------------------------
 </​code>​ </​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>​
 +

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