GET00130 - Métodos Computacionais para Estatística II
Conteúdo da aula
- Revisando teste de hipóteses para a variância, média e proporção de duas populações.
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 nosso objetivo inicial, seja verificar a afirmação de que a satisfação média dos passageiros do Uber é maior do que a satisfação média dos passageiros de Táxi. Vamos realizar a análise mais completa possível.
#Avaliando o comportamento dos valores da satisfação em cada grupo
ggplot(data = satisfacao, aes(y = nota, x = servico)) +
geom_boxplot() +
theme_minimal() +
labs(y = "Nota",
x = "Serviço")#Obtendo descritivas interessantes
satisfacao |>
group_by(servico) |>
summarise(media = mean(nota, na.rm = TRUE),
desvio = sd(nota, na.rm = TRUE))# A tibble: 2 × 3
servico media desvio
<chr> <dbl> <dbl>
1 Taxi 68.4 3.71
2 Uber 78.8 8.30
#Carregando pacote
library(ggpubr)
#Selecionando somente os usuários do Táxi
satisfacaoT = satisfacao |>
filter(servico == "Taxi")
#Selecionando somente os usuários do Uber
satisfacaoU = satisfacao |>
filter(servico == "Uber")
#Verificando normalidade dos dados
qq1 = ggqqplot(satisfacaoT$nota)
qq2 = ggqqplot(satisfacaoU$nota)
#Carregando pacote
library(gridExtra)
#Plotando os qq-plots
grid.arrange(qq1,qq2,ncol=2)#Testando normalidade
shapiro.test(satisfacaoT$nota)
Shapiro-Wilk normality test
data: satisfacaoT$nota
W = 0.97677, p-value = 0.7347
shapiro.test(satisfacaoU$nota)
Shapiro-Wilk normality test
data: satisfacaoU$nota
W = 0.98741, p-value = 0.9008
#Carregando o pacote
library(DescTools)
#Realizando o teste de comparação das variâncias
VarTest(x = satisfacaoT$nota,
y = satisfacaoU$nota,
alternative = "two.sided",
ratio = 1,
conf.level = 0.95)
F test to compare two variances
data: x and y
F = 0.19905, num df = 29, denom df = 44, p-value = 1.782e-05
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.1038393 0.3999522
sample estimates:
ratio of variances
0.1990511
#Obtendo uma estimativa pontual e uma intervalar
library(Publish)
ci.mean(x = nota ~ servico,
data = satisfacao,
alpha = 0.05) servico mean CI-95%
Taxi 68.39 [67.01;69.78]
Uber 78.83 [76.33;81.32]
#Realizando o teste de hipóteses
t.test(x = satisfacaoT$nota,
y = satisfacaoU$nota,
mu = 0,
var.equal = FALSE,
alternative = "less")
Welch Two Sample t-test
data: satisfacaoT$nota and satisfacaoU$nota
t = -7.3956, df = 65.357, p-value = 1.68e-10
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
-Inf -8.079478
sample estimates:
mean of x mean of y
68.39333 78.82667
Sempre deixem claro as hipóteses de cada teste realizado!
Conclusão para cada etapa da análise??
Atividade: Verifique se o gasto médio com táxi e uber são semelhantes. Faça a análise mais completa possível.
2 - Situação problema 2
Suponha que um passageiro é considerado satisfeito com o serviço se sua pontuação é superior a 70. É razoável afirmar que a proporção de clientes satisfeitos nos dois serviços é a mesma?
#Carregando pacote
library(expss)
#Criando a variável cliente_satisfeito
satisfacao = satisfacao |>
mutate(cliente_satisfeito = if_else(nota > 70, 1, 0))
#Visualizando os dados
satisfacao# A tibble: 75 × 6
servico nota sexo valor condutor cliente_satisfeito
<chr> <dbl> <chr> <dbl> <chr> <dbl>
1 Taxi 67.4 Mulher 22.2 Homem 0
2 Taxi 65.6 Homem 20.9 Homem 0
3 Taxi 70.6 Mulher 16.7 Homem 1
4 Taxi 64.8 Mulher 14.7 Homem 0
5 Taxi 61.2 Homem 22.4 Homem 0
6 Taxi 70.2 Mulher 21.5 Homem 1
7 Taxi 70.7 Homem 22.8 Homem 1
8 Taxi 64 Mulher 19.1 Homem 0
9 Taxi 67.4 Mulher 22.3 Homem 0
10 Taxi 74.6 Mulher 19.3 Homem 1
# … with 65 more rows
#Obtendo as quantidades necessárias para alimentar a função prop.test
resultados = satisfacao |>
group_by(servico) |>
summarise(N = n(),
favoraveis = sum(cliente_satisfeito),
proporcao = favoraveis/N)
#Visualizando o objeto criado
resultados# A tibble: 2 × 4
servico N favoraveis proporcao
<chr> <int> <dbl> <dbl>
1 Taxi 30 12 0.4
2 Uber 45 38 0.844
#Realizando o teste de igualdade de proporções
prop.test(x = c(resultados$favoraveis[1], resultados$favoraveis[2]),
n = c(resultados$N[1],resultados$N[2]),
alternative = "two.sided",
conf.level = 0.95,
correct = FALSE)
2-sample test for equality of proportions without continuity
correction
data: c(resultados$favoraveis[1], resultados$favoraveis[2]) out of c(resultados$N[1], resultados$N[2])
X-squared = 16, df = 1, p-value = 6.334e-05
alternative hypothesis: two.sided
95 percent confidence interval:
-0.6492496 -0.2396393
sample estimates:
prop 1 prop 2
0.4000000 0.8444444