ESTATÍSTICA NÃO PARAMÉTRICA

PRÁTICA 8: COEFICIENTES DE CONCORDÂNCIA

\[\\[0.05in]\]

1 PACOTES NECESSÁRIOS

Para esta oitava aula prática de Estatística Não Paramétrica, precisaremos dos seguintes pacotes:

require(irr) # Faz os coeficientes kappa de cohen, kappa de fleis e w de kendal

2 COEFICIENTE KAPPA DE COHEN

Para calcular o coeficiente kappa de cohen no R, utilizaremos a função kappa2 do pacote irr. A função kappa2 precisa dos seguintes argumentos:

  • ratings = data frame com os dados

A função kappa2 retorna:

  • subjects = quantos elementos foram avaliados.
  • Raters = quantos avaliadores.
  • kappa = o valor do coeficiente.
  • z = estatística do teste bilateral.
  • p-value = p-valor do teste bilateral.

2.1 EXEMPLO: DIAGNÓSTICO MÉDICO

Imagine que em um hospital, dois médicos (Avaliador 1 e Avaliador 2) estão avaliando se um paciente tem ou não uma condição médica específica, como uma doença rara. Eles têm acesso aos mesmos exames e relatórios de diagnóstico, mas fazem suas avaliações de forma independente. Eles podem classificar cada paciente de uma das seguintes maneiras:

  • Positivo: O paciente tem a doença.
  • Negativo: O paciente não tem a doença.

O objetivo aqui é medir o grau de concordância entre os dois médicos quanto à classificação dos pacientes, utilizando o coeficiente Kappa de Cohen. Esse tipo de análise é comum em diagnósticos médicos, onde a precisão na concordância entre avaliadores (como médicos ou radiologistas) é crucial para garantir a qualidade e a confiabilidade do diagnóstico.

Os dados observados foram:

Paciente Avaliador 1 Avaliador 2
1 Positivo Positivo
2 Negativo Positivo
3 Positivo Negativo
4 Negativo Negativo
5 Positivo Positivo
6 Negativo Negativo
7 Positivo Positivo
8 Negativo Positivo
9 Positivo Positivo
10 Negativo Negativo
11 Positivo Negativo
12 Negativo Negativo
13 Positivo Positivo
14 Negativo Negativo
15 Positivo Positivo
16 Negativo Negativo
17 Positivo Negativo
18 Negativo Positivo
19 Positivo Positivo
20 Negativo Negativo

No R, os dados observados serão armazenados com os seguintes comandos:

dados <- data.frame(
  Avaliador1 = c('Positivo', 'Negativo', 'Positivo', 'Negativo', 'Positivo', 'Negativo', 
                 'Positivo', 'Negativo', 'Positivo', 'Negativo', 'Positivo', 'Negativo',
                 'Positivo', 'Negativo', 'Positivo', 'Negativo', 'Positivo', 'Negativo', 
                 'Positivo', 'Negativo'),
  Avaliador2 = c('Positivo', 'Positivo', 'Negativo', 'Negativo', 'Positivo', 'Negativo', 
                 'Positivo', 'Positivo', 'Positivo', 'Negativo', 'Negativo', 'Negativo', 
                 'Positivo', 'Negativo', 'Positivo', 'Negativo', 'Negativo', 'Positivo', 
                 'Positivo', 'Negativo')
)

Para investigar o valor do coeficiente Kappa de Cohen e, consequentemente, o seu teste de hipótese, tem-se o seguinte comando:

kappa_cohen <- kappa2(dados)

Observou-se um kappa de 0,4, indicando concordância fraca. Logo, para um valor-p de 0,07, não rejeitamos a hipótese nula ao nível de 5% de significância. Ou seja, há evidências de que as classificações dos médicos são devidas ao acaso. Em outras palavras, os avaliadores estão classificando os casos de maneira quase aleatória, ou seja, a concordância observada pode ser explicada pelo acaso e não por uma real semelhança nas avaliações.

2.2 EXERCÍCIO: REDAÇÃO DE UM CONCURSO

Dois professores, Jorge e Marcelo, estão avaliando a redação de 15 estudantes em um concurso de escrita. Cada redação é classificada em três categorias de qualidade: “Excelente”, “Bom”, ou “Regular”. O objetivo é medir o nível de concordância entre os dois professores em suas avaliações e verificar se a concordância observada vai além do esperado ao acaso, utilizando o coeficiente Kappa de Cohen. Os dados observados foram:

Estudante Jorge Marcelo
1 Excelente Excelente
2 Bom Regular
3 Regular Regular
4 Bom Bom
5 Excelente Bom
6 Regular Regular
7 Excelente Excelente
8 Bom Excelente
9 Regular Regular
10 Excelente Excelente
11 Excelente Bom
12 Bom Bom
13 Regular Regular
14 Regular Bom
15 Bom Bom

No R, eles são armazenados com os seguintes comandos:

