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(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
Carregando pacotes exigidos: polycor
Code
library(MASS)library(msm)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
Code
# Definindo semente para reprodutibilidadeset.seed(12322)# 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)
Idade IMC Atividade_Fisica Fumante Colesterol Pressão_Arterial
1 16 29.3 Moderada Sim 193 109
2 51 20.1 Baixa Não 239 119
3 29 26.8 Alta Não 235 144
4 57 27.0 Baixa Não 203 113
5 40 26.3 Alta Não 151 133
6 37 27.7 Baixa Não 220 95
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) )
The echo: false option disables the printing of code (only output is displayed)
Além disso, podemos visualizar essas relações usando um gráfico de boxplot.
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 de (25,20) igual ao medianp de atividade física moderada (25,20) qeu são um pouco maiores do que aqueles com atividade físicabaixa (24,85)
-Dispersão (caixa e bigodes): Indica a variação do IMC em cada grupo.
A atividade física moderada (sd =3,710785) 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 baixa tem a menor dispersão (sd=3.626515).
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 alta, indicando a presença de indivíduos com IMC muito alto e muito baixo neste grupo.
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.
1. 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.06350999
Interpretação dos Coeficentes 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).
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 t:
\(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_pa):", 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
# 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.01192548
Testando significancia
Code
# Extraia o valor de r_poly e o erro padrão# Extraia o valor de r_pr_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 Bisserial (r_b):", r_b, "\n")
Correlação Bisserial (r_b): 0.01192548
Code
cat("Valor t:", t_value, "\n")
Valor t: 0.14509
Code
cat("Valor t:", t_value, "\n")
Valor t: 0.14509
Code
cat("Valor-p:", p_value, "\n")
Valor-p: 0.8848372
Testando a hipótese de Associação entre o hábito de fumar e atividade física - Teste Qui-quadrado
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:
1.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.
2.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.
3.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.
4.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.
Essas hipóteses e pressuposições são essenciais para realizar o teste qui-quadrado de forma correta e interpretar seus resultados adequadamente.
Hipóteses 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₀): As variáveis “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:$ O hábito de fumar e Atividade Física são independentes. (Associação não significativa)
$ H_1:$ O hábito de fumar e Atividade Física são dependentes. (Associação significativa)
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 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.
Conclusão: De acordo com teste qui-quadrado , o hábito de fumo não está associado com Atividade física ao nível de 5 % de significância .
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.
Correlação entre Colesterol e Pressão Arterial
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'
Correlação de Pearson
Code
# Correlação de Pearson entre Colesterol e Pressão Arterialcorrelacao <-cor(dados$Colesterol, dados$Pressão_Arterial)correlacao
[1] -0.04775125
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.
Hipótese Alternativa (H₁): Existe uma correlação linear entre as duas variáveis; o coeficiente de correlação populacional é diferente de zero.
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.
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.
Teste de Shapiro Wilk
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
Code
# Exemplo de código em R para o teste de Shapiro-Wilkshapiro.test(dados$Colesterol)
Shapiro-Wilk normality test
data: dados$Colesterol
W = 0.98987, p-value = 0.3551
Code
shapiro.test(dados$Pressão_Arterial)
Shapiro-Wilk normality test
data: dados$Pressão_Arterial
W = 0.99209, p-value = 0.5743
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.236, df = 2, p-value = 0.539
H0: afirma que todas as variâncias dos grupos são iguais. H1: sugere que pelo menos uma das variâncias é diferente.
Escala de Medição: Ambas as variáveis devem ser medidas em uma escala intervalar ou de razão (QUANTITATIVAS).
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.
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 adequadaConclusão : O gráfico de pontos e coeficiente de correlação de Pearson (r) indicam que a correlação entre o nível de Colesterol e a Pressão arterial é fraca .
Code
# Testa se existe correlacao entre o consumo de sorvete e a temperaturacor.test(x = dados$Colesterol, y = dados$Pressão_Arterial, method ="pearson")
Pearson's product-moment correlation
data: dados$Colesterol and dados$Pressão_Arterial
t = -0.58158, df = 148, p-value = 0.5617
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.2064330 0.1133779
sample estimates:
cor
-0.04775125
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.
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ção - Variáveis Misturadas
Code
#Transformando todas as variáveis em numéricasdados$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)names(dados)
List of 6
$ rho : num [1:6, 1:6] 1 -0.1437 -0.1015 -0.0261 -0.0761 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:6] "Idade" "IMC" "Atividade_Fisica" "Fumante" ...
.. ..$ : chr [1:6] "Idade" "IMC" "Atividade_Fisica" "Fumante" ...
$ rx : 'psych' num [1:4, 1:4] 1 -0.14365 -0.07608 0.00119 -0.14365 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:4] "Idade" "IMC" "Colesterol" "Pressão_Arterial"
.. ..$ : chr [1:4] "Idade" "IMC" "Colesterol" "Pressão_Arterial"
$ poly :List of 2
..$ rho: num 1
..$ tau: NULL
$ tetra:List of 2
..$ rho: num 1
..$ tau: NULL
$ rpd : num [1, 1] -0.11
..- attr(*, "dimnames")=List of 2
.. ..$ : chr "Atividade_Fisica"
.. ..$ : chr "Fumante"
$ Call : language mixedCor(data = dados, c = c(1, 2, 5, 6), p = 3, d = 4, smooth = F, correct = 0)
- attr(*, "class")= chr [1:2] "psych" "mixed"
Observação: Variáveis Poli, são variáveis categóricas 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 = posição de variáveis categóricas 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 categóricas com 2 níveis (dicotômica) presentes no conjuntos de dados.
Code
Rho<-Mmixed[["rho"]] #Considerando apenas os coeficientes de correlaçã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 coenficiente em "planilha".
Code
library(ggcorrplot)
Warning: pacote 'ggcorrplot' foi compilado no R versão 4.4.2
Code
Correlogram<-ggcorrplot(Rho, type ="upper", lab =TRUE)library(plotly)Correlogram<-ggplotly(Correlogram)Correlogram