1 of 62

Ferramentas Computacionais para Análise de Dados

Prof. Dr. Rafael Plana Simões

1

2 of 62

Temas

1) Instalando o Rcmdr;

2) Conceitos prévios;

3) Estudos de casos utilizando distribuição normal e densidade de probabilidade;

4) Testes paramétricos e não paramétricos para validação de hipóteses;

5) Análises de correlação entre variáveis;

6) Uso de curvas ROC para avaliar desempenho de testes diagnósticos;

7) Análise de correspondência múltipla.

8) ANOVA

9) Aprendizado de Máquina para análise de dados

3 of 62

Download do software R

  • https://cran.r-project.org/bin/windows/base/
  • Deve-se instalar a versão correta: 32 ou 64 bits
    • Para identificar a versão do Windows: digitar “Sistema” no localizador ou acessar as informações do sistema via Painel de Controle.
  • Versões prévias do R:

3

4 of 62

O arquivo e suas extensões

  • Todo arquivo tem (ou deveria ter) o que é chamado de extensão. A extensão indica o tipo de arquivo.
    • arquivo.extensão.
  • projeto.docx (arquivo do Word);
  • projeto.pdf (arquivo do PDF);
  • dados.txt (arquivo de texto);
  • dados.xlsx (arquivo do Excel);
  • dados.csv (arquivo multiplataforma).

4

5 of 62

Para fazer com que o Windows mostre a extensão dos arquivos

  • Windows 8.x e 10
  • No Windows 8.x, escolha Área de trabalho. No Windows 10, clique no botão Iniciar.
  • Abra o Painel de controle.
  • Escolha Opções de pasta em Aparência e personalização.
  • Clique no ícone Opções à direita da faixa de opções.
  • Na caixa de diálogo Opções de pasta, selecione a guia Exibir.
  • Selecione Mostrar arquivos, pastas e unidades ocultas.
  • Desmarque Ocultar extensões para tipos de arquivo conhecidos e clique em OK.
  • Windows 7
  • Selecione Iniciar > Painel de controle.
  • Na caixa de diálogo Painel de controle, clique duas vezes em Aparência e personalização.
  • Na caixa de diálogo Aparência e personalização, clique duas vezes em Opções de pasta, ou clique em Exibir arquivos e pastas ocultos em Opções de pasta.
  • Na caixa de diálogo Opções de pasta, assegure que Exibir arquivos e pastas ocultos esteja selecionado.
  • Clique em OK.

5

6 of 62

Como deve ser um arquivo csv convencional

6

7 of 62

Como é um arquivo csv quando o sistema operacional está em português

7

8 of 62

Exercício

  • Utilizar o arquivo Exemplo 01.xlsx para mostrar conversão para arquivo CSV
  • Importar CSV para o R
    • data <- read.csv("C:\\Users\\rafae\\Desktop\\curso_R\\Exemplo 01.csv", header = TRUE)
  • Construindo um histograma a partir dos dados importados
    • hist(data$ altura..cm.)
  • Incrementando o gráfico: https://www.tutorialspoint.com/r/r_histograms.htm
    • hist(data$ altura..cm., xlab = "Altura (cm)", ylab = "Número de indivíduos")
    • hist(data$ altura..cm., main = "Altura dos Indivíduos", xlab = "Altura (cm)", ylab = "Número de indivíduos")
    • hist(data$ altura..cm., main = "Altura dos Indivíduos", xlab = "Altura (cm)", ylab = "Número de indivíduos", col = "lightblue1")
  • Salvando a figura como um arquivo

8

9 of 62

Preparando o arquivo de entrada

  • Abrir o arquivo de Excel com os dados.
  • Clicar em: Arquivo 🡺 Salvar Como
  • Digitar um nome para o arquivo (simples) e selecionar o tipo (CSV – Separado por vírgulas).
  • Um novo arquivo com extensão CSV será criado. Clique sobre o arquivo e escolha a: Abrir com 🡺 Bloco de Notas.
  • Veja que os dados utilizam a vírgula como separador decimal. Precisamos substituir todas as vírgulas por pontos. Para isso, selecione a opção: Editar 🡺 Substituir.
  • Localizar:,
  • Substituir por:.
  • Agora é preciso substituir os caracteres ; por , ,pois a grande parte dos programas estatísticos entendem a vírgula como separador de colunas: Editar 🡺 Substituir.
  • Localizar:,
  • Substituir por:.

