Como realizar o teste de friedman em r


O teste de Friedman é uma alternativa não paramétrica à ANOVA de medidas repetidas. É utilizado para determinar se existe ou não diferença estatisticamente significativa entre as médias de três ou mais grupos em que os mesmos sujeitos aparecem em cada grupo.

Este tutorial explica como realizar o teste de Friedman em R.

Exemplo: o teste de Friedman em R

Para realizar o teste de Friedman em R, podemos usar a função friedman.test() , que utiliza a seguinte sintaxe:

friedman.test (y, grupos, blocos)

Ouro:

  • y: um vetor de valores de resposta.
  • grupos: um vetor de valores que indica o “grupo” ao qual pertence uma observação.
  • blocos: um vetor de valores indicando a variável “bloqueio”.

Esta função produz uma estatística de teste qui-quadrado e um valor p correspondente. Se o valor p estiver abaixo de um certo nível de significância (as escolhas comuns são 0,10, 0,05 e 0,01), então há evidências suficientes de que as médias entre cada um dos grupos não são iguais.

Para ilustrar como usar esse recurso, criaremos um conjunto de dados que mostra o tempo de reação de cinco pacientes com quatro medicamentos diferentes. Como cada paciente é medido com cada um dos quatro medicamentos, usaremos o teste de Friedman para determinar se o tempo médio de reação difere entre os medicamentos.

Primeiro, criaremos o conjunto de dados:

 #create data
data <- data.frame(person = rep(1:5, each=4),
                   drug = rep(c(1, 2, 3, 4), times=5),
                   score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20,
                             18, 30, 38, 34, 20, 44, 26, 28, 14, 30))

#view data
data

   person drug score
1 1 1 30
2 1 2 28
3 1 3 16
4 1 4 34
5 2 1 14
6 2 2 18
7 2 3 10
8 2 4 22
9 3 1 24
10 3 2 20
11 3 3 18
12 3 4 30
13 4 1 38
14 4 2 34
15 4 3 20
16 4 4 44
17 5 1 26
18 5 2 28
19 5 3 14
20 5 4 30

A seguir, realizaremos o teste de Friedman utilizando a pontuação como variável resposta, o medicamento como variável de agrupamento e a pessoa como variável de bloqueio:

 #perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)

	Friedman rank sum test

data: data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357

A estatística do teste qui-quadrado é 13,56 e o valor p correspondente é 0,00357 . Como este valor p é inferior a 0,05, podemos rejeitar a hipótese nula de que o tempo médio de resposta é o mesmo para todos os quatro medicamentos. Temos evidências suficientes para concluir que o tipo de medicação utilizada resulta em diferenças estatisticamente significativas no tempo de resposta.

Embora um teste de Friedman nos diga se existem diferenças nos tempos médios de resposta entre os medicamentos, ele não nos diz especificamente quais medicamentos têm tempos médios de resposta diferentes. Para entender isso, precisamos realizar testes post-hoc.

Para um teste de Friedman, o teste post hoc apropriado é o teste de soma de postos de Wilcoxon pareado com uma correção de Bonferroni, que pode ser implementado usando a seguinte sintaxe:

pairwise.wilcox.test(dados$pontuação, dados$droga, p.adj = “bonf”)

Ouro:

  • x: vetor de resposta
  • g: vetor de agrupamento
  • p.adj: método de ajuste do valor p; as opções incluem holm, hochberg, hommel, bonferroni, BH, BY, fdr e nenhuma

Aqui está a sintaxe que usaremos em nosso exemplo:

 #perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
	Pairwise comparisons using Wilcoxon rank sum test 

data: data$score and data$drug 

  1 2 3    
2 1,000 - -    
3 0.449 0.210 -    
4 1,000 1,000 0.072

P value adjustment method: bonferroni 

Isso produz uma matriz que mostra o valor p para cada teste de soma de postos de Wilcoxon pareado. Podemos observar que os únicos grupos de medicamentos que apresentam diferença estatisticamente significativa de 0,10 são os grupos 3 e 4 ( p = 0,072 ).

Add a Comment

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