R Markdown

Este é um documento produzido com R Markdown para fins pedagógicos com a turma de Métodos quantitativos aplicados à Administração, turma 2021.2 da EAUFBA.

Markdown é uma síntaxe para autoria de documentos em diversos formatos. Para mais detalhes veja http://rmarkdown.rstudio.com.

Para criar um novo documento, basta ir em File -> New File -> RMarkdown

O script alterna áreas de código (code chunk) e áreas de texto

Para inserir um code chunk, use Ctrl+Alt+l

Quando você clica em Knit um documento é gerado incluindo todos os conteúdos

Fontes primárias do RMarkdown https://bookdown.org/yihui/rmarkdown/installation.html e https://bookdown.org/yihui/rmarkdown-cookbook/

As demais fontes são o próprio R e os pacotes utilizados

# Para citar pacotes, basta adicionar o nome do pacote nos parênteses
# com aspas
citation()
## 
## To cite R in publications use:
## 
##   R Core Team (2021). R: A language and environment for statistical
##   computing. R Foundation for Statistical Computing, Vienna, Austria.
##   URL https://www.R-project.org/.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {R: A Language and Environment for Statistical Computing},
##     author = {{R Core Team}},
##     organization = {R Foundation for Statistical Computing},
##     address = {Vienna, Austria},
##     year = {2021},
##     url = {https://www.R-project.org/},
##   }
## 
## We have invested a lot of time and effort in creating R, please cite it
## when using it for data analysis. See also 'citation("pkgname")' for
## citing R packages.

Análise com códigos

o arg. echo = FALSE é adicionado a um chunk para prevenir que o código seja impresso no arquivo de saída.

Teste t de uma amostra

# Média real = 40
# I.C padrão é de 95%
t.test(lotes, mu=40)
## 
##  One Sample t-test
## 
## data:  lotes
## t = -1.1026, df = 24, p-value = 0.2811
## alternative hypothesis: true mean is not equal to 40
## 95 percent confidence interval:
##  32.5334 42.2666
## sample estimates:
## mean of x 
##      37.4

Como reportar

A significância da diferença entre os lotes encomendados pela rede varejista vs. O valor previsto estimado para o período foi avaliada através de um teste t-Student para uma amostra. Conta com 25 observações.

As hipóteses testadas foram:

Hipótese nula: a média do número de encomendas é igual ao número de encomendas previsto e igual a 40.

Hipótese alternativa: a média do número de encomendas é diferente do número de encomendas previsto e igual a 40.

Com o auxílio do R e R-Studio para executar os testes estatísticos, considerou-se que não há diferença significativa entre a média da amostra e a média hipotética prevista para o estudo, cujo valor-p foi superior a 0,05.

A média do número de encomendas foi de 37,4. A média prevista de encomendas foi de 40. De acordo com os resultados do teste t-Student apresentado, as diferenças observadas entre a média da amostra e o valor previsto não são estatisticamente significativas (t (24) = -1,10; p = 0,281). A dimensão da diferença foi de 2,36 lotes encomendados. Sendo assim, a rede varejista pode continuar utilizando 40 como a média de lotes a serem encomendados.

Teste t para duas amostras independentes

#resultados descritivos
tabela <- group_by(fatores, Fator_clientes) 
descritivo <- summarise(tabela,
  Media = mean(Clientes, na.rm=TRUE),
  sd = sd(Clientes, na.rm=TRUE),
  Mediana = median(Clientes),
  CV = sd/Media,
  Assimetria = skew(Clientes),
  Curtose = kurtosi(Clientes))
descritivo %>%
  kbl() %>%
  kable_styling()
Fator_clientes Media sd Mediana CV Assimetria Curtose
Emocional 7.552500 1.1356261 7.73 0.1503643 -0.2566082 -0.7648432
Cognitivo 8.452857 0.8423541 8.42 0.0996532 0.1501955 -1.4512193
#Com amostras pareadas, basta adicionar o arg. paired=T
leveneTest(Clientes ~ Fator_clientes, data = fatores)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  1   0.405 0.5297
##       28
t.test(Clientes ~ Fator_clientes, data = fatores)
## 
##  Welch Two Sample t-test
## 
## data:  Clientes by Fator_clientes
## t = -2.4849, df = 27.328, p-value = 0.01937
## alternative hypothesis: true difference in means between group Emocional and group Cognitivo is not equal to 0
## 95 percent confidence interval:
##  -1.6433881 -0.1573262
## sample estimates:
## mean in group Emocional mean in group Cognitivo 
##                7.552500                8.452857

Como reportar

A significância da diferença entre a avaliação em notas de 1 a 10 para as abordagens de atendimento Cognitivo vs. atendimento Emocional foi avaliada através de um teste t-Student para amostras independentes. Conta com uma amostra de 30 clientes.