10 of 62

Mudando o diretório de trabalho

  • É possível mudar o diretório de trabalho utilizando o menu.
  • Alterar o diretório de trabalho facilita a importação de dados.

10

11 of 62

Pacotes do R

  • O R possui um repositório gigantesco.
  • Para usar uma biblioteca é necessário inicialmente instalar uma biblioteca no computador:
    • install.packages(“nome_do_pacote")
    • install.packages("ggplot2")
  • Para utilizar uma função da biblioteca, é necessário carregar o pacote:
    • library("ggplot2")
  • É possível ainda instalar e carregar os pacotes por menu:
    • Instalar e carregar o pacote Rcmdr

11

12 of 62

Rcmdr

  • Exemplo de como importar dados pelo Rcmdr.
  • Discutir sobre opções de importação.
  • Plotar histograma utilizando os menus.

12

13 of 62

Gráfico de uma distribuição normal

  • A área em azul escuro está a menos de um desvio padrão (σ) da média. Em uma distribuição normal, isto representa cerca de 68% do conjunto, enquanto dois desvios padrões desde a média (azul médio e escuro) representam cerca de 95%, e três desvios padrões (azul claro, médio e escuro) cobrem cerca de 99.7%. Este fato é conhecido como regra 68-95-99.7, ou a regra empírica, ou a regra dos 3-sigmas.

14 of 62

Exemplo 1 – Distribuição Normal

  • Pessoas com déficit de um hormônio X apresentam problemas de crescimento. A tabela no Excel apresenta uma lista com a altura de 41 pessoas com déficit do hormônio X. Faça um histograma desses dados.

15 of 62

Exemplo 2 – Distribuição Normal

  • Fazer histograma da altura e do peso de uma amostra contendo dados de 3000 pessoas utilizando o mesmo procedimento anterior.
  • Você acha que esses dados se ajustam a uma distribuição normal?

16 of 62

Teste de Normalidade

  • O histograma apresenta uma representação gráfica importe para a avalição da distribuição dos dados, mas não responde à questão:
    • A distribuição é normal?
  • Para isso, podemos utilizar um teste de normalidade.

17 of 62

Procedimentos no R

  • Carregar o R Commander: Pacotes 🡺 Carregar Pacote 🡺 Rcmdr
  • Importar o arquivo de dados: Dados 🡺 Importar arquivo de Dados 🡺 Do arquivo Excel. Digitar um nome para o conjunto de dados 🡺 Ok. Selecionar o arquivo e a planilha.
  • Clicar em: Estatística 🡺 Resumo 🡺 Teste de Normalidade 🡺 Shapiro-Wilk. (Como pode ser visto, existem vários testes, mas o de Shapiro-Wilk é o mais utilizado).
  • Se p-value <0,05, deve-se rejeitar a hipótese de que a distribuição é normal.
  • Obs.: É possível fazer o histograma no R. Vamos ver como fazer isso...

18 of 62

Boxplot

18

19 of 62

Boxplot

19

20 of 62

Boxplot

20

21 of 62

Boxplot no Rcmdr – Exemplo 3

  • No menu do Rcmdr é possível fazer boxplot de apenas uma variável por gráfico

21

22 of 62

Plotando múltiplos boxplot no R

  • Importar os dados Exemplo 3 chamando o conjunto de dados de Dataset;
  • No Rcmdr, digitar o comando:
    • boxplot(Dataset)
  • Opções avançadas:
    • boxplot(Dataset,ylab="Altura(cm)",xlab="População")
    • boxplot(Dataset,ylab="Altura(cm)",xlab="População",col = c("red","palevioletred1","royalblue2"))

22

23 of 62

Teste de comparação entre médias

  • Um olhar sobre a distribuição dos dados

Distribuição dos dados é normal?

Teste Paramétrico

Sim

Teste não Paramétrico

Não

24 of 62

Aplicações

  • Os testes apresentados podem ser aplicados nas seguintes situações:
    • Comparação entre duas médias para situações distintas;
    • Comparação entre uma média e um valor fixo;
    • Comparação entre amostras pareadas.

25 of 62

Teste T e Teste Z

  • Ambos os teste são utilizados para validação de hipóteses.
  • As hipóteses estão correlacionadas a variáveis numéricas.
  • Para um número amostral pequeno (n<30): Teste T.
  • Para um número amostral grande (n>=30): Teste Z ou Teste T.
  • Estimação de parâmetros com teste estatístico de hipóteses e com intervalos de confiança são métodos fundamentais usados no estágio de análise dos dados de um experimento comparativo.

26 of 62

Teste de hipótese: Inferência estatística

  • H0 ou hipótese nula: não existe diferença estatística entre as médias das variáveis de interesse. (Padrão: p > 0,05)
  • H1 ou hipótese alternativa: existe diferença entre as médias das variáveis de interesse. (Padrão: p < 0,05)
  • Variância amostral: é uma medida de dispersão ou variabilidade dos dados.

27 of 62

Decisão

  • É comum que sejam usados os "pontos de corte" para p-valor 0,1%, 0,5%, 1%, 2% ou 5%, fazendo com que os níveis de confiança sejam, respectivamente, 99,9%, 99,5%, 99%, 98% ou 95%.

28 of 62

Exemplo 4 – Teste T para comparação entre uma média e um valor fixo

  • A carga viral média dos pacientes em tratamento com o medicamento Boceprevir precisa ser menor que 20 kUI/ml após 48 semanas para que se possa afirmar que o medicamento está fazendo efeito. A determinação da carga viral de 10 pacientes em tratamento com o medicamento são as seguintes: 15,6 kUI/ml, 16,2 kUI/ml, 22,5 kUI/ml, 20,5 kUI/ml, 16,4 kUI/ml, 19,4 kUI/ml, 16,6 kUI/ml, 17,9 kUI/ml, 12,7 kUI/ml e 13,9 kUI/ml. Os dados apresentados são evidências suficientes para concluir que o tratamento está fazendo efeito?
  • H0 = 20
  • H1 < 20

29 of 62

Procedimentos no R

  • Importar o arquivo de dados no R
  • Acesse a sequência de menus: Estatística 🡺 Médias 🡺 Teste T para uma amostra.
  • Selecionar a variável CV.
  • Escolher a opção: Média da população < mu.
  • Digitar na opção Hipótese nula – mu = 20.
  • Clicar em OK.

30 of 62

Exemplo 5 – Teste T para comparação entre duas médias

  • Um médico elaborou uma hipótese de que pacientes que apresentam câncer de mama possuem índice de massa corporal maior que pacientes não apresentam esse tipo de doença.
  • Ver planilha Excel – Exemplo 5 – Teste T

31 of 62

Exemplo 6 – Teste de Wilcoxon

  • O arquivo “Exemplo 4” contem o valor de CD4 para indivíduos classificados em dois grupos distintos:
    • G1 – Monoinfectados (HIV)
    • G2 – Coinfectados (HIV e HCV)
  • Vamos analisar se o valor de CD4 pode ser considerado estatisticamente diferente entre esses dois grupos.

32 of 62

Testes de Correlação

  • Os coeficientes de correlação são utilizados para verificar se duas ou mais variáveis (ou conjunto de dados) estão correlacionadas.
  • Essa correlação pode ser linear ou não.

33 of 62

Coeficiente de correlação de Pearson

  • Mede o grau da correlação (e se essa correlação é positiva ou negativa) entre duas variáveis.
  • Esse coeficiente, normalmente representado por ρ, assume apenas valores entre -1 e 1.
  • Correlação positiva e próxima de 1: as duas variáveis são diretamente proporcionais.
  • Correlação negativa e próxima de -1: as duas variáveis são inversamente proporcionais.
  • Correlação próxima de 0: não existe correlação linear entre as variáveis

34 of 62

Exemplo 7 – Correlação de Pearson – Duas variáveis

  • Um pesquisador propõe que uma variedade de um vírus da gripe é menos resistente em temperaturas elevadas. Para isso, ele faz um estudo indireto no qual foi determinada a porcentagem de indivíduos já infectados com o vírus e a temperatura média da região onde esses indivíduos vivem. Vamos verificar se existe alguma correlação entre essas variáveis.

35 of 62

Exemplo 8 – Correlação de Pearson – Várias variáveis

  • Um pesquisador busca por um novo marcador que possa ser utilizado para diagnosticar o estágio evolutivo de um determinado tipo de doença. Para isso, ele tenta verificar se existe uma correlação entre a concentração de 5 tipos de substâncias presentes na urina dos pacientes infectados e o Marcador X. Verifique se há algum tipo de correlação.

36 of 62

Caso não linear - Coeficiente de correlação de Spearman

  • Em algumas situações, a correlação entre as variáveis não é linear. Vejamos um exemplo.

37 of 62

Exemplo 9 – Correlação não linear

  • A tabela abaixo fornece o número de habitantes do Brasil (em milhões) desde 1872 até 1991.

a) Existe correlação entre essas variáveis?

