Introdução

Este mini projeto tem o objetivo de comparar médias utilizando a estatística de Wilcoxon.

O teste de postos com sinais de Wilcoxon é um teste nao-paramétrico que usa os postos de dados amostrais compostos de pares combinados. É usado pra testar diferenças nas distribuições populacionais, de modo que as hipóteses nula e alternativa são:

\(H_0\): \(\mu_1 = \mu_2\) as duas amostras provém de populações com a mesma distribuição.

\(H_1\): \(\mu_1 \neq \mu_2\) as duas amostras provém de populações com distribuições diferentes.

A finalidade é testar se \(H_0\): \(\mu_1 = \mu_2\) versus \(H_1\): \(\mu_1 \neq \mu_2\). Utilizou-se simulação Monte carlo para amostras de tamanho \(n = 10, 30, 60, 90, 120\).

## Loading required package: lattice
## 
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
## 
##     Orange
## -- Attaching packages -------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.0.0     v purrr   0.2.5
## v tibble  1.4.2     v dplyr   0.7.6
## v tidyr   0.8.1     v stringr 1.3.1
## v readr   1.1.1     v forcats 0.3.0
## -- Conflicts ----------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

A priori, considera-se a seguinte ordem dos testes:

  1. Amostras independentes com mesma variância e sem dados faltantes;
  2. Amostras independentes com mesma variância e com dados faltantes;
  3. Amostras independentes com variância diferente e sem dados faltantes;
  4. Amostras independentes com variância diferente e sem dados faltantes.

Logo após esta primeira análise, a correlação será alterada e os testes, repetidos.

Calculando o poder do teste

  1. Amostras independentes com mesma variância e sem dados faltantes.
teste1 <- rbind.data.frame(calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 60,n2 = 60,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 90,n2 = 90,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 120,n2 = 120,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = FALSE)) 

teste1 %>% make_graph()

Observa-se que para amostras de tamanho superior a n = 50, o teste é significativo.

  1. Imputando os dados: Amostras independentes com mesma variância e com dados faltantes.
teste2 <- rbind.data.frame(calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 60,n2 = 60,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 90,n2 = 90,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 120,n2 = 120,N = 1000,26,27,1,1,0.05,
                            pNA = NA,imput = TRUE)) 


teste2 %>% make_graph()

Nota-se que praticamente não houve mudança se compararmos com o gráfico anterior. A imputação dos dados não gerou impacto significativo.

  1. Amostras independentes com variância diferente e sem dados faltantes.
teste3 <- rbind.data.frame(calc_poder(n1 = 5,n2 = 5,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 20,n2 = 20,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 40,n2 = 40,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = FALSE)) 
teste3 %>% make_graph()

É possível ver que para amostras de tamanho superior ou igual a n = 60, o poder atinge o seu nível máximo.

Imputando os dados: Amostras independentes com variância diferente e com dados faltantes.

teste4 <- rbind.data.frame(calc_poder(n1 = 5,n2 = 5,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 20,n2 = 20,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 40,n2 = 40,N = 1000,26,27,1,0.5,0.05,
                            pNA = NA,imput = TRUE))  

teste4 %>% make_graph()

Neste caso a imputação dos dados também não impactou, logo, não houve mudança se compararmos com o gráfico anterior.

Calculando o poder do teste: Alterando a correlação.

Amostras independentes com mesma variância e sem dados faltantes.

teste1 <- rbind.data.frame(calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 60,n2 = 60,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 90,n2 = 90,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 120,n2 = 120,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = FALSE)) 

teste1 %>% make_graph()

A partir da amostra de tamanho n = 40, o poder do teste se aproxíma do seu nível máximo. Contudo, é na amostra de tamanho n = 50 que o mesmo atinge seu nível máximo.

Imputando os dados: Amostras independentes com mesma variância e com dados faltantes.

teste2 <- rbind.data.frame(calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 60,n2 = 60,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 90,n2 = 90,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 120,n2 = 120,N = 1000,26,27,1,1,0.95,
                            pNA = NA,imput = TRUE)) 


teste2 %>% make_graph()

O poder do teste atinge o seu nível máximo em amostras com tamanho superior a n = 50. Desta forma, nota-se que a imputação dos dados não gerou impacto.

Amostras independentes com variância diferente e sem dados faltantes.

teste3 <- rbind.data.frame(calc_poder(n1 = 5,n2 = 5,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 20,n2 = 20,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = FALSE),
                 calc_poder(n1 = 40,n2 = 40,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = FALSE)) 
teste3 %>% make_graph()

Observa-se que o teste é poderoso para amostras de tamanho igual ou superior a n = 40.

Imputando os dados: Amostras independentes com variância diferente e com dados faltantes.

teste4 <- rbind.data.frame(calc_poder(n1 = 5,n2 = 5,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 10,n2 = 10,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 20,n2 = 20,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 30,n2 = 30,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = TRUE),
                 calc_poder(n1 = 40,n2 = 40,N = 1000,26,27,1,0.5,0.95,
                            pNA = NA,imput = TRUE))  

teste4 %>% make_graph()

Mesmo com a imputação dos dados, o teste ainda se mostrou poderoso para amostras de tamanho igual ou superior a n = 40.

Através do teste acima, verifica-se que:

  1. Quando a correlação é baixa:

Amostras independentes com mesma variância, com e sem dados faltantes precisam de amostras de tamanho superior aos das amostras independentes com variância diferente, com e sem dados faltantes para que o teste seja significativo e atinja seu nível máximo.

  1. Quando a correlação é alta:

O teste é poderoso para todos os tamanhos amostrais citados, mas atinge seu nível máximo em amostras de tamanho superior ou igual a n = 40.