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
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:
A função cramersV retorna o valor do coeficiente.
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.
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:
Para calcular o coeficiente phi no R,
basta utilizar a função phi do pacote psych. A
função phi precisa dos seguintes
argumentos:
A função phi retorna o valor do
coeficiente.
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.
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.
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:
A função cor retorna o valor do
coeficiente.
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.
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)
)