dados <- data.frame(
  Jorge = c("Excelente", "Bom", "Regular", "Bom", "Excelente",
           "Regular", "Excelente", "Bom", "Regular", "Excelente",
           "Excelente", "Bom", "Regular", "Regular", "Bom"),
  Marcelo = c("Excelente", "Regular", "Regular", "Bom", "Bom",
            "Regular", "Excelente", "Excelente", "Regular", "Excelente",
            "Bom", "Bom", "Regular", "Bom", "Bom")
)

Use o coeficiente Kappa de Cohen para investigar a concordância entre os dois professores.

3 COEFICIENTE KAPPA DE FLEISS

Para calcular o coeficiente kappa de fleiss no R, utilizaremos a função kappam.fleiss do pacote irr. A função kappam.fleiss precisa dos seguintes argumentos:

  • ratings = data frame com os dados

A função kappam.fleiss retorna:

  • subjects = quantos elementos foram avaliados.
  • Raters = quantos avaliadores.
  • kappa = o valor do coeficiente.
  • z = estatística do teste bilateral.
  • p-value = p-valor do teste bilateral.

3.1 EXEMPLO: CONTROLE DE QUALIDADE

Suponha que um grupo de 5 avaliadores tenha sido encarregado de avaliar a qualidade de 30 produtos, atribuindo uma classificação de qualidade em uma das três categorias: Aprovado, Rejeitado ou Indefinido. O objetivo é medir a concordância entre os avaliadores utilizando o índice de Kappa de Fleiss.

Os dados observados foram:

Produto Avaliador 1 Avaliador 2 Avaliador 3 Avaliador 4 Avaliador 5
1 Aprovado Rejeitado Aprovado Aprovado Rejeitado
2 Rejeitado Rejeitado Aprovado Indefinido Aprovado
3 Indefinido Aprovado Aprovado Indefinido Rejeitado
4 Aprovado Aprovado Aprovado Aprovado Aprovado
5 Rejeitado Indefinido Rejeitado Rejeitado Indefinido
6 Indefinido Indefinido Indefinido Rejeitado Indefinido
7 Aprovado Aprovado Rejeitado Aprovado Indefinido
8 Rejeitado Rejeitado Indefinido Indefinido Rejeitado
9 Aprovado Aprovado Aprovado Indefinido Aprovado
10 Indefinido Rejeitado Indefinido Indefinido Indefinido
11 Aprovado Aprovado Aprovado Aprovado Aprovado
12 Rejeitado Indefinido Rejeitado Aprovado Rejeitado
13 Aprovado Aprovado Aprovado Aprovado Aprovado
14 Rejeitado Rejeitado Indefinido Rejeitado Rejeitado
15 Aprovado Aprovado Aprovado Aprovado Aprovado

No R, os dados observados serão armazenados com os seguintes comandos:

dados <- data.frame(
  Avaliador1 = c("Aprovado", "Rejeitado", "Indefinido", "Aprovado", "Rejeitado", "Indefinido", 
                 "Aprovado", "Rejeitado", "Aprovado", "Indefinido", "Aprovado", "Rejeitado", 
                 "Aprovado", "Rejeitado", "Aprovado"),
  Avaliador2 = c("Rejeitado", "Rejeitado", "Aprovado", "Aprovado", "Indefinido", "Indefinido", 
                 "Aprovado", "Rejeitado", "Aprovado", "Rejeitado", "Aprovado", "Indefinido", 
                 "Aprovado", "Rejeitado", "Aprovado"),
  Avaliador3 = c("Aprovado", "Aprovado", "Aprovado", "Aprovado", "Rejeitado", "Indefinido", 
                 "Rejeitado", "Indefinido", "Aprovado", "Indefinido", "Aprovado", "Rejeitado", 
                 "Aprovado", "Aprovado", "Rejeitado"),
  Avaliador4 = c("Aprovado", "Indefinido", "Indefinido", "Aprovado", "Rejeitado", "Rejeitado", 
                 "Rejeitado", "Indefinido", "Aprovado", "Indefinido", "Aprovado", "Indefinido", 
                 "Aprovado", "Indefinido", "Indefinido"),
  Avaliador5 = c("Rejeitado", "Aprovado", "Rejeitado", "Aprovado", "Indefinido", "Indefinido", 
                 "Indefinido", "Rejeitado", "Aprovado", "Indefinido", "Aprovado", "Rejeitado", 
                 "Aprovado", "Indefinido", "Aprovado")
)

Para investigar o valor do coeficiente Kappa de Fleiss e, consequentemente, o seu teste de hipótese, tem-se o seguinte comando:

kappa_fleiss <- kappam.fleiss(dados)
kappa_fleiss
##  Fleiss' Kappa for m Raters
## 
##  Subjects = 15 
##    Raters = 5 
##     Kappa = 0.271 
## 
##         z = 4.66 
##   p-value = 3.23e-06

Logo, o kappa estimado foi de 0,271 o que apresenta uma concordância leve e foi significativa, ao nível de 5%.

3.2 EXERCÍCIO: FILMES

