ESTATÍSTICA NÃO PARAMÉTRICA

PRÁTICA 7: COEFICIENTES DE ASSOCIAÇÃO

\[\\[0.05in]\]

1 PACOTES NECESSÁRIOS

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

require(lsr) # Calcula o coeficiente V de Cramer 
require(psych) # Calcula o coeficiente Phi
require(ggplot2) # Para a construção de gráficos

2 COEFICIENTE V DE CRAMER

Para calcular o coeficiente V de Cramer no R, utilizaremos a função cramersV do pacote lsr. A função cramerV precisa dos seguintes argumentos:

  • x = tabela

A função cramersV retorna o valor do coeficiente.

2.1 EXEMPLO: AGÊNCIA DE TURISMO

Determinada agência de turismo realizou uma pesquisa para identificar se o gênero influencia na escolha de destinos de viagem. Os entrevistados podiam escolher entre três tipos de destinos: Praia, Montanha e Cidade Histórica. A tabela de contingência é a seguinte:

Inicialmente, precisamos salvar a base de dados em um objeto:

tabela <- matrix(c(68, 22, 15,
                  18, 43, 39),
                nrow = 2, byrow = TRUE,
                 dimnames = list("Gênero" = c("Feminino", "Masculino"),
                                 "Destino" = c("Praia", "Montanha", "Cidade Histórica")))

Para calcular o coeficiente V de Cramer, tem-se o comando:

Cramer_v <- cramersV(tabela)
Cramer_v
## [1] 0.4758905

Obtemos, portanto, um coeficiente V de Cramer de 0,47 que indica uma associação moderada. Para testar a significância da associação, utilizamos os comandos já vistos anteriormente com a função chisq.test():

chisq_test <- chisq.test(tabela)
chisq_test
## 
##  Pearson's Chi-squared test
## 
## data:  tabela
## X-squared = 46.427, df = 2, p-value = 8.29e-11

Com um valor-p bem próximo de 0 rejeitamos a hipótese nula. Há evidências estatísticas de que há uma associação entre as variáveis.

Para visualizar esta associação graficamente, pode ser de interesse fazer o gráfico mosaico. Neste gráfico, é rapidamente verificado qual o sentido da associação. Se alguma casela é azul (vermelha) indica que a frequência observada na referida combinação é maior (menor) do que a frequência esperada. Quanto mais forte for a cor, mais distante é o observado do esperado.

mosaicplot(tabela, 
           main = "Associação entre Gênero e Escolha de Destino de Viagem", 
           color = TRUE, 
           shade = TRUE,
           xlab = "Gênero", 
           ylab = "Destino",
             las=1)

A partir do gráfico, nota-se que mulheres possuem uma tendência maior a escolherem praias e rejeitam as cidades históricas. Já os homens rejeitam praias e têm uma tendência maior a escolherem montanhas e cidade histórica.

2.2 EXERCÍCIO: MEIOS DE TRANSPORTE

Vamos analisar dois aspectos relacionados ao uso de transporte público:

  • Tipo de Transporte Utilizado (4 categorias): “Ônibus”, “Trem”, “Metrô”, “Outros”.

  • Satisfação com o Transporte (5 categorias): “Muito insatisfeito”, “Insatisfeito”, “Neutro”, “Satisfeito”, “Muito satisfeito”.

Queremos avaliar se há uma associação entre o tipo de transporte utilizado e o nível de satisfação. Os dados coletados de 473 pessoas são apresentados abaixo:

3 COEFICIENTE PHI

Para calcular o coeficiente phi no R, basta utilizar a função phi do pacote psych. A função phi precisa dos seguintes argumentos:

  • x = tabela

A função phi retorna o valor do coeficiente.

3.1 EXEMPLO: ATIVIDADE FÍSICA

Um pesquisador quer avaliar se há associação entre a prática de atividade física regular (sim/não) e a ocorrência de hipertensão (sim/não) em um grupo de indivíduos. Para isto, ele coletou os seguintes dados:

Inicialmente, precisamos salvar a base de dados em um objeto:

tabela <- matrix(c(23, 58, 48, 21), 
                 nrow = 2, 
                 byrow = TRUE,
                 dimnames = list("Atividade Física" = c("Sim", "Não"),
                                 "Hipertensão" = c("Sim", "Não")))

O coeficiente Phi é calculado com o seguinte código:

Phi <- phi(tabela)
Phi
## [1] -0.41

Obtemos, portanto, um coeficiente Phi de -0,41 que indica uma associação moderada. Para testar a significância da associação, utilizamos os comandos já vistos com a função chisq.test():

chisq_test <- chisq.test(tabela, correct=F)
chisq_test
## 
##  Pearson's Chi-squared test
## 
## data:  tabela
## X-squared = 25.334, df = 1, p-value = 4.821e-07

Com um valor-p bem próximo de 0 rejeitamos a hipótese nula. Há evidências estatísticas de que há uma associação entre as variáveis.

Para visualizar esta associação graficamente, vamos fazer o gráfico mosaico novamente:

mosaicplot(tabela, 
           main = "Associação entre Atividade Física e Hipertensão", 
           color = TRUE, 
           shade = TRUE,
           xlab = "Hipertensão", 
           ylab = "Atividade Física",
           las=1
)

A partir do gráfico, nota-se que o coeficiente ja indicava: uma maior atração para as combinações na diagonal secundária. Fazer atividade física reduz a hipertensão e, por outro lado, não fazer atividade física, não reduz a hipertensão.

3.2 EXERCÍCIO: EMPRESA DE TECNOLOGIA

Imagine que você está trabalhando em um projeto para uma empresa de tecnologia que está tentando entender o comportamento de seus usuários em relação ao uso de dois novos recursos em um aplicativo de mensagens. A empresa coletou dados sobre se os usuários utilizam a função “enviar mensagens de voz” (Sim ou Não) e se eles têm notificações ativas no aplicativo (Ativas ou Desativadas). O objetivo é verificar se existe uma associação entre essas duas variáveis. A tabela abaixo mostra a quantidade de usuários para cada combinação de respostas:

Utilize o coeficiente Phi para investigar a associação entre estas variáveis.

4 COEFICIENTE DE SPEARMAN

