Teste brown-forsythe em r: exemplo passo a passo


Uma ANOVA unidirecional é usada para determinar se há ou não uma diferença significativa entre as médias de três ou mais grupos independentes.

Uma das suposições de uma ANOVA unidirecional é que as variâncias das populações das quais as amostras são extraídas são iguais.

Uma das maneiras mais comuns de testar isso é usar um teste de Brown-Forsythe , que é um teste estatístico que usa as seguintes suposições :

  • H 0 : As variâncias entre as populações são iguais.
  • HA : As diferenças entre as populações não são iguais.

Se o valor p do teste estiver abaixo de um certo nível de significância (por exemplo, α = 0,05), então rejeitamos a hipótese nula e concluímos que as variâncias não são iguais entre diferentes populações.

Este tutorial fornece um exemplo passo a passo de como realizar um teste de Brown-Forsythe em R.

Passo 1: Insira os dados

Suponha que gostaríamos de saber se três programas de treino diferentes levam ou não a diferentes níveis de perda de peso.

Para testar isso, recrutamos 90 pessoas e designamos aleatoriamente 30 para usar cada programa. Em seguida, medimos a perda de peso de cada pessoa após um mês.

O seguinte conjunto de dados contém informações sobre a quantidade de peso perdido com cada programa:

 #make this example reproducible
set.seed(0)

#create data frame
data <- data.frame(program = as . factor ( rep (c(" A ", " B ", " C "), each = 30)),
                   weight_loss = c( runif (30, 0, 3),
                                   runif (30, 0, 5),
                                   runif (30, 1, 7)))

#view first six rows of data frame
head(data)

# program weight_loss
#1 A 2.6900916
#2 A 0.7965260
#3 A 1.1163717
#4 A 1.7185601
#5 A 2.7246234
#6 A 0.6050458

Etapa 2: resumir e visualizar os dados

Antes de realizar um teste de Brown-Forsythe, podemos criar box plots para visualizar a variação na perda de peso para cada grupo:

 boxplot(weight_loss ~ program, data = data)

Também podemos calcular a variância da perda de peso em cada grupo:

 #load dplyr package
library (dplyr)

#calculate variance of weight loss by group
data %>%
group_by (program) %>%
  summarize (var=var(weight_loss))

# A tibble: 3 x 2
  program var
     
1 A 0.819
2 B 1.53 
3 C 2.46

Podemos ver que as variâncias entre os grupos diferem, mas para determinar se essas diferenças são estatisticamente significativas , podemos realizar o teste de Brown-Forsythe.

Etapa 3: execute o teste Brown-Forsythe

Para realizar um teste de Brown-Forsythe em R, podemos usar a função bf.test() do pacote onewaytests :

 #load onewaytests package
library (onewaytests)

#perform Brown-Forsythe test
bf.test(weight_loss ~ program, data = data)

  Brown-Forsythe Test (alpha = 0.05) 
-------------------------------------------------- ----------- 
  data: weight_loss and program 

  statistic: 30.83304 
  num df: 2 
  name df: 74.0272 
  p.value: 1.816529e-10 

  Result: Difference is statistically significant. 
-------------------------------------------------- -----------

O valor p do teste acaba sendo inferior a 0,000 e, como o resultado indica, as diferenças nas variâncias entre os três grupos são estatisticamente significativas.

Próximos passos

Se você não conseguir rejeitar a hipótese nula do teste de Brown-Forsythe, poderá realizar uma ANOVA unidirecional nos dados.

No entanto, se você rejeitar a hipótese nula, isso significa que a suposição de igualdade de variâncias foi violada. Neste caso, você tem duas opções:

1. Faça uma ANOVA unidirecional de qualquer maneira.

Acontece que uma ANOVA unidirecional é realmente robusta para variâncias desiguais, desde que a maior variância não seja maior que 4 vezes a menor variância.

Na etapa 2 do exemplo acima, descobrimos que a menor variância foi 0,819 e a maior variância foi 2,46. Portanto, a razão entre a maior e a menor variância é 2,46 / 0,819 = 3,003 .

Como esse valor é menor que 4, poderíamos simplesmente fazer a ANOVA unidirecional.

2. Faça um teste de Kruskal-Wallis

Se a razão entre a maior variância e a menor variância for maior que 4, pode-se optar por realizar um teste de Kruskal-Wallis . Isto é considerado o equivalente não paramétrico da ANOVA unidirecional.

Você pode encontrar um exemplo passo a passo de um teste de Kruskal-Wallis em R aqui .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *