Ciência da Computação - UFCG

Professor: Gilberto S. Matos

Alunos:

    Gabriel de Lacerda Brandão            Matrícula: 118210853
    
    Guilherme de Melo Carneiro            Matrícula: 118210938
    
    Matheus Silva Medeiros                Matrícula: 117110412
    
    Sheila Maria Mendes Paiva             Matrícula:  118210186

Trabalho Avaliativo - Análise de Correlação, Regressão Linear Simples e Múltipla.

Questão 1) [1 ponto]

Para você, qual é ou são os objetivos de uma análise de correlação e de regressão linear? Existe alguma diferença entre estas análises? Exemplifique.

Uma correlação é a relação vigente entre duas variáveis, sendo a primeira tida como dependente e a outra tida como independente. A análise da correlação tem como objetivo atestar se há uma relação de dependência significativa entre duas variáveis, e isso é feito através do coeficiente de correlação, que vai de -1 a 1 e indica desde uma correlação linear negativa, quanto positiva, ou nenhuma correlação.

Como exemplo em que se pode utilizar do princípio de correlação, tem-se um inspetor de segurança que deseja saber se existe ligação entre o número de horas de treinamento de um funcionário que trabalha em redes de energia elétrica, e o número de acidentes envolvendo esse funcionário. Caso haja correlação linear positiva, quer dizer que quanto mais horas de treinamento se gasta com funcionários, mais acidentes eles sofrerão, e caso haja correlação linear negativa, quer dizer que quanto mais horas de treinamento se gasta com funcionários, menos acidentes eles sofrerão, o que faz mais sentido. Nessa situação, a variável independente é a quantidade de horas de treinamento para o funcionário, e a variável dependente é o número de acidentes.

Já a análise de regressão linear pode ser feita com mais acurácia após a testagem e garantia de que haja correlação linear entre as duas variáveis. A regressão linear se trata de encontrar a reta que melhor modela, compensando-se os resíduos, a correlação entre as variáveis envolvidas, e essa reta pode ser utilizada para fazer previsões de valores da variável dependente a partir de valores da variável independente. O mesmo exemplo sobre o treinamento de funcionários que trabalham em redes de energia elétrica e o número de acidentes sofridos por eles valem também para a regressão linear, no qual a diferença para a análise de correlação seria que a “saída” da regressão linear seria uma função que expressaria da melhor maneira a relação entre os valores das variáveis envolvidas.

Para concluir, a análise de correlação junto com a regressão linear têm por objetivo maior inferir se há relação entre duas variáveis com base em um conjunto de dados anterior, e com base nessa inferência, caso positiva para que haja de fato relação, seja possível obter uma função que relaciona uma variável a outra para que se possa prever valores futuros para a variável dependente com base em valores da variável independente. A diferença entre a correlação e regressão linear é que a 2ª obtém uma função da relação que melhor a expressa, enquanto que a 1ª indica se há relação.

Questão 2) [3 pontos]

A partir dos dados contidos na planilha “preco-de-imoveis.xls” em anexo, desenvolva e des- creva uma an ́alise de correlação e regressão linear com as devidas interpretações praticas dos resultados obtidos. A regressão a ser utilizada aqui é do tipo linear simples ou múltipla? Por quê?

if(!require(pacman)) install.packages("pacman")
## Loading required package: pacman
library(pacman)

pacman::p_load(dplyr, ggplot2, car, rstatix, lmtest, ggpubr, QuantPsyc, psych, scatterplot3d)

library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last

Carregando os Dados

dados2 = fread("/cloud/project/data/precodeimoveisbr1.csv") 
dados2

Coeficiente de Correlação

cor(dados2$preco, dados2$pesquadrados)
## [1] 0.7488442

Ao analisar o valor da correlação = 0.74, podemos dizer que temos uma correlação positiva, já que o valor do coeficiente de correlação é positivo e que temos uma correlação forte, pois está proximo de 1.

Verificação dos pressupostos para regressão linear

A regressão a ser utilizada para solucionar a questão é a linear simples, visto que só contém uma variável independente e uma dependente, no caso em questão as variáveis são preço e pesquadrados.

