Como preparar um gráfico de Bland-Altman?

Anselmo de A. Costa e Silva - 19/04/2020

O popularmente conhecido como gráfico de Bland-Altman (Bland e Altman, 2010) é um diagrama em que são plotados (x,y) os valores que possibilitam a comparação entre dois métodos. No eixo y são plotados os valores da diferença entre os métodos. No eixo x, são plotados os valores das médias de cada sujeito avaliados por dos métodos.

Primeiro você precisa carregar os dados. Se precisar de uma matriz de dados para testar é só clicar aqui.

Digite:

attach(dat) # Esta função carrega o banco de dados do qual serão extraídas as variáveis.

names(dat) # Permite visualizar os nomes das variáveis.

## [1] "dat1" "dat2"

Carregue os pacotes necessários:

library(ggplot2)


library(BlandAltmanLeh)

Certifique-se de que:

Os dados estão organizadados corretamente: Cada coluna representa a medida de um método. Na função abaixo você precisará inserir os dados de cada método para que seja possível a análise.
Você precisa criar um vetor (no R) com a diferença entre os métodos e um vetor com as médias para cada sujeito:

diferenca.dat = c(dat1 - dat2)


media.dat = c((dat1 + dat2)/2)

Em seguida você pode criar o seu Bland-Altman utilizando a função plot() do pacote básico do R.

plot(media.dat, diferenca.dat,pch = 19, cex = 1.5,ylim = c(-6, 10),


     main = "Bland-Altman Plot",


     xlab = "Media",


     ylab = "Diferença entre os métodos",cex.axis = 1, cex.lab = 1.3, cex.main = 1.5)

Para criar as linhas horizontais que representam as médias você deve calcular a média e o desvio padrão do vetor de diferença para então plotar a linha média, e as linhas inferior e superior. Para isto você pode utilizar o comando abline() como na rotina a seguir:

plot(media.dat, diferenca.dat, pch = 19, cex = 1.5,ylim = c(-6, 10), main = "Bland-Altman Plot", xlab = "Media", ylab = "Diferença entre os métodos",cex.axis = 1, cex.lab = 1.3, cex.main = 1.5, abline(h = mean(diferenca.dat), lty = 1, lwd = 3))

O pacote básico do R permite criar imagens com ótima qualidade. No entanto existe uma outra opção para criar gráficos de alta qualidade com certa economia de tempo: o pacote ggplot2 (Wickhan, 2009). Neste pacote você irá adicionar camadas ao seu gráfico, linha por linha.

bland.altman.plot(dat1,dat2,graph.sys = "ggplot2")+ # Cria o gráfico.


  geom_point(colour = "black", size = 5,shape = 19)+ # Cria os pontos no gráfico.


  theme_gray()+ # Altera o tema do gráfico.


  xlab("Mean of Measurements, %")+ # Rótulo do eixo X.


  ylab("Difference, %")+ # rotulo do eixo y # Rótulo do eixo Y.


  ylim(-11, 11)+ # Você talvez precise alterar os limites do eixo Y dependendo do tamanho da variabilidade entre os dados (diferença entre os métodos).


  geom_smooth(method = lm)+ # Cria um modelo linear para analisar se há erro sistemático na relação entre as médias de diferença e dos valores para cada sujeito.


  theme(text = element_text(size=16, face = "bold", colour = "black"), # Altera os elementos do gráfico.


        axis.text.x = element_text(angle=0, hjust=1), 


        axis.text = element_text(size = 14, face = "bold", colour = "black"))+ # elementos de texto.


  theme( axis.line = element_line(colour = "black", size = 2, linetype = "solid"))+


  ggtitle("Bland-Altman Plot") # Inclui um título para o gráfico.


## `geom_smooth()` using formula 'y ~ x'

Referências


Bland, M. J., Altman, D. G. Statistical methods for assessing agreement between two methods of clinical measurement. International Journal of Nursing Studies 47 (2010) 931–936.


Wickham, H. ggplot2: Elegant Graphics for Data Analysis. Springer, 2009. Também disponível em: https://ggplot2-book.org/index.html

P.S. Este post não é escrito por um especialista em estátistica. Logo os termos utilizados não se prendem às terminologias comumente utilizadas em R para facilitar a aqueles que não possuem familiaridade com a linguagem.

MOVANEWS

RECEBA EM SEU E-MAIL PROMOÇÕES, NOVIDADES E CONHECIMENTO PRA SER COMPARTILHADO

  • YouTube ícone social
  • LinkedIn ícone social
  • Instagram ícone social
  • Facebook

COMPARTILHE CONHECIMENTO

educação . movimento . saúde . tecnologia

CONTATO

+55 (19) 98329-0429

Copyright 2021 - MOVA4all - Todos os Direitos Reservados || Ana Francisca Rozin Kleiner || ENDEREÇO ADMINISTRATIVO: Avenida 29, 116 - Rio Claro - SP - CEP: 13501-133 || CNPJ: 37.874.040/0001-72 1
statistics (4).png