As hipóteses testadas foram:

Hipótese nula: as notas de atendimento não diferem entre os grupos de abordagens Cognitivo e Emocional.

Hipótese alternativa: as notas de atendimento diferem significativamente entre os grupos de abordagens Cognitivo e Emocional.

Os pressupostos desse método estatístico, nomeadamente as normalidades das distribuições e a homogeneidade de variâncias nos dois grupos foram avaliados, respectivamente, com a avaliação de assimetria e curtose e com o teste de Levene. Os valores de assimetria e curtose se mantiveram abaixo de 3 em módulo, demonstrando robustez quanto a violação do pressuposto de normalidade. O teste de Levene, baseado na mediana, obteve (F = 0,40 e p = 0,52), indicando que são assumidas as variâncias iguais entre os grupos. Com o auxílio do R e R-Studio para executar os testes estatísticos, considerou-se que há diferenças significativas entre as médias dos grupos, cujo valor-p do teste foi inferior a 0,05.

Os clientes que receberam o atendimento com abordagem cognitiva avaliaram em média com nota = 8,45, em uma escala de 0 a 10. Os clientes que receberam a abordagem emocional no atendimento, avaliaram em média = 7,55. De acordo com os resultados do teste t-Student apresentado, as diferenças observadas entre as abordagens de atendimento são estatisticamente significativas (t (28) = -2,48; p = 0,019).

A dimensão da diferença foi de 0,9 e de acordo com o intervalo de confiança a 95% (0,15; 1,64) os clientes que recebem atendimento com abordagem cognitiva tendem a dar notas maiores de 0,15 a 1,64 pontos a mais do que os clientes que recebem um atendimento com abordagem emocional.

ANOVA

# variável resposta Y = Tempo
# Variável explicativa X = Maternidade

#resultados descritivos
tabela <- group_by(mater, Maternidade) 
descritivo <- summarise(tabela,
  Media = mean(Tempo, na.rm=TRUE),
  sd = sd(Tempo, na.rm=TRUE),
  Mediana = median(Tempo),
  CV = sd/Media,
  Assimetria = skew(Tempo),
  Curtose = kurtosi(Tempo))
descritivo %>%
  kbl() %>%
  kable_styling()
Maternidade Media sd Mediana CV Assimetria Curtose
Alf.Costa 5.4 1.837873 5.0 0.3403469 0.1430429 -0.2623234
Amad.Sintra 5.7 1.567021 5.5 0.2749160 0.4459566 -0.0881561
Stefania 7.4 1.776388 7.5 0.2400525 -0.6550718 -1.0594386
#Gráfico para comparar as médias entre os grupos
grupos <- group_by(mater, Maternidade) 
plot.data <- summarise(grupos,
  Media = mean(Tempo, na.rm=TRUE),
  sd = sd(Tempo, na.rm=TRUE),
  n = n(),
  se=sd/sqrt(n),
  ci = qt(0.975, df=n-1)*se)
ggplot(plot.data, aes(x=Maternidade, y=Media, group = factor(1))) +
  geom_line() +
  geom_point() + 
  geom_errorbar(aes(ymin=Media-ci, ymax=Media+ci), width=.1) +
  ggtitle("Gráfico de médias de Tempo por Maternidade")

leveneTest(Tempo ~ Maternidade, data = mater)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2  0.1707  0.844
##       27
# 1° forma com lm
modelo.anova <- lm(Tempo ~ Maternidade, data = mater)
anova(modelo.anova)
## Analysis of Variance Table
## 
## Response: Tempo
##             Df Sum Sq Mean Sq F value  Pr(>F)  
## Maternidade  2 23.267 11.6333  3.8826 0.03296 *
## Residuals   27 80.900  2.9963                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 2° forma com aov
modelo.anova2 <- aov(Tempo ~ Maternidade, data=mater)