Variável independente: preço Variável dependente: pesquadrados

plot(dados2$preco, dados2$pesquadrados)

Ao observar o gráfico, podemos perceber que não é uma relação perfeitamente linear, mas ela é uma relação aproximadamente linear.

Construção do modelo

mod2 <- lm(pesquadrados ~ preco, dados2)

Análise gráfica

par(mfrow=c(2,2))
plot(mod2)

Normalidade dos resíduos

shapiro.test(mod2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod2$residuals
## W = 0.99185, p-value = 0.2812

Temos o valor de p como maior que 5% considerando o teste de Shapiro, então nesse caso não vamos rejeitar a hipótese nula. Vamos considerar que a distribuição é aproximadamente normal.

Outliers nos resíduos

summary(rstandard(mod2))
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
## -2.8573244 -0.7336940 -0.0932756 -0.0006217  0.7417273  2.5923929

Independência dos resíduos (Durbin-Watson)

durbinWatsonTest(mod2)
##  lag Autocorrelation D-W Statistic p-value
##    1        0.378915      1.171968       0
##  Alternative hypothesis: rho != 0

Homocedasticidade (Breusch-Pagan)

bptest(mod2)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod2
## BP = 2.0842, df = 1, p-value = 0.1488

Análise do modelo

summary(mod2)
## 
## Call:
## lm(formula = pesquadrados ~ preco, data = dados2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -378.77  -96.84  -12.36   98.24  343.61 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 7.934e+02  6.167e+01   12.87   <2e-16 ***
## preco       1.219e-02  7.427e-04   16.41   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 132.9 on 211 degrees of freedom
## Multiple R-squared:  0.5608, Adjusted R-squared:  0.5587 
## F-statistic: 269.4 on 1 and 211 DF,  p-value: < 2.2e-16

Nesse caso, o valor de p foi menor que 5%, como ele foi menor que 5% vamos rejeitar a hipótese nula e vamos ficar com a hipótese alternativa. Portanto, o coeficiente é diferente de 0 e ele pode ser interpretado e tem um impacto sobre a variável dependente.

Gráfico de dispersão

ggplot(data = dados2, mapping = aes(x = pesquadrados, y = preco)) + geom_point() + geom_smooth(method = "lm", col = "red") + stat_regline_equation(aes(label = paste(..eq.label.., ..adj.rr.label.., sep = "*plain(\".\")~~")), label.x = 1200, label.y = 50000) +
theme_classic()
## `geom_smooth()` using formula 'y ~ x'

### Conclusão

O preço do imovel esta associado ao seu tamanho em pś quadrados. O valor do imovel aumenta conforme o tamanho em pés quadrados aumenta, como moctrado nas análises.

Questão 3) [4 pontos]

Assista ao vídeo “https://www.youtube.com/watch?v=4YLOwyxhxo” sobre como realizar uma regressão linear multipla no R e em seguida utilizando os dados contidos na planilha “faturamento-hamburguer-fast-food.xls” em anexo, desenvolva e descreva uma análise de correlação e regressão linear multipla com as devidas interpretações praticas dos resultados obtidos. Considere adicionalmente alguns valores para as vari ́aveis explicativas e faça previsões para o faturamento da empresa. Sempre apresente as devidas interpretações.

Carregando os Dados

dados3 = fread("/cloud/project/data/faturamento-hamburguer-fast-food-table7.csv")
dados3

Coeficiente de Correlação

Variável independente: faturamento Variáveis dependentes: pesquisa e propaganda

Faturamento em relação a pesquisa

cor(dados3$faturamento, dados3$pesquisa)
## [1] -0.01405752

Ao analisar o valor da correlação = -0.014, podemos dizer que temos uma correlação negativa, já que o valor do coeficiente de correlação é negativo e que temos uma correlação fraca, pois está distante de 1.

Faturamento em relação a propaganda

cor(dados3$faturamento, dados3$propaganda)
## [1] 0.9248428

Ao analisar o valor da correlação = 0.92, podemos dizer que temos uma correlação positiva, já que o valor do coeficiente de correlação é positivo e que temos uma correlação forte, pois está proximo de 1.

