Escolar Documentos
Profissional Documentos
Cultura Documentos
campus Cariacica
Bacharelado em Engenharia de Produção – 4º período
Modelos Econômicos e Quantitativos
Prof. Guilherme Guilhermino Neto
Sua dupla ou trio recebeu, além deste arquivo, um conjunto de dados (formato .csv). Leia com atenção
o dicionário de dados, que vem logo a seguir neste texto, para entender o contexto de que vem os
dados. Importe os dados para o RStudio e siga o roteiro abaixo para as análises. Vocês deverão
responder ao que se pede neste arquivo. Ao final, exporte em formato .pdf, com o nome no seguinte
padrão: Prática de laboratório 1 - Nome dos alunos.pdf e envie pelo AVA.
Dicionário de dados
Contexto: Estes dados contém uma amostra de vendas de cerveja em vários dias, em uma área
universitária de São Paulo. Também há dados de variáveis exógenas, que podem estar relacionadas ao
consumo.
365
2 – Comece investigando quais variáveis parecem ter maior correlação com o consumo de cerveja. Para
isso, carregue o pacote corrplot (instale antes, se necessário).
a) Faça a matriz de correlações e utilize o corrplot para mostrá-la graficamente. Cole o gráfico aqui:
b) Quais as variáveis que têm a correlação mais forte e mais fraca com a variável consumo? Quais os
valores seus coeficientes de correlação linear de Pearson? Baseado no coeficiente, estas correlações são
positivas ou negativas? O que isto quer dizer sobre a relação entre as variáveis independente e
dependente?
A mais fortes são entre o consumo e a temp_max, com 0,64. Já a mais fraca é entre o consumo e a
precipitação, com -0,19. Podemos perceber que temos a presença de coeficientes positivos e negativos,
sendo que o positivo indica que quando a temperatura máxima aumenta, o consumo aumenta também,
porém quando a precipitação aumenta, o consumo tende a diminuir.
c) Carregue o esquisse ou o ggplot2 e faça um diagrama de dispersão para a variável que tem a
correlação mais forte (no eixo x), junto com a variável consumo (no eixo y).
3 – Utilize a função lm para ajustar um modelo de regressão linear múltipla para os dados. Trate a
variável consumo como dependente, e todas as outras como independentes. Utilize a função summary no
modelo e cole os resultados abaixo:
Call:
lm(formula = consumo ~ ., data = cerveja)
Residuals:
Min 1Q Median 3Q Max
-4882.4 -1906.5 6.6 1877.8 5425.3
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6444.70 845.04 7.627 2.18e-13 ***
temp_media 30.80 188.00 0.164 0.870
temp_min -19.03 110.36 -0.172 0.863
temp_max 656.00 95.15 6.895 2.44e-11 ***
precipitacao -57.47 10.04 -5.726 2.17e-08 ***
final_de_semana 5183.18 271.01 19.126 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
a) Qual o valor do intercepto? Quais os valores dos coeficientes β1, β2,..., β𝑘 para cada uma das variáveis
O intercepto vale 6444.70. Já os β são: temp_media 30.80; temp_min -19,03; temp_max 656;
precipitacao -57.47.
b) Escolha uma das variáveis e diga, ceteris paribus, o que acontece com o consumo de cerveja quando se
varia em uma unidade para cima o valor desta variável.
Em relação à variável de temperatura máxima, quando ela varia em uma unidade para cima, o
consumo de cerveja aumenta.
c) Qual o valor do coeficiente de determinação (R²) ajustado para este modelo? O que significa esta
medida?
O coeficiente de determinação desse modelo vale 0.7188. Esse valor significa que o modelo tem uma
qualidade de 71,88%.
d) Analise os resultados para os testes de hipóteses para a significância dos coeficientes estimados no
modelo. Para um nível de significância de 5%, para quais variáveis não é possível rejeitar a hipótese de
β𝑘 = 0 (ou seja, quais coeficientes não são estatisticamente significativos)? Dê o valor-𝑝 para estas
As variáveis que possuem coeficientes que não são estatisticamente significativos são as de
temperatura média e de temperatura mínima. Eles possuem, respectivamente, 0.870 e 0.863. Com o
objetivo da análise é obter valores mais próximos da realidade, estes testes nos proporcionam uma
maior assertividade com relação aos objetos de estudos conciliando com análises de predição
tentando descobrir um comportamento.
5 – Agora que você verificou para quais variáveis não se pode confirmar a significância estatística dos
coeficientes por meio dos dados, vamos refazer o modelo.
a) Ajuste um novo modelo, sem as variáveis que você mencionou em 4 - d). Utilize a função summary e
cole os resultados abaixo:
* obs.: se ainda aparecerem variáveis com coeficientes não-significativos, removê-las até encontrar um
modelo somente com variáveis de coeficientes significativos.
Call:
lm(formula = consumo ~ temp_max + precipitacao + final_de_semana,
data = cerveja)
Residuals:
Min 1Q Median 3Q Max
-4892 -1904 10 1868 5495
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6432.085 773.978 8.310 1.96e-15 ***
temp_max 668.543 28.301 23.622 < 2e-16 ***
precipitacao -57.489 9.832 -5.847 1.12e-08 ***
final_de_semana 5184.083 269.998 19.200 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
c) Os resultados condizem com o que você esperava ao analisar a matriz de correlações? Explique.
Sim, pois como esperado, ao retirar variáveis sem significância, a qualidade do modelo aumentou.
d) Agora simule o consumo de cerveja para valores de sua escolha para as variáveis independentes e
utilize a função predict para predizer o consumo de cerveja. Qual foi o resultado?
6 – Após encontrar o modelo, proceda à análise dos resíduos. Siga os passos abaixo:
a) Encontre a média, e mediana e o desvio-padrão para os resíduos. Faça também um histograma. Você
diria que os resíduos parecem seguir o pressuposto de média zero?
Sim, podemos dizer que os resíduos parecem seguir o pressuposto de média zero.
Nossos erros não são aleatórios e não há homogeneidade de variância dos resíduos.
7 – Finalmente, faça uma nova análise exploratória, para aproveitar as informações trazidas do modelo de
regressão. Siga os passos abaixo:
a) Crie uma nova coluna no conjunto de dados com a variável final_de_semana convertida para o
formato factor. Isto será necessário para que o R faça os gráficos que iremos gerar da maneira correta.
Para isso, use o código abaixo (adapte o código para o nome do seu conjunto de dados!):
b) Carregue o pacote esquisse. Para as variáveis que ficaram no modelo, gere gráficos, utilizando as
variáveis independente no eixo x do esquisser, e variável consumo no eixo y. Na caixa color, coloque a
variável que foi criada, final_de_semana_fator. O gráfico será um diagrama de dispersão.
c) Carregue o pacote dplyr. Agrupe os dados (função group_by) pela coluna final_de_semana_fator e
utilize a função summarise para calcular as medianas para a variável consumo. Cole os resultados
abaixo:
final_de_semana_fator Média
<fct> <dbl>
1 0 23998.
2 1 28923.
d) Interprete os resultados dos itens b) e c) e avalie se os resultados que você encontrou parecem fazer
sentido do ponto de vista prático.
###################
#Pacotes
###################
install.packages("corrplot")
install.packages("esquisse")
install.packages("ggplot2")
install.packages("dplyr")
library(corrplot)
library(esquisse)
library(dplyr)
#Gáfico de correlação
M <- cor(cerveja)
corrplot(M, method = "number")
#Coeficiente de Pearson
cor(cerveja$consumo, cerveja$temp_max)
#Gráfico
library(ggplot2)
ggplot(cerveja) +
aes(x = temp_max, y = consumo) +
geom_point(shape = "circle", size = 1.2, colour = "#FF69B4", alpha = 0.5) +
geom_smooth(span = 1L) +
labs(x = "Temperatura Máxima", y = "Consumo") +
theme_minimal()
#Ajuste de modelo
modelo <- lm(formula = consumo ~ ., data = cerveja)
summary(modelo)
#Resíduos
modelo_novo$residuals
hist(modelo_novo$residuals)
mean(modelo_novo$residuals)
sd(modelo_novo$residuals)
plot(modelo_novo)
#Temp_max
library(ggplot2)
ggplot(cerveja) +
aes(x = temp_max, y = consumo, colour = final_de_semana_fator) +
geom_point(shape = "circle",
size = 1.5) +
scale_color_hue(direction = 1) +
theme_minimal()
#Precipitação
library(ggplot2)
ggplot(cerveja) +
aes(x = precipitacao, y = consumo, colour = final_de_semana_fator) +
geom_point(shape = "circle",
size = 1.5) +
scale_color_hue(direction = 1) +
theme_minimal()
#Dplyr
cerveja %>% group_by(final_de_semana_fator) %>% summarise(Média = mean(consumo))