Layana, Camila, Maria Fernanda, Hana, Gabriel - Grupo 3
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)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
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(1233)# 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 47 23.3 Moderada Não 168 118
2 31 23.6 Moderada Não 213 93
3 39 18.3 Moderada Não 207 112
4 17 32.6 Moderada Não 162 89
5 37 21.8 Moderada Sim 197 109
6 15 29.0 Alta Não 209 104
Observações:
As medidas descritivas média, moda, mediana, quartis e percentis devem ser calculados a partir de variáveis QUANTITATIVAS.
Para variável QUALITATIVA ou CATEGÓRICA pode-e aplicar MODA.
Relação entre Variáveis Qualitativas e Quantitativas
Exemplo: Relação entre Atividade Física e IMC
Para examinar a associação entre a variável qualitativa (Atividade_Fisica) e a variável quantitativa (IMC), podemos utilizar análises estatísticas descritivas resultantes do cruzamento dessas variáveis. O uso de um gráfico boxplot representa uma ferramenta visual eficaz para fornecer evidências dessa relação, facilitando a interpretação das diferenças de distribuição do (IMC) entre os diferentes níveis de (Atividade_Fisica) v.
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 baixa (24,8) tendem a ter um IMC mediano um pouco menor do que aqueles com atividade física moderada e alta (25,1).
Dispersão (caixa e bigodes): Indica a variação do IMC em cada grupo.
A atividade física modera (sd=4.560833) 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 (sd=3.185387) 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 em todos os grupos indicando a presença de indivíduos com IMC muito baixo.
Conclusão: O IMC tende ser similar entre indivíduos que praticam atividade física alta e moderada.
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
library(polycor)# 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.006209876
`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).
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_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.
# 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.09718517
#Testando a significancia
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 Bisserial (r_b):", r_b, "\n")
Correlação Bisserial (r_b): 0.09718517
Code
cat("Valor t:", t_value, "\n")
Valor t: 1.187932
Code
cat("Valor-p:", p_value, "\n")
Valor-p: 0.2367631
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 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 bissérico estimado é igual a zero , logo , concluímos que a correlação estimada não é estatisticamente significativa.
Relação entre Variáveis Qualitativa e Qualitativa
Exemplo: Relação entre Fumar e Atividade Física
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 28 22 35
Sim 21 13 31
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.
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: \text{As variáveis Fumar e Atividade Física são independentes.} \]\)
[ H_0: ]
Hipótese Alternativa (H₁): As variáveis “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.
Code
# Teste do Qui-Quadrado para verificar associação entre Fumar e Atividade Físicateste_qui <-chisq.test(tabela_contingencia)teste_qui
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.
Correlação entre Colesterol e Pressão Arterial
Code
library(plotly)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'
`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.1038126
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.
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.99516, p-value = 0.9035
Code
shapiro.test(dados$Pressão_Arterial)
Shapiro-Wilk normality test
data: dados$Pressão_Arterial
W = 0.995, p-value = 0.8902
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 = 6.3596, df = 2, p-value = 0.04159
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 = -1.2698, df = 148, p-value = 0.2062
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.25975257 0.05740398
sample estimates:
cor
-0.1038126
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.025 -0.0451 0.0678 0.0557 ...
..- 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.025 0.0557 -0.0186 -0.025 ...
..- 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.061
..- 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)Correlogram<-ggcorrplot(Rho, type ="upper", lab =TRUE)library(plotly)Correlogram<-ggplotly(Correlogram)Correlogram