alt text

GET00130 - Métodos Computacionais para Estatística II

Jony Arrais Pinto Junior

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??