Universidade Federal do Paraná
Curso de Estatística
CE 089 - Estatística Computacional II
Prof. Dr. Walmes Marques Zeviani


Trabalho 2 - Avaliação de poder em testes de hipótese

Acadêmico: Machado de Assis, GRR: XXXXXXXX.

Descrição do trabalho

A avaliação de poder será feita considerando testes paramétricos e seus correspondentes não paramétricos onde os objetivos são construir a curva de poder empírica dos testes:

  1. com os pressupostos do teste paramétrico atendidos;
  2. com afastamento dos pressupostos do teste paramétrico;

A avaliação de poder deve considerar 3 ou mais tamanhos de amostra. Por exemplo, na avaliação do teste t contra o teste de Wilcox para a média de uma população pode-se avaliar \( H_{0}:\, \mu=\mu_{0}\) com os tamanhos de amostra 5, 10 e 20 com valores de \( \mu \in \{0,0.1,0.2,\ldots\}\) e \( \mu_{0}=0\).

Para provocar afastamento dos pressupostos pode-se mudar a distribuição da população considerando qualquer outra distribuição que seja simétrica (pois Wilcox requer que seja simétrica) como a uniforme, a triangular, a beta com parâmetros de forma iguais.

Dessa forma, pode-se avaliar em termos de tamanho da amostra e tipo de afastamento de pressuposto o poder dos testes.

A lista dos testes à serem avaliados está abaixo:

  1. Teste para a diferença de locação para duas populações: teste t (t.test) vs teste de Wilcox (wilcox.test).
  2. Teste para a diferença em escala (de variação) de duas populações: teste F (para razão de variâncias, var.test) vs teste de Mood (mood.test).
  3. Teste para a diferença em escala (de variação) de duas populações: teste F (para razão de variâncias, var.test) vs teste de Ansari (ansari.test).
  4. Teste para comparação de locação de k populações: F da análise de variância para um fator (anova) vs teste de Kruskall-Wallis (kruskal.test).
  5. Teste para comparação de locação de k populações na presença de blocos: F da análise de variância para dois fatores (anova) vs teste de Friedman (friedman.test).
  6. Teste para comparação de escala de k populações: teste de Bartlett (bartlett.test) vs teste de Fligner (fligner.test).
  7. Teste para comparação de escala de k populações: teste de Bartlett (bartlett.test) vs teste de Levene (car::leveneTest).
  8. Teste para correlação entre duas populações: teste de correlação de Pearson vs teste de correlação de Spearman (cor.test).
  9. Teste para correlação entre duas populações: teste de correlação de Pearson vs teste de correlação de Kendall (cor.test).
  10. Teste para normalidade de uma população: teste de Shapiro-Wilk (shapiro.test) vs teste de Kolmogorov-Smirnov (ks.test).

Uma revisão dos testes deve ser fornecida de forma a apresentar as expressões para o cálculo da estatística de cada bem como das suposições feitas para aplicação dos mesmos. Para isso, considerar livros de estatística básica e sites como o portal action.

O trabalho deve estar divido em sessões:

  1. Revisão de literatura: com aspectos teóricos da aplicação do teste, como expressão para estatística, suposições, hipótese avaliada. O objetivo deve estar claro o final dessa sessão.
  2. Material e métodos: as definições de como o estudo será conduzido, como tamanhos de amostra e formas consideradas para causar afastamento dos pressupostos além de contér o código referente ao estudo de simulação.
  3. Resultados e discussões: com tabelas e/ou gráficos além de texto descrevendo os resultados encontrados.
  4. Conclusões: aponta as principais conclusões obtidas (tem que estar de acordo com o que foi estabelecido no objetivo).
  5. Referências: livros, sites e demais fontes consideradas no trabalho.

Sorteio dos testes aos acadêmicos

##-----------------------------------------------------------------------------
## O número da linha correspondende a linha com o nome do acadêmico na
## lista de chamada. Os números sorteados são os índices do testes.

set.seed(3210)
r <- c(1:10, sample(1:10, 5))[order(runif(15))]
cbind(Aluno=1:length(r), test=r)
##       Aluno test
##  [1,]     1    9
##  [2,]     2    7
##  [3,]     3    4
##  [4,]     4    6
##  [5,]     5    5
##  [6,]     6    8
##  [7,]     7    3
##  [8,]     8   10
##  [9,]     9    4
## [10,]    10    1
## [11,]    11    6
## [12,]    12    2
## [13,]    13    5
## [14,]    14    1
## [15,]    15    3

Upload dos arquivos