Considere a situação em que 5 avaliadores classificaram 10 filmes em três categorias: “Bom”, “Médio” e “Ruim”. O objetivo é medir o grau de concordância entre esses avaliadores, considerando que cada avaliador pode atribuir uma das três classificações a cada filme. Utilizaremos o coeficiente Kappa de Fleiss para este caso. Os dados são:

Filme Avaliador 1 Avaliador 2 Avaliador 3 Avaliador 4 Avaliador 5
Filme 1 Bom Bom Médio Ruim Bom
Filme 2 Médio Bom Bom Médio Ruim
Filme 3 Ruim Ruim Ruim Médio Bom
Filme 4 Bom Bom Bom Bom Médio
Filme 5 Médio Médio Bom Bom Ruim
Filme 6 Bom Ruim Médio Bom Bom
Filme 7 Médio Médio Médio Ruim Bom
Filme 8 Bom Bom Bom Bom Bom
Filme 9 Ruim Ruim Ruim Médio Ruim
Filme 10 Bom Médio Médio Bom Médio

No R,

dados <- data.frame(
  Avaliador1 = c("Bom", "Médio", "Ruim", "Bom", "Médio", "Bom", "Médio", "Bom", "Ruim", "Bom"),
  Avaliador2 = c("Bom", "Bom", "Ruim", "Bom", "Médio", "Ruim", "Médio", "Bom", "Ruim", "Médio"),
  Avaliador3 = c("Médio", "Bom", "Ruim", "Bom", "Bom", "Médio", "Médio", "Bom", "Ruim", "Médio"),
  Avaliador4 = c("Ruim", "Médio", "Médio", "Bom", "Bom", "Bom", "Ruim", "Bom", "Médio", "Bom"),
  Avaliador5 = c("Bom", "Ruim", "Bom", "Médio", "Ruim", "Bom", "Bom", "Bom", "Ruim", "Médio")
)

4 COEFICIENTE W DE KENDALL

Para calcular o coeficiente W de kendall no R, utilizaremos a função kendall do pacote irr. A função kendall precisa dos seguintes argumentos:

  • ratings = data frame com os dados

A função kendall retorna:

  • subjects = quantos elementos foram avaliados.
  • Raters = quantos avaliadores.
  • W = o valor do coeficiente.
  • chisq(df) = estatística do teste e graus de liberdade.
  • p-value = p-valor do teste.

4.1 EXEMPLO: DEGUSTAÇÃO DE CAFÉ

Suponha que um grupo de 5 avaliadores tenha sido encarregado de avaliar a qualidade de 30 produtos, atribuindo uma classificação de qualidade em uma das três categorias: Aprovado, Rejeitado ou Indefinido. O objetivo é medir a concordância entre os avaliadores utilizando o índice de Kappa de Fleiss.

Os dados observados foram:

Degustador 1 Degustador 2 Degustador 3 Degustador 4
Café A 1 2 1 3
Café B 2 1 3 2
Café C 3 3 2 1
Café D 4 5 4 4
Café E 5 4 5 5

No R, os dados observados serão armazenados com os seguintes comandos:

dados <- data.frame(
  Degustador1 = c(1, 2, 3, 4, 5),
  Degustador2 = c(2, 1, 3, 5, 4),
  Degustador3 = c(1, 3, 2, 4, 5),
  Degustador4 = c(3, 2, 1, 4, 5)
)

Para investigar o valor do coeficiente W de Kendall e, consequentemente, o seu teste de hipótese, tem-se o seguinte comando:

kendall <- kendall(dados)

kendall
##  Kendall's coefficient of concordance W
## 
##  Subjects = 5 
##    Raters = 4 
##         W = 0.775 
## 
##  Chisq(4) = 12.4 
##   p-value = 0.0146

Observamos um coeficiente W de Kendall alto de 0,77, indicando grande concordância. Essa concordância foi significativa, com um valor-p de 0,0146.

4.2 EXERCÍCIO: CANDIDATOS A UMA BOLSA DE ESTUDOS

Quatro membros de uma comissão avaliadora (A, B, C e D) classificaram sete candidatos (C1, C2, C3, C4, C5, C6, C7) com base em critérios como desempenho acadêmico, projetos apresentados e potencial futuro. Cada avaliador atribuiu uma nota de 1 (melhor candidato) a 7 (pior candidato). O objetivo é calcular o W de Kendall para avaliar o grau de concordância entre os membros da comissão. Os dados observados foram:

Candidato Avaliador A Avaliador B Avaliador C Avaliador D
C1 1 2 3 2
C2 3 1 2 3
C3 2 3 1 1
C4 7 7 6 7
C5 5 4 4 5
C6 4 5 5 4
C7 6 6 7 6

No R:

dados <- data.frame(
  Avaliador_A = c(1, 3, 2, 7, 5, 4, 6),
  Avaliador_B = c(2, 1, 3, 7, 4, 5, 6),
  Avaliador_C = c(3, 2, 1, 6, 4, 5, 7),
  Avaliador_D = c(2, 3, 1, 7, 5, 4, 6)
)