Para calcular o coeficiente de Spearman no R, basta utilizar a função cor do pacote base do R. A função cor precisa dos seguintes argumentos:

  • x = Dados da primeira variável
  • y = Dados da segunda variável
  • method = O médodo utilizado. Colocaremos `method = “spearman”

A função cor retorna o valor do coeficiente.

4.1 EXEMPLO: SALÁRIO E ESCOLARIDADE

Vamos imaginar uma situação em que temos 30 indivíduos e queremos estudar a relação entre nível de escolaridade (variável ordinal) e salário mensal (variável quantitativa).

Variáveis:

  • Nível de escolaridade (ordinal): 1: Fundamental incompleto 2: Fundamental completo 3: Médio completo 4: Superior completo 5: Pós-graduação

  • Salário mensal (quantitativa): renda em R$ (um número contínuo).

Vamos utilizar o coeficiente de Spearman para estes dados. Inicialmente, precisamos salvar a base de dados em um objeto em uma classe de tabela:

dados <- data.frame(
  Escolaridade = c(1, 4, 5, 3, 1, 3, 3, 5, 4, 3, 
                   2, 4, 3, 2, 2, 5, 1, 2, 4, 3, 
                   3, 3, 3, 4, 5, 1, 2, 1, 2, 5),
  Salario = c(1657.83, 7556.33, 11817.58, 2945.91, 1044.35, 
              3860.94, 3397.29, 10890.71, 7425.06, 2966.79, 
              1715.88, 6629.91, 4791.32, 1607.80, 1416.17, 
              12129.39, 1448.84, 2973.62, 5190.15, 4261.93, 
              4196.35, 4695.66, 6232.59, 12668.32, 2434.12, 
              1116.57, 2272.45, 2311.93, 11542.21, 7875.29)
)

Os seguintes comandos calculam o coeficiente de Spearman:

spearman <- cor(dados$Escolaridade, dados$Salario, method = "spearman")
spearman
## [1] 0.785649

Obtemos, portanto, um coeficiente de Spearman de 0,785 que indica uma associação monotônica crescente clara e consistente. Para testar a significância do coeficiente, o teste é feito com o seguinte comando:

teste <- cor.test(dados$Escolaridade, dados$Salario, method = "spearman")
teste
## 
##  Spearman's rank correlation rho
## 
## data:  dados$Escolaridade and dados$Salario
## S = 963.51, p-value = 2.701e-07
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##      rho 
## 0.785649

Com um valor-p bem próximo de 0 rejeitamos a hipótese nula. Há evidências estatísticas de que o coeficiente de Spearman é diferente de 0.

Para visualizar esta associação graficamente, pode ser de interesse fazer gráficos como o gráfico de dispersão, ou boxplot:

ggplot(dados, aes(x = Escolaridade, y = Salario)) +
  geom_point(color = "blue") +
  labs(title = "Relação entre Escolaridade e Salário", 
       x = "Escolaridade", y = "Salário") +
  theme_minimal()

ggplot(dados, aes(x = factor(Escolaridade), y = Salario)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Distribuição do Salário por Escolaridade", 
       x = "Escolaridade", y = "Salário") +
  theme_minimal()

A partir dos gráficos, nota-se o que o coeficiente ja indicava: quanto maior a escolaridade, maior a faixa salarial.

4.2 EXERCÍCIO: PRESIDENTES AMERICANOS

Existe correlação significativa entre a idade em que cada presidente dos EUA foi empossado pela primeira vez e a idade em que ele morreu? Utilize o coeficiente de Spearman.

Nome Posse Morte Nome Posse Morte
Washington 57 67 Hayes 54 70
J. Adams 61 90 Garfield 49 49
Jefferson 57 83 Arthur 50 56
Madison 57 85 Cleveland 47 71
Monroe 58 73 Harrison 55 67
J.Q. Adams 57 80 McKinley 54 58
Jackson 61 78 T. Roosevelt 42 60
Van Buren 54 79 Taft 51 72
Harrison 68 68 Wilson 56 67
Tyler 51 71 Harding 55 57
Polk 49 53 Coolidge 51 60
Taylor 64 65 Hoover 54 90
Fillmore 50 74 F. Roosevelt 51 63
Pierce 48 64 Truman 60 88
Buchanan 65 77 Eisenhower 62 78
Lincoln 52 56 Kennedy 43 46
A. Johnson 56 66 L. Johnson 55 64
Grant 46 63 Nixon 56 81

Note que estes dados não representam uma amostra aleatória, mas podemos assumir que eles se comportam com uma amostra aleatória de todos os presidentes dos EUA, presentes, passados e futuros. Seguem os dados no R:

dados <- data.frame(
  Nome = c("Washington", "J. Adams", "Jefferson", "Madison", "Monroe", "J.Q. Adams", "Jackson", 
           "Van Buren", "Harrison", "Tyler", "Polk", "Taylor", "Fillmore", "Pierce", "Buchanan", 
           "Lincoln", "A. Johnson", "Grant", "Hayes", "Garfield", "Arthur", "Cleveland", 
           "Harrison", "McKinley", "T. Roosevelt", "Taft", "Wilson", "Harding", "Coolidge", 
           "Hoover", "F. Roosevelt", "Truman", "Eisenhower", "Kennedy", "L. Johnson", "Nixon"),
  Posse = c(57, 61, 57, 57, 58, 57, 61, 54, 68, 51, 49, 64, 50, 48, 65, 52, 56, 46, 54, 49, 
            50, 47, 55, 54, 42, 51, 56, 55, 51, 54, 51, 60, 62, 43, 55, 56),
  Morte = c(67, 90, 83, 85, 73, 80, 78, 79, 68, 71, 53, 65, 74, 64, 77, 56, 66, 63, 70, 49, 
            56, 71, 67, 58, 60, 72, 67, 57, 60, 90, 63, 88, 78, 46, 64, 81)
)