Tópico Especial – INTRODUÇÃO À ESTATÍSTICA PARA ESTUDOS URBANOS

Aula 2

Prof. Responsável: Prof. Dr. Júlio Celso Borello Vargas

August 22, 2023

Para acompanhar a aula, instalar o R e o Rstudio aqui ou usar o R na nuvem aqui.

Serão utilizados os pacotes ggcorrplot, MASS e ggplot2.

Use os comandos:

#install.packages('ggcorrplot')
#install.packages('MASS')
#install.packages('ggplot2')

library(ggcorrplot)
library(MASS)
library(ggplot2)

Serão usados os bancos de dados “sleep”, “warpbreaks”, “mtcars” e “nlschools”, que já vem na versão default do R, com exceção ao último, que é do pacote MASS.

banco1 = sleep

banco2 = warpbreaks

banco3 = nlschools

banco4 = mtcars

#Para mais detalhes de cada banco, digitar no console ?'nome_do_banco'. Por exemplo:

#?mtcars

#E para visualizá-lo:
#View(mtcars)

TESTE de associação (paramétrico) com dados NUMÉRICOS

  1. Comparando valores (“parâmetros”) ENTRE GRUPOS DA MESMA VARIÁVEL (ou seja, associação com uma variável CATEGÓRICA).

Para verificar se as MÉDIAS diferem significativamente entre DOIS grupos conferimos se o valor-p é menor ou igual ao nível de significância, rejeitando a hipótese nula e concluindo que nem todas as médias são iguais.

TRADUZINDO: existe diferença entre as médias com 95% de probabilidade de ser “verdade”.

A função “with” usa um banco de dados para algum cálculo.

t_pareado = with(banco1, t.test(extra[group == 1],
            extra[group == 2], paired = TRUE))
t_pareado
## 
##  Paired t-test
## 
## data:  extra[group == 1] and extra[group == 2]
## t = -4.0621, df = 9, p-value = 0.002833
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -2.4598858 -0.7001142
## sample estimates:
## mean difference 
##           -1.58

Para verificar se as MÉDIAS diferem significativamente entre DOIS OU MAIS grupos conferimos se o valor-p é menor ou igual ao nível de significância, rejeitando a hipótese nula e concluindo que nem todas as médias são iguais.

TRADUZINDO: existe diferença entre as médias com 95% de probabilidade de ser “verdade”.

Para funções que criam modelos, é comum a sintaxe que envolve utilizar ~ entre as variáveis, nesse caso, a variável “breaks” é numérica, enquanto “tension” é categórica.

modelo = aov(breaks~tension, data = banco2)

TukeyHSD(modelo, conf.level=.95) 
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = breaks ~ tension, data = banco2)
## 
## $tension
##           diff       lwr        upr     p adj
## M-L -10.000000 -19.55982 -0.4401756 0.0384598
## H-L -14.722222 -24.28205 -5.1623978 0.0014315
## H-M  -4.722222 -14.28205  4.8376022 0.4630831
plot(TukeyHSD(modelo, conf.level=.95), las = 1)

Interpretamos o gráfico reparando que o intervalo de H-M contém o valor 0, ou seja, é condizente com o p-valor encontrado (maior que 0,05). Isso quer dizer que não há diferença significativa entre a média das tensões e não rejeitamos a hipótese nula.

  1. Comparando parâmetros com OUTRA VARIÁVEL NUMÉRICA (contínua, preferencialmente).

FINALMENTE APARECE A FAMOSA CORRELAÇÃO!

O parâmetro “method” seleciona o tipo de teste. Nesse caso, Pearson.

pearson = cor.test(banco4$drat, banco4$wt, method='pearson')
pearson
## 
##  Pearson's product-moment correlation
## 
## data:  banco4$drat and banco4$wt
## t = -5.5608, df = 30, p-value = 4.784e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.8499795 -0.4839784
## sample estimates:
##        cor 
## -0.7124406

No caso da correlação de Pearson, o próprio R retorna o resultado do teste. A partir das variáveis acima, obtemos um p-valor menor que 0,05 e concluímos que a correlação é diferente de 0, rejeitando a hipótese nula.

O parâmetro “method” seleciona o tipo de teste. Nesse caso, Spearman

spearman = cor.test(banco3$IQ, banco3$SES, method='spearman')

spearman
## 
##  Spearman's rank correlation rho
## 
## data:  banco3$IQ and banco3$SES
## S = 1392181818, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.3016891

Interpretação análoga à correlação de Pearson.

O coeficiente mostra a FORÇA da correlação, (-1 a +1), o sinal mostra a direção da correlação (positiva/direta ou negativa/indireta) e o valor-p mostra a significância do resultado, considerando o nível especificado.

CORRELAÇÃO (“bivariada”)

Podemos plotar o GRÁFICO DE DISPERSÃO (“scattergram”) para observar o resultado.

ggplot(data = banco4, aes(drat, wt)) + geom_point(size = 3) + theme_light() + ggtitle('Gráfico de dispersão') + theme(plot.title = element_text(hjust = 0.5))

Podemos plotar mais de um gráfico ao mesmo tempo (correlação entre duas ou mais variáveis entre si) por meio de uma matriz de dispersão ou plotar um CORRELOGRAMA, que sintetiza em cores a força e o sinal das correlações. Podemos ainda plotar os gráficos de dispersão POR GRUPOS, verificando a correlação entre duas variáveis contínuas em cada classe/nível definida por uma variável CATEGÓRICA.

Correlograma envolvendo todas variáveis do “banco4”:

correlograma = cor(banco4)

ggcorrplot(correlograma, method = 'square', ggtheme = theme_classic(), outline.color = 'black', title = 'Correlograma do "banco4"', colors = c('red', 'white', 'blue')) + theme(plot.title = element_text(hjust = 0.5))

Por fim, podemos plotar o gráfico com a LINHA DE TENDÊNCIA (linear, quadrática ou cúbica, em geral), mas, nesse caso, já estamos definindo quem é o “X” e quem é o “Y”, o que nos leva à outra técnica “celebridade”: a REGRESSÃO