GET00130 - Métodos Computacionais para Estatística II
Conteúdo da aula
- Revisando teste qui-quadrado;
- Revisando ANOVA.
1 - Situação problema 1
Suponha que possuímos dados referentes a nota da satisfação de clientes (pontos) com serviços prestados por taxis e uber na cidade do Rio de Janeiro.
Na base Satisfacao.csv encontramos disponíveis a informação se os usuários utilizam (em sua maioria) táxi ou uber, a nota da satisfação com o serviço (0 - 100), o valor gasto em média (em reais), o sexo do condutor da última viagem e o sexo do entrevistado. Foram selecionados um grupo de 30 pessoas que usam Táxi e 45 pessoas que usam Uber no ano de 2020.
Suponha que desejamos verificar algumas questões levantadas sobre o assunto.
Atividade: Importe o arquivo Satisfacao.csv. Armazene em um objeto chamado satisfacao.
#Visualizando o objeto satisfacao
satisfacao# A tibble: 75 × 5
servico nota sexo valor condutor
<chr> <dbl> <chr> <dbl> <chr>
1 Taxi 67.4 Mulher 22.2 Homem
2 Taxi 65.6 Homem 20.9 Homem
3 Taxi 70.6 Mulher 16.7 Homem
4 Taxi 64.8 Mulher 14.7 Homem
5 Taxi 61.2 Homem 22.4 Homem
6 Taxi 70.2 Mulher 21.5 Homem
7 Taxi 70.7 Homem 22.8 Homem
8 Taxi 64 Mulher 19.1 Homem
9 Taxi 67.4 Mulher 22.3 Homem
10 Taxi 74.6 Mulher 19.3 Homem
# … with 65 more rows
Suponha que desejamos verificar se a satisfação dos usuários depende do tipo de serviço de transporte usado. Serão considerados satisfeitos os indivíduos com pontuação superior a 70.
Qual teste de hipóteses devemos aplicar????
# Visualizando o objeto satisfacao
satisfacao# A tibble: 75 × 5
servico nota sexo valor condutor
<chr> <dbl> <chr> <dbl> <chr>
1 Taxi 67.4 Mulher 22.2 Homem
2 Taxi 65.6 Homem 20.9 Homem
3 Taxi 70.6 Mulher 16.7 Homem
4 Taxi 64.8 Mulher 14.7 Homem
5 Taxi 61.2 Homem 22.4 Homem
6 Taxi 70.2 Mulher 21.5 Homem
7 Taxi 70.7 Homem 22.8 Homem
8 Taxi 64 Mulher 19.1 Homem
9 Taxi 67.4 Mulher 22.3 Homem
10 Taxi 74.6 Mulher 19.3 Homem
# … with 65 more rows
#Avaliando o comportamento dos valores da satisfação em cada grupo
satisfacao = satisfacao |>
mutate(classificacao = if_else(nota > 70, "Sim", "Não"))
#Carregando pacote
library(expss)
#Tabela de contingência frequência absoluta
satisfacao |>
calc_cro_cases(classificacao,servico)| servico | ||
|---|---|---|
| Taxi | Uber | |
| classificacao | ||
| Não | 18 | 7 |
| Sim | 12 | 38 |
| #Total cases | 30 | 45 |
#Tabela de contingência percentual por coluna
satisfacao |>
calc_cro_cpct(classificacao,servico)| servico | ||
|---|---|---|
| Taxi | Uber | |
| classificacao | ||
| Não | 60 | 15.6 |
| Sim | 40 | 84.4 |
| #Total cases | 30 | 45 |
#Gráfico de barras empilhadas
satisfacao |>
ggplot(aes(x = servico, fill = classificacao)) +
geom_bar(position = "fill") +
labs(x = "Serviço", y = "%",fill = "Satisfeito") +
scale_y_continuous(labels = scales::percent_format()) +
theme_minimal()#Realizando o teste de homogeneidade
chisq.test(x = table(satisfacao$servico, satisfacao$classificacao),
correct = FALSE)
Pearson's Chi-squared test
data: table(satisfacao$servico, satisfacao$classificacao)
X-squared = 16, df = 1, p-value = 6.334e-05
Sempre deixem claro as hipóteses de cada teste realizado!
Conclusão para cada etapa da análise??
2 - Situação problema 2
Suponha que possuímos dados referentes ao valor gasto com lazer por famílias nas cidades do Rio de Janeiro, Niterói e São Paulo.
Suponha também que desejamos verificar se o gasto médio com lazer nas três cidades são iguais. Como realizar a análise mais completa possível?
Atividade: Importe o arquivo Gasto lazer.csv. Armazene em um objeto chamado gasto.
#Visualizando o objeto gasto
gasto# A tibble: 85 × 2
cidade gasto_lazer
<chr> <dbl>
1 Rio de Janeiro 143.
2 Rio de Janeiro 149.
3 Rio de Janeiro 154.
4 Rio de Janeiro 151.
5 Rio de Janeiro 165
6 Rio de Janeiro 152
7 Rio de Janeiro 159.
8 Rio de Janeiro 161.
9 Rio de Janeiro 160.
10 Rio de Janeiro 142
# … with 75 more rows
#Criando um tibble somente com as informações da população 1
gastoR = gasto |>
filter(cidade == "Rio de Janeiro")
#Criando um tibble somente com as informações da população 2
gastoN = gasto |>
filter(cidade == "Niteroi")
#Criando um tibble somente com as informações da população 3
gastoS = gasto |>
filter(cidade == "Sao Paulo")
#Carregando pacote
library(ggpubr)
#Criando um qq-plot com o ggpubr para a população 1
qq1 = ggqqplot(gastoR$gasto_lazer)
#Criando um qq-plot com o ggpubr para a população 2
qq2 = ggqqplot(gastoN$gasto_lazer)
#Criando um qq-plot com o ggpubr para a população 3
qq3 = ggqqplot(gastoS$gasto_lazer)
#Carregando pacote
library(gridExtra)
#Plotando os qqplots
grid.arrange(qq1, qq2, qq3, ncol = 2)#Teste de normalidade
shapiro.test(x = gastoR$gasto_lazer)
Shapiro-Wilk normality test
data: gastoR$gasto_lazer
W = 0.98358, p-value = 0.9106
shapiro.test(x = gastoN$gasto_lazer)
Shapiro-Wilk normality test
data: gastoN$gasto_lazer
W = 0.96659, p-value = 0.4505
shapiro.test(x = gastoS$gasto_lazer)
Shapiro-Wilk normality test
data: gastoS$gasto_lazer
W = 0.9849, p-value = 0.9621
#Avaliando estimativas pontuais nas populações
gasto |>
group_by(cidade) |>
summarise(medias = mean(gasto_lazer, na.rm = TRUE),
desvio = sd(gasto_lazer, na.rm = TRUE))# A tibble: 3 × 3
cidade medias desvio
<chr> <dbl> <dbl>
1 Niteroi 150. 8.46
2 Rio de Janeiro 150. 10.3
3 Sao Paulo 196. 13.1
#Comparando os grupos graficamente
ggplot(data = gasto, aes(x = cidade, y = gasto_lazer)) +
geom_boxplot() +
ylab("Gasto (em reais)") +
theme_classic()#Carregando o pacote
library(DescTools)
#Realizando o teste de comparação das variâncias
LeveneTest(y = gasto$gasto_lazer,
group = gasto$cidade,
center = "mean")Levene's Test for Homogeneity of Variance (center = "mean")
Df F value Pr(>F)
group 2 2.3748 0.09941 .
82
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Realizando o teste de comparação das médias
comp = aov(formula = gasto_lazer ~ cidade,
data = gasto)
#Visualizando o resultado
summary(comp) Df Sum Sq Mean Sq F value Pr(>F)
cidade 2 37378 18689 166.1 <2e-16 ***
Residuals 82 9228 113
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Realizando o teste de Tuckey
TukeyHSD(x = comp) Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = gasto_lazer ~ cidade, data = gasto)
$cidade
diff lwr upr p adj
Rio de Janeiro-Niteroi -0.52 -7.058221 6.018221 0.980332
Sao Paulo-Niteroi 45.76 38.902656 52.617344 0.000000
Sao Paulo-Rio de Janeiro 46.28 39.422656 53.137344 0.000000
Sempre deixem claro as hipóteses de cada teste realizado!
Conclusão para cada etapa da análise??