Não foi possível enviar o arquivo. Será algum problema com as permissões?

Essa é uma revisão anterior do documento!


RStudio ferramenta didática

RStudio ferramenta didática

Essa página é destinada a coleção de funções R para auxílio no ensino de estatística com o editor RStudio. O objetivo principal é reunir aqui implementações empregando a função manipulate::manipulate() para fazer gráficos interativos. Em segundo plano ficam dicas de como otimizar o uso desse editor.

Lista de implementações a fazer:

  • Gráfico de densidade de probabilidade com controle nos parâmetros;
  • 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);
  • Boxplot com controle no critério de representação dos extremos;
  • 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 reta ajustada e pontos ilustrando alavancagem;
  • Gráfico para ilustrar obtenção de valores iniciais para usar no ajuste de modelos de regressão não linear;
  • Gráfico qqplot alterando o valor de lambda da tranformação boxcox;
  • ✔ Gráfico tridimensional variando o ângulo de observação (Walmes);
  • 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;

Dicas sobre o editor:

  • o atalho alt+- faz o sinal de atribuição <-;

Gráfico tridimensional variando o ângulo de observação

# por Walmes ------------------------------------------------
 
require(manipulate) 
require(lattice)
da <- expand.grid(x=seq(0,10,l=30), z=seq(0,10,l=30))
da$y <- with(da, x+z+0.2*x*z) # gera dados
 
manipulate(
  ## faz o gráfico tridimensional
  wireframe(y~x+z, da,
            screen=list(z=z.angle, x=-60)),
  ## controla o valor do z.angle          
  z.angle=slider(0, 360, 10))
 
#------------------------------------------------------------

Gráfico da densidade normal padrão com destaque para área acumulada até o quantil

# por Walmes ------------------------------------------------
 
require(manipulate)
 
manipulate(
  {
  curve(dnorm(x, 0, 1), -5, 5, ylab="f(x)")
  x <- seq(-5, q, by=0.05)
  fx <- dnorm(x, 0, 1)
  polygon(c(x, rev(x)),
          c(fx, rep(0, length(fx))),
          col="gray90")
  Pr <- round(pnorm(q, 0, 1), digits=3)
  legend("topleft", bty="n",
         legend=substitute(P(X<q)==Pr, list(q=q, Pr=Pr)))
  },
  q=slider(-5, 5, step=0.1, initial=0)
  )
 
#------------------------------------------------------------

Gráfico de densidade controlando o bandwidth e tipo de função kernel

# por Walmes ------------------------------------------------
 
require(manipulate)
 
x <- rgamma(300, 3, 7)
manipulate(
  {
  plot(density(x, bw=bw, kernel=kernel))
  if(show.rug==TRUE) rug(x)
  },
  kernel=picker("gaussian", "epanechnikov", "rectangular",
                "triangular", "biweight","cosine",
                "optcosine"),
  bw=slider(0.01, 0.15, step=0.003, initial=0.05),
  show.rug=checkbox(TRUE, "show rug")
  )
 
#------------------------------------------------------------

Aproximações pela normal

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("t", "normal"), lty=1, col=1:2)
#      substitute(t[nu == a], list(a=df)), lty=1, col=1)
    title(substitute(nu == df, list(df=df)))
  },
    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", c(expression(chi^2), "Normal"), lty=1, col=1:2)
    title(substitute(nu == df, list(df=df)))    
},
  df=slider(1,50)
)


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