b) Obtenha uma estimativa para a população brasileira no ano 2000. Compare seu resultado com dados reais que podem ser obtidos na web. 

c) Em que ano a população brasileira ultrapassou o índice de 100 milhões? Justifique matematicamente seu resultado.

38 of 62

Procedimentos no R

  • Abrir R.
  • Pacotes 🡺 Carregar Pacotes 🡺 Rcmdr 🡺 Ok
  • Uma nova janela será aberta.
  • O primeiro passo é carregar os dados do arquivo CSV gerado: Dados 🡺 Importar arquivo de dados 🡺 De arquivo de texto.
  • Alterar apenas a opção Separação de Campos: Alterar de Espaço em Branco para Vírgulas.
  • Agora vamos calcular a correlação dos dados: Estatística 🡺 Teste de Correlação.
  • Selecionar as duas variáveis (Ano e Habitantes), alterar tipo de correlação de Pearson para Spearman e dar Ok.
  • Fazer análise dos resultados

39 of 62

Exemplo 8 – Correlação de Spearman – Várias variáveis

  • Verificar se existe correlação de Spearman para os dados do Exemplo 8, ou seja, verificar novamente se existe correlação entre a concentração de 5 tipos de substâncias presentes na urina dos pacientes infectados e o Marcador X.

40 of 62