Construção do modelo

mod3 <- lm(faturamento ~ pesquisa + propaganda, dados3)

Análise gráfica

par(mfrow=c(2,2))
plot(mod3)

Podemos observar nos gráficos, conseguimos avaliar um pressuposto que é a linearidade, conseguir observar isso, por meio da linha vermelha dos gráficos que está aproximadamente horizontal. Há homocedasticidade nos dados.

Normalidade dos resíduos

shapiro.test(mod3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod3$residuals
## W = 0.95685, p-value = 0.05716

Temos o valor de p como maior que 5% considerando o teste de Shapiro, então nesse caso não vamos rejeitar a hipótese nula. Vamos considerar que a distribuição é aproximadamente normal.

Outliers nos resíduos

summary(rstandard(mod3))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.988969 -0.727393 -0.068337 -0.001153  0.914984  1.693514

Independência dos resíduos (Durbin-Watson)

durbinWatsonTest(mod3)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.04637208      2.040793   0.888
##  Alternative hypothesis: rho != 0

Homocedasticidade (Breusch-Pagan)

bptest(mod3)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod3
## BP = 7.5928, df = 2, p-value = 0.02245

Multicolinearidade

pairs.panels(dados3)

Observando os resultados gerados, podemos afirmar que não temos problemas de multicolinearidade.

vif(mod3)
##   pesquisa propaganda 
##    1.01039    1.01039

Não há problemas de multicolinearidade, pois os valores de vif são menores que 10, não há correlação entre as variáveis independentes.

Criando o segundo modelo

Criando um segundo modelo, comparando apenas faturamento com propaganda.

mod3.1 <- lm(faturamento ~ propaganda, dados3)

Análise dos modelos

summary(mod3)
## 
## Call:
## lm(formula = faturamento ~ pesquisa + propaganda, data = dados3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.5574  -4.2439  -0.4033   5.3298  10.1294 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 104.7855     6.4827  16.164   <2e-16 ***
## pesquisa     -6.6419     3.1912  -2.081   0.0427 *  
## propaganda    2.9843     0.1669  17.877   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.07 on 49 degrees of freedom
## Multiple R-squared:  0.8671, Adjusted R-squared:  0.8617 
## F-statistic: 159.8 on 2 and 49 DF,  p-value: < 2.2e-16
summary(mod3.1)
## 
## Call:
## lm(formula = faturamento ~ propaganda, data = dados3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.6134 -5.2875 -0.3867  5.3762 10.9611 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  91.8306     1.8713   49.07   <2e-16 ***
## propaganda    2.9491     0.1715   17.19   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.269 on 50 degrees of freedom
## Multiple R-squared:  0.8553, Adjusted R-squared:  0.8524 
## F-statistic: 295.6 on 1 and 50 DF,  p-value: < 2.2e-16

O segundo modelo tem um valor de R ajustado menor que o primeiro modelo co duas variáveis independentes, o que pode ser um indicativo de que o segundo modelo explica menos a variação dos dados.

Obtendo os coeficientes padronizados

lm.beta(mod3)
##   pesquisa propaganda 
## -0.1089620  0.9358921
lm.beta(mod3.1)
## propaganda 
##  0.9248428

Podemos observar que a variável propaganda é um melhor previsor que a variável pesquisa.

Obtendo do IC 95% para os coeficientes

confint(mod3)
##                  2.5 %      97.5 %
## (Intercept)  91.758002 117.8130251
## pesquisa    -13.054872  -0.2289878
## propaganda    2.648828   3.3197697
confint(mod3.1)
##                 2.5 %    97.5 %
## (Intercept) 88.071924 95.589206
## propaganda   2.604558  3.293574

Comparando os modelos

AIC e BIC - Comparação entre quaisquer modelos

AIC(mod3, mod3.1)
BIC(mod3, mod3.1)

Os dois testes de comparação AIC e BIC indicam que o primeiro modelo melhor ajustados aos dados que o segundo modelo.

Comparando modelos aninhados

anova(mod3, mod3.1)

O melhor modelo é o com menor valor de RSS(residual sum of squares), ou seja, o medelo 1 é o melhor modelo para explicar os dados.

Grádico de dispersão

graph <- scatterplot3d(dados3$faturamento ~ dados3$pesquisa + dados3$propaganda, pch=16, angle=45, color = "steelblue", box = FALSE, xlab = "Pesquisa", ylab = "Propaganda", zlab = "Faturamento")
graph$plane3d(mod3, col = "black", draw_polygon = TRUE)

Questão 4) [2 pontos]

