Maria Luiza D. Rocha, Gabriela Machado, Paula Brumana, Paloma Gonçalves-Grupo 1
Published
November 7, 2024
Code
library(rmarkdown)library(ggplot2)library(dplyr)
Anexando pacote: 'dplyr'
Os seguintes objetos são mascarados por 'package:stats':
filter, lag
Os seguintes objetos são mascarados por 'package:base':
intersect, setdiff, setequal, union
Code
library(plotly)
Anexando pacote: 'plotly'
O seguinte objeto é mascarado por 'package:ggplot2':
last_plot
O seguinte objeto é mascarado por 'package:stats':
filter
O seguinte objeto é mascarado por 'package:graphics':
layout
Code
library(corrplot)
corrplot 0.95 loaded
Code
library(polycor)
Introdução
Nesta aula, vamos investigar as relações entre variáveis qualitativas e quantitativas, qualitativa e qualitativa, e quantitativa e quantitativa em um conjunto de dados relacionados à saúde e nutrição. Utilizaremos tabelas de contingência, gráficos e medidas estatísticas apropriadas para realizar esta análise.
Conjunto de dados
Running Code
Code
# Definindo semente para reprodutibilidadeset.seed(1231)# Criando conjunto de dados simuladon <-150dados <-data.frame(Idade =round(rnorm(n, mean =40, sd =15)),IMC =round(rnorm(n, mean =25, sd =4), 1),Atividade_Fisica =factor(sample(c("Baixa", "Moderada", "Alta"), n, replace =TRUE)),Fumante =factor(sample(c("Sim", "Não"), n, replace =TRUE)),Colesterol =round(rnorm(n, mean =200, sd =30)), Pressão_Arterial =round(rnorm(n, mean =120, sd =15)))# Visualizando as primeiras linhas do conjunto de dadoshead(dados)
Relação entre Variáveis Qualitativas e Quantitativas
Exemplo: Relação entre Atividade Física e IMC
Para investigar a relação entre uma variável qualitativa (Atividade_Fisica) e uma quantitativa (IMC), podemos calcular estatísticas descritivas de IMC para cada nível de Atividade_Física.
Code
# Estatísticas descritivas do IMC por nível de Atividade Físicalibrary(dplyr)dados %>%group_by(Atividade_Fisica) %>%summarise( Média_IMC =mean(IMC),Mediana_IMC =median(IMC), Desvio_Padrão_IMC =sd(IMC) )
Gráfico de boxplot para IMC por nível de Atividade Física
Code
# Gráfico de boxplot para IMC por nível de Atividade Físicalibrary(ggplot2)p<-ggplot(dados, aes(x = Atividade_Fisica, y = IMC, fill = Atividade_Fisica)) +geom_boxplot() +labs(title ="Boxplot de IMC por Nível de Atividade Física",x ="Nível de Atividade Física",y ="IMC") +theme_minimal()p1<-ggplotly(p)p1
Gráfico 1: Boxplot de IMC por Nível de Atividade Física
Interpretação:
O gráfico de boxplot exibe a distribuição do Índice de Massa Corporal (IMC) para cada nível de atividade física (“Baixa”, “Moderada”, “Alta”). Ele mostra os seguintes pontos principais:
Mediana (linha central): Representa o valor mediano de IMC em cada grupo de atividade física.
Os indivíduos com atividade física alta tendem a ter um IMC mediano um pouco menor (24,90) do que aqueles com atividade física moderada (24,95) e baixa (25,50).
Dispersão (caixa e bigodes): Indica a variação do IMC em cada grupo.
A atividade física moderada apresenta uma maior variação no IMC, sugerindo que pessoas com atividade física moderada têm IMCs mais variados, enquanto a atividade física alta tem a menor dispersão.
Outliers (pontos fora da caixa e dos bigodes): Indivíduos com valores de IMC muito acima ou abaixo do esperado para cada grupo.
Alguns outliers são visíveis no grupo de atividade física moderada e alta, indicando a presença de indivíduos com IMC muito altos nesses grupos.
Conclusão: Há uma leve tendência de que, conforme aumenta o nível de atividade física, o IMC tende a diminuir, mas há também variações consideráveis dentro de cada grupo.
IMC está associado com a frequência de atividade física ?
Para investigar a associação entre uma variável qualitativa (como Atividade Física, caso seja dicotômica ou ordinal) e uma variável quantitativa contínua (como IMC), o coeficientie de correlação bisserial ou correlação polissérica são apropriados. Para calcular esses coeficientes no R, você pode usar pacotes como polycor, que oferece funções para obter tanto a correlação bisserial quanto a polissérica.
Correlação polissérica
Esse coeficiente é indicado se Atividade Física tiver mais de dois níveis ordenados (como “Nenhuma”, “Moderada”, “Alta”). Ele generaliza a correlação bisserial para uma variável qualitativa com categorias ordenadas e mede a associação entre uma variável contínua e uma qualitativa ordinal, assumindo uma normalidade latente subjacente.
Code
# Exemplo de dados para correlação polissérica# Suponha uma variável contínua Y e uma variável ordinal Xpolyserial_corr <-polyserial(dados$IMC,dados$Atividade_Fisica )polyserial_corr
[1] -0.03650097
Interpretação dos Coeficientes de Correlação
Para interpretar os coeficientes de correlação bisserial e polissérica e testar sua significância, segue:
**Correlação Polissérica ( $r_poly$): O coeficiente polissérico mede a associação entre uma variável contínua e uma variável ordinal, assumindo que a variável ordinal representa uma discretização de uma distribuição normal subjacente.
Valores altos de $r_ply$ (próximos de 1 ou -1) indicam uma associação forte entre a variável contínua e a variável ordinal, sugerindo uma mudança substancial nos valores médios ou na distribuição da variável contínua conforme as categorias da variável ordinal.
Valores baixos (próximos de 0) indicam uma associação fraca ou inexistente, sugerindo que as categorias da variável ordinal não correspondem a variações sistemáticas na variável contínua.
Testes de Significância
Para verificar a significância desses coeficientes, você pode aplicar testes estatísticos apropriados que avaliam a hipótese nula de que a correlação é zero (ou seja, que não há associação entre as variáveis).
1.Correlação Polissérica:
A significância do coeficiente de correlação polissérica é normalmente testada via estimativas de erro padrão obtidas durante o ajuste da correlação. Essas estimativas podem ser usadas para construir um teste z:
$z=\frac{r_p_-{ErroP} $
O coeficiente polissérico. Esse teste z pode ser usado para calcular o valor-p, assumindo uma distribuição normal padrão para o teste de significância.
No pacote polycor em R, a função polyserial() fornece uma estimativa do erro padrão para a correlação polissérica, permitindo realizar o teste de significância.
Esses métodos ajudam a avaliar se os coeficientes são estatisticamente diferentes de zero, confirmando a existência de uma associação significativa entre as variáveis contínua e qualitativa.
Code
# Extraia o valor de r_poly e o erro padrão# Extraia o valor de r_pr_p<- polyserial_corr# Tamanho da amostran <-length(dados$IMC)# Calcule o valor do teste t para r_bt_value <- r_p*sqrt((n -2)/(1- r_p^2))# Calcule o valor-p para o teste tp_value <-2*pt(-abs(t_value), df = n -2)# Resultadoscat("Correlação Polisserial aproximada (r_p):", r_p, "\n")
Escolhido o nível de significância ,geralmente 5 % (0,05).
Hípoteses do Teste :
H0:rp=0
H1:rp≠0
Possíveis interpretações:
Se o valor p<0,05, rejeita-se H0 e conclui-se que o coeficiente de correlação polissérico estimado é estattísticamente significativo .
Se o valor p0,05 , NÃO rejeita-se H0 e conclui-se que o coeficiente de correlação polissérico estimado NÃO É estatísticamente significativo .
Conclusão para o teste aplicado: De acordo com o teste t , não reijeitamos a hipótese de que o coeficiente possérico estimado é igual a zero , logo , concluímos que a correlação estimada não é estatisticamente significativa.
Correlação Bisserial:
Esse coeficiente é adequado se Fumante for dicotômica (com dois níveis, como “Sim” e “Não”). Ele mede a associação entre uma variável contínua (como IMC) e uma variável binária que se supõe representar uma divisão de uma variável latente normal subjacente. O coeficiente bisserial estima a correlação subjacente assumindo que a variável dicotômica resulta de uma “dichotomização” de uma distribuição normal.
Code
library(ltm)
Carregando pacotes exigidos: MASS
Anexando pacote: 'MASS'
O seguinte objeto é mascarado por 'package:plotly':
select
O seguinte objeto é mascarado por 'package:dplyr':
select
Carregando pacotes exigidos: msm
Code
# Exemplo de dados para correlação bisserial# Suponha uma variável contínua Y e uma variável dicotômica Xbiserial_corr <-biserial.cor(dados$IMC, dados$Fumante)biserial_corr
[1] 0.08211626
Code
# Extraia o valor de r_poly e o erro padrão# Extraia o valor de r_br_b<- biserial_corr# Tamanho da amostran <-length(dados$IMC)# Calcule o valor do teste t para r_bt_value <- r_b*sqrt((n -2)/(1- r_b^2))# Calcule o valor-p para o teste tp_value <-2*pt(-abs(t_value), df = n -2)# Resultadoscat("Correlação Biserial aproximada (r_ba):", r_b, "\n")
Correlação Biserial aproximada (r_ba): 0.08211626
Code
cat("Valor t:", t_value, "\n")
Valor t: 1.002373
Code
cat("Valor-p:", p_value, "\n")
Valor-p: 0.3177997
Escolhido o nível de significância ,geralmente 5 % (0,05).
Hípoteses do Teste :
H0:rb=0
H1:rb≠0
Possíveis interpretações
Se o valor p<0,05, rejeita-se H0 e conclui-se que o coeficiente de correlação bisserial estimado é estattísticamente significativo .
Se o valor p>0,05 , NÃO rejeita-se H0 e conclui-se que o coeficiente de correlação bisserial estimado NÃO É estatísticamente significativo .
Conclusão para o teste aplicado: De acordo com o teste t , não reijeitamos a hipótese de que o coeficiente possérico estimado é igual a zero , logo , concluímos que a correlação estimada não é estatisticamente significativa.
A significância do coeficiente de correlação bisserial pode ser testada usando um teste t com o seguinte estatístico:
$ t=\dfrac{r_b\sqrt{n-2}}{\sqrt{1-r_b^2}} $
onde rb é o coeficiente bisserial e $n$ é o tamanho da amostra. Esse teste segue uma distribuição t com n−2 graus de liberdade.
No R, você pode calcular a significância do coeficiente polyserial e verificar o valor-p.
Relação entre Variáveis Qualitativa e Qualitativa
Para investigar a relação entre duas variáveis qualitativas, podemos usar uma tabela de contingência entre as variáveis Fumante e Atividade_Física.
Code
# Tabela de contingência entre Fumar e Atividade Físicatabela_contingencia <-table(dados$Fumante, dados$Atividade_Fisica)tabela_contingencia
Alta Baixa Moderada
Não 27 20 42
Sim 18 23 20
Tabela de Contingência - Relação entre Fumar e Atividade Física
Interpretação:
A tabela de contingência fornece a contagem de fumantes e não fumantes dentro de cada nível de atividade física. A partir dessa tabela, podemos observar:
Atividade Física Alta: Parece ter uma proporção menor de fumantes comparado aos níveis de atividade física moderada e baixa.
Atividade Física Baixa: Apresenta uma maior proporção de fumantes em relação à atividade física alta.
Essas observações podem indicar uma possível associação entre fumar e o nível de atividade física. Indivíduos com alta atividade física tendem a fumar menos.
Podemos testar a associação entre essas variáveis com o teste do qui-quadrado.
Testando a hipótese de Associação e Pressuposições para o Teste Qui-Quadrado
Nesta seção, descrevemos as hipóteses e as pressuposições envolvidas no teste qui-quadrado, aplicado para investigar a associação entre as variáveis “Fumar” e “Atividade Física”.
Hipóteses do Teste Qui-Quadrado
O teste qui-quadrado é utilizado para verificar se há uma associação entre duas variáveis qualitativas. No caso deste estudo, estamos interessados em avaliar a relação entre ser fumante e o nível de atividade física.
Hipótese Nula (H₀): O hábito de fumar e atividade física são independentes, ou seja, a proporção de fumantes não difere entre os diferentes níveis de atividade física.
[ H_0: \text{O hábito de fumar e Atividade Física são independentes, ou seja, o resultado de um não interfere no outro. ex.: chuva e notas no semestre .} ]
[ H_0: ]
Hipótese Alternativa (H₁): O hábiro de fumar e atividade física não são independentes, ou seja, a proporção de fumantes varia conforme o nível de atividade física.
[ H_1: ]
Pressuposições do Teste Qui-Quadrado
O teste qui-quadrado possui algumas pressuposições importantes que devem ser verificadas para garantir a validade do teste. Essas pressuposições são as seguintes:
Amostra Aleatória: A amostra de dados deve ser obtida por um processo de amostragem aleatória, garantindo que cada observação seja independente das outras.
Tamanho da Amostra Adequado: As frequências esperadas em cada célula da tabela de contingência devem ser maiores ou iguais a 5. Caso contrário, o teste qui-quadrado pode não ser apropriado.
Medida de Associação: O teste qui-quadrado mede a associação entre as variáveis, mas não indica a direção ou a magnitude dessa associação.
Variáveis Categóricas: As variáveis analisadas devem ser qualitativas (categóricas), e a análise se dá por meio de uma tabela de contingência.
Interpretação dos Resultados
Após realizar o teste qui-quadrado, avaliamos o valor-p obtido:
Se o valor-p for menor que o nível de significância (geralmente 0,05), rejeitamos a hipótese nula, o que indica que existe uma associação significativa entre “Fumar” e “Atividade Física”.
Se o valor-p for maior ou igual a 0,05, não rejeitamos a hipótese nula, ou seja, não temos evidências suficientes para concluir que as variáveis são dependentes.
Essas hipóteses e pressuposições são essenciais para realizar o teste qui-quadrado de forma correta e interpretar seus resultados adequadamente.
Conclusão: De acordo com o teste qui-quadrado,p maior 0,05, aceita a hipótese nula, não temos evidências suficientes para concluir que as variáveis são dependentes, ou seja, são independentes.
Teste Qui-Quadrado: O teste qui-quadrado pode confirmar se essa relação é estatisticamente significativa.
Relação entre Variáveis Quantitativas
Neste exemplo, apresentamos três tipos de relação linear: Correlação Positiva, Correlação Negativa e Ausência de Correlação. Abaixo, as figuras são exibidas lado a lado para facilitar a visualização.
Hipóteses e Pressuposições para a Correlação de Pearson
Nesta seção, descrevemos as hipóteses e pressuposições para a aplicação da correlação de Pearson, que é usada para medir a relação linear entre duas variáveis quantitativas. No exemplo, investigamos a relação entre as variáveis “Colesterol” e “Pressão Arterial”.
Hipóteses da Correlação de Pearson
A correlação de Pearson avalia a força e a direção da relação linear entre duas variáveis contínuas. Suas hipóteses são definidas da seguinte maneira:
Hipótese Nula (H₀): Não existe correlação linear entre as duas variáveis; o coeficiente de correlação populacional é igual a zero.
[ H_0: = 0 ]
Onde ( ) é o coeficiente de correlação populacional.
Hipótese Alternativa (H₁): Existe uma correlação linear entre as duas variáveis; o coeficiente de correlação populacional é diferente de zero.
[ H_1: ]
Pressuposições da Correlação de Pearson
Para que a correlação de Pearson seja aplicada corretamente, as seguintes pressuposições devem ser atendidas:
Linearidade: As duas variáveis devem apresentar uma relação linear. Isso pode ser verificado visualmente com um gráfico de dispersão. Se a relação entre as variáveis for não-linear, a correlação de Pearson não é adequada.
Code
ggplot(dados, aes(x = Colesterol, y = Pressão_Arterial)) +geom_point() +geom_smooth(method ="lm", col ="blue", se =FALSE) +labs(title ="Gráfico de Dispersão: Colesterol vs Pressão Arterial",x ="Colesterol",y ="Pressão Arterial") +theme_minimal()
`geom_smooth()` using formula = 'y ~ x'
Normalidade: As duas variáveis devem ser aproximadamente normalmente distribuídas, especialmente se o tamanho da amostra for pequeno. Essa pressuposição pode ser verificada através de testes de normalidade ou gráficos como o Q-Q plot.
O teste de Shapiro-Wilk é usado para verificar a normalidade de uma distribuição, e ele testa as seguintes hipóteses:
Hipótese Nula (H₀): Os dados seguem uma distribuição normal.
Hipótese Alternativa (H₁): Os dados não seguem uma distribuição normal.
Code
# Q-Q plotqqnorm(dados$Colesterol, main ="Q-Q Plot para Verificação de Normalidade")qqline(dados$Colesterol, col ="red", lwd =2) # Adiciona a linha de referência
Homocedasticidade: A variância dos valores ao longo da linha de regressão deve ser constante, ou seja, a dispersão dos pontos deve ser similar para todos os valores das variáveis. Caso contrário, pode haver heterocedasticidade, o que viola esta pressuposição.
Code
# Aplicando o teste de Bartlettbartlett.test(dados$Colesterol~dados$Atividade_Fisica)
Bartlett test of homogeneity of variances
data: dados$Colesterol by dados$Atividade_Fisica
Bartlett's K-squared = 1.0752, df = 2, p-value = 0.5842
Escala de Medição: Ambas as variáveis devem ser medidas em uma escala intervalar ou de razão.
Cálculo e Interpretação da Correlação de Pearson
O coeficiente de correlação de Pearson (( r )) varia entre -1 e 1:
( r = 1 ): Correlação linear perfeita positiva.
( r = -1 ): Correlação linear perfeita negativa.
( r = 0 ): Nenhuma correlação linear.
Se, tivermos valores entre -1 e 1, exceto o 0, as correlações mudam , mas existem.
Após calcular a correlação, o valor-p associado ao teste pode ser utilizado para verificar a significância estatística:
Se o valor-p for menor que o nível de significância (geralmente 0,05), rejeitamos a hipótese nula e concluímos que existe uma correlação linear significativa entre as duas variáveis.
Se o valor-p for maior ou igual a 0,05, não rejeitamos a hipótese nula, o que indica que não há evidências suficientes de uma correlação linear significativa entre as variáveis.
Interpretação dos Resultados
A magnitude e a direção da correlação são determinadas pelo valor de ( r ):
Correlação forte: Quando ( r ) está próximo de -1 ou 1, indicando uma forte relação linear.
Correlação fraca: Quando ( r ) está próximo de 0, indicando uma fraca ou inexistente relação linear.
Significado do sinal: Se ( r ) for positivo, a relação entre as variáveis é direta (aumento de uma variável corresponde ao aumento da outra). Se ( r ) for negativo, a relação é inversa (aumento de uma variável corresponde à diminuição da outra).
Essas hipóteses e pressuposições são fundamentais para realizar a análise de correlação de Pearson corretamente e interpretar seus resultados de forma adequada.
Para fazer Correlação entre Colesterol e Pressão Arterial
Inicialmente, testa-se se encaixa as pressuposições, conforme já realizado acima, juntamente com a parte teórica de pressuposições.
Sendo assim, para variáveis quantitativas, como Colesterol e Pressão_Arterial, podemos calcular a correlação de Pearson para verificar a força e a direção da relação linear entre elas.
Code
# Correlação de Pearson entre Colesterol e Pressão Arterialcorrelacao <-cor(dados$Colesterol, dados$Pressão_Arterial)correlacao
[1] 0.0969154
Significa que a correlação é muito fraca ou inexistente, pois o r=0.0969154, concluindo que a correlação entre os níveis de pressão arterial e colesterol é fraca.
Para saber se a correlação é significativa, calcula-se o valor de p:
Pearson's product-moment correlation
data: dados$Colesterol and dados$Pressão_Arterial
t = 1.1846, df = 148, p-value = 0.2381
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.06434553 0.25324360
sample estimates:
cor
0.0969154
O valor de p é maior que 0,05, logo não é significativo
Conclusão : De acordo com o teste de correlação, as variáveis Colesterol e Pressão arterial não estão correlacionadas significativamente, ao nível de 5% de significância
Matriz de correlaçao- Variáveis misturadas
Code
#str(dados) #serve para conferir a natureza das variáveis #Transformando todas as variáveis em numéricas.dados$Idade<-as.numeric(dados$Idade)dados$IMC<-as.numeric(dados$IMC)dados$Atividade_Fisica<-as.numeric(dados$Atividade_Fisica)dados$Fumante<-as.numeric(dados$Fumante)dados$Colesterol<-as.numeric(dados$Colesterol)dados$Pressão_Arterial<-as.numeric(dados$Pressão_Arterial)library(psych)
Anexando pacote: 'psych'
O seguinte objeto é mascarado por 'package:ltm':
factor.scores
O seguinte objeto é mascarado por 'package:polycor':
polyserial
Os seguintes objetos são mascarados por 'package:ggplot2':
%+%, alpha
Observações: Variáveis Poli, são variáveis categoricas com mais de dois níveis.
A função mixedCor requer que todas as variáveis sejam de natureza numérica (quantitativa)
Argumentos da função mixedCor:
p = é a posição da variável categioricas com mais de 2 níveis presentes no conjunto de dados;
c= posição variáveis contínuas no conjunto de dados;
d=posição variáveis categoricas com 2 níveis (dicotômica) presentes no conjunto de dados;
Code
Rho<-Mmixed[["rho"]] # considerando apenas os coeficientes de correlção (rho)Rho<-round(Rho,2) #Considerar 2 casas após a vírgulaRho<-as.data.frame(Rho) # Transformando o conjunto com os valores do coeficiente em "planilha"
Code
library(ggcorrplot)Correlogram<-ggcorrplot(Rho, type ="upper",lab =TRUE)library(plotly)Correlogram<-ggplotly(Correlogram)Correlogram