Um zip contendo os arquivos de extensão *.html e *.Rmd, o diretório com as figuras (por default /figure) e o diretório de cache (por default /cache) deve ser hospedado em algum site de hospedagem de arquivos. O link para download deve ser informado na página da disciplina no campo de discussões. Sugere-se usar o datafilehost.com para o qual tem-se instruções disponíveis na wiki leg/datafilehost.

Importante: O nome do arquivo zip deve ser o GRR do aluno. Por exemplo 20129999.zip. O nome para o arquivo *.Rmd deve ser ce089-2014-01-trab02.Rmd. O aluno deve identificar-se pelo GRR ao fornecer o link para download do zip dentro do campo discussões na página wiki leg da disciplina.

Prazo para envio

O prazo limite para envio dos arquivos é 24/09/2014 até às 23h59. Não serão considerados envios fora do prazo nem encaminhados por email.


Teste para locação de uma população

Teste t de Student contra o Teste de Wilcox.

##-----------------------------------------------------------------------------
## Funções que retornam o nível descritivos dos testes com pressupostos
## atendidos.

myttest0 <- function(n, mu){
    x <- rnorm(n, mu, sd=1)
    tt <- t.test(x, mu=0)
    tt$p.value
}

mywilcox0 <- function(n, mu){
    x <- rnorm(n, mu, sd=1)
    tt <- wilcox.test(x, mu=0)
    tt$p.value
}

replicate(10, myttest0(n=10, mu=0))
replicate(10, mywilcox0(n=10, mu=0))
replicate(10, mywilcox0(n=10, mu=5))

##-----------------------------------------------------------------------------
## Curvas de poder empírica com pressupostos atendidos.

## Sequência de valores para mu.
n <- 10       ## Usar 3 valores.
N <- 1000     ## Usar 5000 no estudo definitivo.
pcorte <- 0.1 ## Pode ser 0.05, 0.1, 0.2.
mu.seq <- seq(0, 2.2, by=0.05)

pvalt <- sapply(mu.seq,
                function(mu){
                    r <- replicate(N, myttest0(n=n, mu=mu))
                    sum(r<pcorte)/N
                })

pvalw <- sapply(mu.seq,
                function(mu){
                    r <- replicate(N, mywilcox0(n=n, mu=mu))
                    sum(r<pcorte)/N
                })

xlab <- expression(mu)
ylab <- expression(Pr(rejeitar~H[0]*": "*mu[0]==0))
matplot(mu.seq, cbind(pvalt, pvalw),
        type="l", col=c(1,2), lty=1, xlab=xlab, ylab=ylab)
legend("right", legend=c("Teste t", "Teste de Wilcox"),
       lty=1, col=1:2, bty="n")
abline(h=pcorte, lty=3)
title(sub=sprintf("Tamanho de amostra: %d\t Distribuição: %s\t Sig.: %0.2f",
          n, "Gaussiana", pcorte))

plot of chunk unnamed-chunk-3

##-----------------------------------------------------------------------------
## Curvas de poder empírica com pressupostos não atendidos. X tem
## distribuição uniforme aqui.

## Para que uma v.a. X de distribução uniforme tenha variância 1, tem-se
## que a amplitude (ou suporte) tenha comprimento sqrt(12) pois Var(X) =
## (b-a)^2/12 então para Var(X) = 1 tem-se que b-a = sqrt(12).

myttest1 <- function(n, mu){
    x <- runif(n, mu-sqrt(12)/2, mu+sqrt(12)/2)
    tt <- t.test(x, mu=0)
    tt$p.value
}

mywilcox1 <- function(n, mu){
    x <- runif(n, mu-sqrt(12)/2, mu+sqrt(12)/2)
    tt <- wilcox.test(x, mu=0)
    tt$p.value
}

replicate(10, myttest1(n=10, mu=0))
replicate(10, mywilcox1(n=10, mu=0))
replicate(10, mywilcox1(n=10, mu=5))

##-----------------------------------------------------------------------------

pvalt <- sapply(mu.seq,
                function(mu){
                    r <- replicate(N, myttest1(n=n, mu=mu))
                    sum(r<pcorte)/N
                })

pvalw <- sapply(mu.seq,
                function(mu){
                    r <- replicate(N, mywilcox1(n=n, mu=mu))
                    sum(r<pcorte)/N
                })

matplot(mu.seq, cbind(pvalt, pvalw),
        type="l", col=c(1,2), lty=1, xlab=xlab, ylab=ylab)
legend("right", legend=c("Teste t", "Teste de Wilcox"),
       lty=1, col=1:2, bty="n")
abline(h=pcorte, lty=3)
title(sub=sprintf("Tamanho de amostra: %d\t Distribuição: %s\t Sig.: %0.2f",
          n, "Uniforme", pcorte))

plot of chunk unnamed-chunk-3