Curva ROC

  • Receiver Operating Characteristic (ROC).
  • A curva ROC é aplicada para verificação de desempenho de testes diagnósticos.
  • Por exemplo, verificar se pacientes são portadores ou não portadores de uma doença através de um marcador quantitativo.
  • Verificar se instâncias podem pertencer ou não em uma determinada classe.

41 of 62

Resultado hipotético de um teste

Pacientes doentes

Pacientes NÃO doentes

Número de Indivíduos

Quantidade (Marcador)

20

30

40

50

60

70

80

90

100

110

120

42 of 62

Limiar

NEGATIVOS

POSITIVOS

Quantidade (Marcador)

20

30

40

50

60

70

80

90

100

110

120

43 of 62

NEGATIVOS

POSITIVOS

SEM DOENÇA

COM DOENÇA

True Positives

44 of 62

False Positives

NEGATIVOS

POSITIVOS

45 of 62

NEGATIVOS

POSITIVOS

True Negatives

46 of 62

False Negatives

NEGATIVOS

POSITIVOS

47 of 62

Movendo o Limiar para a direita

48 of 62

Movendo o Limiar para a esquerda

49 of 62

Tabela de Confusão

  • O verdadeiro estado de cada indivíduo, doente ou não doente, é determinado por um teste de referência padrão ouro.
  • Um teste que gera muitos falsos negativos ou falsos positivos não tem utilidade médica.
  • Contudo, para esse tipo de aplicação, é melhor existirem falsos positivos do que falso negativos.

50 of 62

Conceitos Básicos

  • A sensibilidade (SE) é definida como a probabilidade do teste sob investigação fornecer um resultado positivo, dado que o indivíduo é realmente portador da enfermidade. (True Positive ou TP)
  • A especificidade (ES) é definida como a probabilidade do teste fornecer um resultado negativo, dado que o indivíduo está livre da enfermidade. (True Negative ou TN)

51 of 62

Tabela de Confusão

52 of 62

Curva ROC

True Positive Rate (sensitivity)

100%

False Positive Rate

(1-specificity)

0%

100%

53 of 62

Curva ROC

  • Cada ponto na curva corresponde a um dos modelos induzidos pelo classificador.
  • Um bom modelo deve estar localizado próximo do ponto de coordenadas (x,y) = (0,1).
  • Modelos localizados na diagonal são modelos aleatórios.

54 of 62

Comparação curvas ROC

True Positive Rate

0%

100%

False Positive Rate

100%

True Positive Rate

0%

100%

False Positive Rate