Com o intuito de realizar uma analise de regressao linear multipla, busque e apresente uma base de dados com descriçao do problema, objetivos a serem alcancados, populaçao e amostra envolvidos. Procure averiguar se as hipoteses do modelo estao sendo satisfeitas e testando hipoteses de interesse pratico e que respondam aos objetivos do problema. Faca algumas previsoes para a variavel dependente/resposta a partir de alguns valores atribuıdos para o conjunto de variaveis independentes/explicativas. Sempre procure apresentar e interpretar os resultados de forma pratica.

Os dados que usaremos estão detalhados nessa página do OpenIntro. São dados sobre a avaliação de professores feita por alunos, eles avaliam a qualidade do ensino do professor levando em consideração fatores como a idade e a beleza. O intuito da pesquisa é saber se tem uma relação na avaliação feita pelos alunos entre a estética do professor e o quão bem ele ensina.

Carregando os Dados

dados4 = fread("https://www.openintro.org/stat/data/evals.csv")

dados4

Analisaremos os seguintes dados:

Score: A avaliação do ensino do(a) professor(a), varia entre 0 e 5.

Age: A idade do(a) professor(a).

Gender: O gênero do(a) professor(a).

Bty_avg: A média de beleza.

Pic_outfit: Se a roupa do(a) professor(a) é formal ou não.

Pic_color: Se a foto mostrada era preta e branca ou colorida.

Vizualização gráfica

A seguir a vizualização do comportamento das variáveis nos gráficos de dispersão de pontos das métricas em relação ao score:

dados4 %>% 
    ggplot(aes(x = age, y = score)) + 
    geom_count()

dados4 %>% 
    ggplot(aes(x = gender, y = score)) + 
    geom_count()

dados4 %>% 
    ggplot(aes(x = bty_avg, y = score)) + 
    geom_count()

dados4 %>% 
    ggplot(aes(x = pic_outfit, y = score)) + 
    geom_count()

dados4 %>% 
    ggplot(aes(x = pic_color, y = score)) + 
    geom_count()

Podemos observar nos gráficos, que visualmente cada variável individualmente em relação ao score apresenta-se dificil de determinar se existe uma relação que mostre que as variáveis influenciam no score.

Construção do modelo

mod4 <- lm(score ~ age + bty_avg + gender + pic_outfit + pic_color, data = dados4)

Análise gráfica

par(mfrow=c(2,2))
plot(mod4)

Podemos observar nos gráficos, conseguimos avaliar um pressuposto que é a linearidade, conseguir observar isso, por meio da linha vermelha dos gráficos que está aproximadamente horizontal. Há homocedasticidade nos dados.

Normalidade dos resíduos