#Calculando médias e erro padrão
medias <- with(mater, tapply(Tempo, Maternidade,mean))
erro <- with(mater, tapply(Tempo, Maternidade, function(x) sqrt(var(x)/length(x))))
medias
##   Alf.Costa Amad.Sintra    Stefania 
##         5.4         5.7         7.4
erro
##   Alf.Costa Amad.Sintra    Stefania 
##   0.5811865   0.4955356   0.5617433
# Teste de Tukey
TukeyHSD(modelo.anova2)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Tempo ~ Maternidade, data = mater)
## 
## $Maternidade
##                       diff         lwr      upr     p adj
## Amad.Sintra-Alf.Costa  0.3 -1.61936279 2.219363 0.9207923
## Stefania-Alf.Costa     2.0  0.08063721 3.919363 0.0398591
## Stefania-Amad.Sintra   1.7 -0.21936279 3.619363 0.0900096
#Contrastes
c1 <- c(1,-2,1)
c2 <- c(1,1,-2)
cont <- cbind(c1,c2)
#tendo mais contrastes, basta junta-los com cbind
contrasts(mater$Maternidade) <- cont
modelo.anova2 <- aov(Tempo ~ Maternidade, data=mater)
summary.aov(modelo.anova2, split=list(Maternidade=list("Centro x Interior"=1, "Alf.Costa+Amad.Sintra x Stefania"=2)))
##                                                 Df Sum Sq Mean Sq F value
## Maternidade                                      2  23.27  11.633   3.883
##   Maternidade: Centro x Interior                 1   3.27   3.267   1.090
##   Maternidade: Alf.Costa+Amad.Sintra x Stefania  1  20.00  20.000   6.675
## Residuals                                       27  80.90   2.996        
##                                                 Pr(>F)  
## Maternidade                                     0.0330 *
##   Maternidade: Centro x Interior                0.3057  
##   Maternidade: Alf.Costa+Amad.Sintra x Stefania 0.0155 *
## Residuals                                               
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#gráficos do modelo ANOVA
plot(modelo.anova)

Como reportar

Para avaliar se a maternidade influencia no tempo que os bebês demoram para pegar no sono, recorreu-se a uma ANOVA one-way seguida de um teste post-hoc de Tukey. Adicionalmente, foi realizado um contraste buscando verificar as diferenças de médias entre as maternidades do centro (Alf. Costa e Stefânia) e a maternidade do subúrbio (Amad. Sintra). O estudo conta com 30 observações.

As hipóteses do estudo são:

Hipótese nula: as médias do tempo que os bebês demoram para adormecer são iguais entre as maternidades.

Hipótese alternativa: as médias do tempo que os bebês demoram para adormecer são diferentes em pelo menos um par de maternidades.

Os pressupostos desse método estatístico, nomeadamente as normalidades das distribuições e a homogeneidade de variâncias nos três grupos foram avaliados, respectivamente, com a avaliação de assimetria e curtose e com o teste de Levene. Os valores de assimetria se mantiveram abaixo de 3 em módulo, demonstrando robustez quanto a violação do pressuposto de normalidade.

O teste de Levene, baseado na mediana, obteve (F = 0,17 e p = 0,83), indicando que são assumidas as variâncias iguais entre os grupos. Com o auxílio do R e Rstudio para executar os testes estatísticos, considerou-se que há diferenças significativas entre as médias dos grupos, cujo valor-p do teste foi inferior a 0,05.

Sobre o tempo que os bebês demoram para adormecer, a maternidade Alf. Costa (média = 5,40; sd = 1,84; n = 10) apresentou os menores tempos, seguida da Amad. Sintra (média = 5,70; sd = 1,57; n = 10) e pela Stefânia (média = 7,40; sd = 1,78; n = 10). O teste ANOVA indicou que em pelo menos um par de maternidades, há diferença entre grupos (F = 3,88, p = 0,033).

Ao avaliar o teste de Tukey, foi obtida uma significância abaixo de 0,05 na relação entre Stefânia e Alt. Costa (Diferença de média = 2; p = 0,04). Com um intervalo de confiança a 95% (0,08; 3,92), a diferença de médias pode variar de 0,08 até 3,92 minutos a mais na maternidade Stefânia, quando comparada a Alf. Costa.

Na análise de contraste, a hipótese nula não pôde ser rejeitada (F = 1,09; p = 0,306), indicando que não há evidências de que há diferenças nos tempos entre as maternidades do centro e do subúrbio. É sugerido para os pesquisadores que busquem isolar outras variáveis para compreender os motivos que levam a maternidade Stefânia a ter tempos maiores, haja visto que não influência entre maternidades de centro e de subúrbio.

Gráfico de resíduos O gráfico (Residual vs. Fitted) mostra indícios sobre o comportamento da variância dos resíduos com relação aos valores ajustados, sendo ideal para analisar a presença de não-linearidades no modelo. Nesse caso, nosso modelo é linear.

Gráficos dos resíduos padronizados O gráfico Q-Q dos resíduos padronizados, é usado para verificação da normalidade dos resíduos. No nosso caso, tomamos como hipótese nula a normalidade dos resíduos.

Gráfico de scale location

O gráfico (Scale-Location) serve para indicar a distribuição de pontos no intervalo de valores previstos. A variação deve ser razoavelmente igual em todo o intervalo do preditor.

Gráfico constante de leverage

O gráfico (constante de Leverage) pode ser útil para detectar a presença de pontos influenciantes. No nosso caso, não temos presença de infuenciadores, umas vez que a linha vermelha, a qual indica essa presença, tem como valor de resíduo igual a zero.