100%

Um bom desempenho

Um mau desempenho:

É possível quantificar esse desempenho?

55 of 62

Area abaixo da curva ROC (AUC)

  • A área abaixo da curva ROC fornece medida para comparar performances de classificadores.
  • Quanto maior a área AUC, melhor a performance global do classificador.
  • Classificador ótimo: área = 1
  • Classificador randômico: área = 0.5

56 of 62

AUC para diferentes curvas ROC

True Positive Rate

100%

False Positive Rate

0%

100%

True Positive Rate

100%

False Positive Rate

0%

100%

True Positive Rate

100%

False Positive Rate

0%

100%

AUC = 50%

AUC = 90%

AUC = 65%

AUC = 100%

True Positive Rate

100%

False Positive Rate

0%

100%

57 of 62

Considerações sobre o método

  • Muitos artigos são publicados utilizando somente coleta de dados e análise ROC.
  • Vamos ver um exemplo do uso de curvas ROC para validação de testes diagnósticos:
  • Body mass index and waist circumference are predictor biomarkers of breast cancer risk in Iranian women

58 of 62

Exemplo 10

  • Vamos fazer uma análise semelhante à do artigo apresentado no slide anterior. No arquivo Exemplo 01 temos uma sequência de dados. Na primeira coluna é apresentado o IMC de diversas pacientes. Na segunda coluna é apresentado um valor binário: (0) se a paciente não possui câncer de mama e (1) se a paciente possui câncer de mama. Vamos calcular uma curva ROC com esses dados.

59 of 62

Procedimentos no R

  • Importar arquivo de dados.
  • Carregar pacote pROC.
  • Executar o seguinte comando:

plot.roc(DADOS$ESTADO, DADOS$IMC, add=FALSE, col="blue")

legend("bottomright", legend=c("Empirical"),col=c("blue"), lwd=2)

  • Verifique no comando plot.roc que sempre deve-se colocar primeiro o nome da coluna dos dados qualitativos e na sequência o nome da coluna dos dados quantitativos.
  • Obs. 1: É possível instalar um plugin (menu) da análise ROC para o Rcmdr.
  • Obs. 2: É possível fazer uma análise também de frequência dos dados.
    • library(ggplot2)
    • ggplot(Dataset, aes(IMC, fill = ESTADO)) + geom_histogram(alpha = 0.5, aes(y = ..density..), position = 'identity')

60 of 62

Exemplo 11

  • Vamos fazer uma análise semelhante à do Exemplo 01, só que agora utilizando o valor de circunferência abdominal.
  • Qual é AUC para este caso?
  • Qual teste seria mais eficiente: circunferência abdominal ou IMC?

61 of 62

Exemplo 12

  • O FIB-4 é um teste não invasivo para identificar o grau de fibrose de um indivíduo. Ele leva em conta quatro variáveis do paciente: idade, contagem de plaquetas, de enzimas aminotransferase de aspartate (AST) e aminotransferase de alanine (ALT). O link a seguir apresenta uma calculadora on-line para determinação do score FIB-4.
  • http://www.hepatitisc.uw.edu/page/clinical-calculators/fib-4
  • A tabela disponível no site da disciplina contém dados que permitem calcular o score FIB-4, assim como o resultado de um exame padrão ouro que classifica os pacientes como doentes ou não doentes. Utilize o R para avaliar o score FIB 4 como preditor da fibrose hepática utilizando uma curva ROC.

62 of 62

Curva ROC – Escolhendo melhor limiar para separação dos dados

  • Instalar o pacote que escolhe o melhor ponto de corte:
    • install.packages("cutpointr")

  • Carregar o pacote que escolhe o melhor ponto de corte:
    • library(cutpointr)

  • Importar sua planilha de dados para o RCMDR com o nome Dataset

  • Executar o comando a seguir (OBS.: NÃO SE ESQUEÇA DE ALTERAR OS TEXTOS: NOME_COLUNA_VALOR_NUMERICO e NOME_COLUNA_VALOR_CATEGÓRICO)
    • cutpointr(Dataset, Dataset$NOME_COLUNA_VALOR_NUMERICO, Dataset$NOME_COLUNA_VALOR_CATEGÓRICO, method = maximize_metric, metric = sum_sens_spec)

  • O melhor valor de corte estará abaixo do texto: optimal_cutpoint

62