shapiro.test(mod4$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod4$residuals
## W = 0.95702, p-value = 2.287e-10

Temos o valor de p como maior que 5% considerando o teste de Shapiro, então nesse caso não vamos rejeitar a hipótese nula. Vamos considerar que a distribuição é aproximadamente normal.

Outliers nos resíduos

summary(rstandard(mod4))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -3.448744 -0.668853  0.190526 -0.000321  0.783042  1.806256

Independência dos resíduos (Durbin-Watson)

durbinWatsonTest(mod4)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.3445027      1.308322       0
##  Alternative hypothesis: rho != 0

Homocedasticidade (Breusch-Pagan)

bptest(mod4)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod4
## BP = 4.3561, df = 5, p-value = 0.4994

Multicolinearidade

pairs.panels(dados4)

Observando os resultados gerados, podemos afirmar que não temos problemas de multicolinearidade.

vif(mod4)
##        age    bty_avg     gender pic_outfit  pic_color 
##   1.255491   1.235576   1.118345   1.080918   1.135348

Não há problemas de multicolinearidade, pois os valores de vif são menores que 10, não há correlação entre as variáveis independentes.

Criando o segundo modelo

Criando um segundo modelo, comparando o score com age, bty_avg e gender.

mod4.1 <- lm(score ~ age + bty_avg + gender, data = dados4)

Análise dos modelos

summary(mod4)
## 
## Call:
## lm(formula = score ~ age + bty_avg + gender + pic_outfit + pic_color, 
##     data = dados4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.79508 -0.34704  0.09909  0.40726  0.93799 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           4.370125   0.211106  20.701  < 2e-16 ***
## age                  -0.007124   0.002777  -2.565  0.01064 *  
## bty_avg               0.047322   0.017684   2.676  0.00772 ** 
## gendermale            0.223349   0.051988   4.296 2.12e-05 ***
## pic_outfitnot formal -0.015155   0.067773  -0.224  0.82316    
## pic_colorcolor       -0.212322   0.069101  -3.073  0.00225 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5223 on 457 degrees of freedom
## Multiple R-squared:  0.08775,    Adjusted R-squared:  0.07777 
## F-statistic: 8.792 on 5 and 457 DF,  p-value: 5.599e-08
summary(mod4.1)
## 
## Call:
## lm(formula = score ~ age + bty_avg + gender, data = dados4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.84906 -0.36109  0.09121  0.41430  0.93332 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.055060   0.167329  24.234  < 2e-16 ***
## age         -0.005784   0.002717  -2.129 0.033769 *  
## bty_avg      0.064091   0.016866   3.800 0.000164 ***
## gendermale   0.200903   0.051790   3.879 0.000120 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5267 on 459 degrees of freedom
## Multiple R-squared:  0.06832,    Adjusted R-squared:  0.06224 
## F-statistic: 11.22 on 3 and 459 DF,  p-value: 4.068e-07

O segundo modelo tem um valor de R ajustado menor que o primeiro modelo co duas variáveis independentes, o que pode ser um indicativo de que o segundo modelo explica menos a variação dos dados.

Obtendo do IC 95% para os coeficientes

confint(mod4)
##                            2.5 %       97.5 %
## (Intercept)           3.95526600  4.784983575
## age                  -0.01258214 -0.001665773
## bty_avg               0.01257009  0.082073569
## gendermale            0.12118377  0.325514430
## pic_outfitnot formal -0.14834029  0.118031137
## pic_colorcolor       -0.34811797 -0.076525799
confint(mod4.1)
##                   2.5 %        97.5 %
## (Intercept)  3.72623332  4.3838860513
## age         -0.01112308 -0.0004456965
## bty_avg      0.03094650  0.0972349722
## gendermale   0.09912702  0.3026787115

Comparando os modelos

AIC e BIC - Comparação entre quaisquer modelos

AIC(mod4, mod4.1)
BIC(mod4, mod4.1)

O teste de comparação AIC indica o primeiro modelo como o melhor ajustado aos dados e o teste de comparação BIC indica que o segundo modelo melhor ajustados aos dados que o segundo modelo.

Comparando modelos aninhados

anova(mod4, mod4.1)

O melhor modelo é o com menor valor de RSS(residual sum of squares), ou seja, o medelo 1 é o melhor modelo para explicar os dados.

Conclusão

Ao analisar o modelo, podemos observar que o r.squared das múltiplas variáveis se mostra baixo, indicando que a uma relação fraca entre as variáveis.

Em relação a cada uma das variáveis, podemos observar que o efeito da idade é baixo e negativo, os professores mais velhos tendem a ser pior avaliados, mas ainda assim tem uma diferença pequena em diferenças de idade consideradas grandes. Os professores tendem a ser melhor avaliados que as professoras, mas com uma diferença pequena tambem. Os professores(as) com beleza relacionada, tendem a ter melhores avaliações, mas com uma diferença maior em relação as outras variáveis. Dessa forma, a beleza é a variável com efeito maior em relação ao score.

Em conclusão, as métricas avaliadas expressam muito pouco em relação a qualidade de ensino dos professores(as), ainda que podemos perceber que a variável beleza causa efeito quanto a score.