Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Produção
EPS CTC UFSC
Prof. Eduardo F. Silva
Regressão Múltipla
Y = Variável dependente
n = número de observações;
p = número de variáveis independentes (preditoras).
2
Prof. Eduardo F. Silva
Superfície de Regressão Múltipla
*
* **
*
* * * * *
*
* * * * *
* * *
*
* *
*
X2 X1
Prof. Eduardo F. Silva
Matricialmente
y1 = β0 + β1x11 + β2x12 + . . . + βkx1p + e1
y2 = β0 + β1x21 + β2x22 + . . . + βkx2p + e2
...
yn = β0 + β1xn1 + β2xn2 + . . . + βkxnp + en
4
Prof. Eduardo F. Silva
Matricialmente
y1 = β0 + β1x11 + β2x12 + . . . + βkx1p + e1
y2 = β0 + β1x21 + β2x22 + . . . + βkx2p + e2
...
yn = β0 + β1xn1 + β2xn2 + . . . + βkxnp + en
5
Prof. Eduardo F. Silva
Estimativa de Mínimos Quadrados de β
Logo,
6
Prof. Eduardo F. Silva
Exemplo
• Na tabela abaixo apresentamos os valores de uma
amostra de 6 observações das variáveis Yi, Xi1 e Xi2.
Yi Xi1 Xi2
1,5 0 0
6,5 1 2
10,0 1 4
11,0 2 2
11,5 2 4
16,5 3 6
$150.0
Preço de venda.
$130.0
$110.0
$90.0
$70.0
$50.0
.90000 1.10000 1.30000 1.50000 1.70000 1.90000 2.10000 2.30000
Área (ft2)
$170.0 $170.0
$150.0 $150.0
Preço de Venda
Preço de venda.
$130.0 $130.0
$110.0
$110.0
$90.0
$90.0
$70.0
$70.0
$50.0
0 1 2 $50.0
2 3 4
# de carros (Garagem) Quartos
15
Prof. Eduardo F. Silva
Modelos com Uma Variável independente
Com essa ideia de simplicidade em mente, a
avaliadora poderia tentar ajustar aos dados cada
uma das três funções de regressão linear simples
abaixo:
> summary(fit1.3)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.311 13.074 0.636 0.5428
area 44.313 18.933 2.341 0.0474 *
quartos 6.743 9.706 0.695 0.5069
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Fator de ajuste
Prof. Eduardo F. Silva
A Estatística R2 Ajustada (cont.)
O valor R2 ajustado pode ser usado
como regra prática para ajudar-nos a
decidir se uma variável independente
adicional melhora a habilidade previsível de
um modelo ou se ela apenas aumenta
artificialmente a estatística R2.
Entretanto, esse uso da estatística R2
ajustado não é um método infalível e
requer uma boa dose de julgamento por
parte do analista.
Call:
lm(formula = preco ~ area + +garagem + quartos, data =
df_imoveis)
Residuals:
Min 1Q Median 3Q Max
-9.566 -5.398 1.416 3.615 9.273
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.440 11.528 2.294 0.0555 .
area 30.803 14.659 2.101 0.0737 .
garagem 12.567 4.459 2.818 0.0258 *
quartos 4.576 7.143 0.641 0.5422
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
25
Prof. Eduardo F. Silva
Previsões
• n =número de observações;
• p =número de variáveis independentes
Prof. Eduardo F. Silva
Análise de Variância na Regressão (ANOVA)
Teste F é utilizado para testar a hipótese se o seu
modelo é válido :
> summary(fit3)
Residuals:
Min 1Q Median 3Q Max
-9.566 -5.398 1.416 3.615 9.273
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.440 11.528 2.294 0.0555 .
area 30.803 14.659 2.101 0.0737 .
garagem 12.567 4.459 2.818 0.0258 *
quartos 4.576 7.143 0.641 0.5422
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
• Duas variáveis:
34
Prof. Eduardo F. Silva
Modelos Polinomiais de Regressão - Exemplo
35
Prof. Eduardo F. Silva
Modelos Polinomiais de Regressão - Exemplo
# Modelo polinomial de regressão
> df <- tibble(x = c(20, 25, 30, 35, 40, 50, 60, 65, 70, 75, 80, 90),
y = c(1.81, 1.70, 1.65, 1.55, 1.48, 1.40, 1.30, 1.26, 1.24, 1.21, 1.20, 1.18))
> plm <- lm(formula = y ~ x + I(x^2), data = df)
> summary(plm)
# Call:
# lm(formula = y ~ x + I(x^2), data = df)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.0174763 -0.0065087 0.0001297 0.0071482 0.0151887
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 2.198e+00 2.255e-02 97.48 6.38e-15 ***
# x -2.252e-02 9.424e-04 -23.90 1.88e-09 ***
# I(x^2) 1.251e-04 8.658e-06 14.45 1.56e-07 ***
# ---
# Signif. codes:
# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.01219 on 9 degrees of freedom
# Multiple R-squared: 0.9975, Adjusted R-squared: 0.9969
# F-statistic: 1767 on 2 and 9 DF, p-value: 2.096e-12
36
Prof. Eduardo F. Silva
Modelos Polinomiais de Regressão - Exemplo
#Q-Q Plot
> qqnorm(plm$residuals)
> qqline(plm$residuals)
# Plot da regressão
> plot(df$x,df$y,col='blue',ylab='y - Custo',xlab='x - Tamanho do lote')
> lines(df$x,plm$fitted.values,col='red',lwd=2)
37
Prof. Eduardo F. Silva
Regressores categóricos
39
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
## Variáveis indicativas
> df <- tibble(acabamento = c(45.44,42.03,50.1,48.75,47.92,47.79,52.26,50.52,45.58,44.78,33.5,31.23,
37.52,37.13,34.7,33.92,32.13,35.47,33.49,32.29),
rpm = c(225,200,250,245,235,237,265,259,221,218,224,212,248,260,243,238,224,251,232,216),
tipo = c(302,302,302,302,302,302,302,302,302,302,416,416,416,416,416,416,416,416,416,416))
> df$tipo <- as.factor(df$tipo)
40
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
#Q-Q Plot
> qqnorm(plm$residuals)
> qqline(plm$residuals)
# Plot da regressão
> ggplot(df, aes(x = rpm, y = plm$fitted.values, colour = tipo)) +
geom_line() +
geom_point(y = df$acabamento, col = 'black')
41
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
# Interação --------------------------------------------------------------------
> plm <- lm(formula = acabamento ~ rpm + tipo + rpm*tipo, data = df)
> summary(plm)
# Call:
# lm(formula = acabamento ~ rpm + tipo + rpm * tipo, data = df)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.68655 -0.44881 -0.07609 0.30171 1.76690
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 11.50294 2.50430 4.593 0.0003 ***
# rpm 0.15293 0.01060 14.428 1.37e-10 ***
# tipo416 -6.09423 4.02457 -1.514 0.1495
# rpm:tipo416 -0.03057 0.01708 -1.790 0.0924 .
# ---
# Signif. codes:
# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.6371 on 16 degrees of freedom
# Multiple R-squared: 0.9936, Adjusted R-squared: 0.9924
# F-statistic: 832.3 on 3 and 16 DF, p-value: < 2.2e-16
42
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
#Q-Q Plot
> qqnorm(plm$residuals)
> qqline(plm$residuals)
# Plot da regressão
> ggplot(df, aes(x = rpm, y = plm$fitted.values, colour = tipo)) +
geom_line() +
geom_point(y = df$acabamento, col = 'black')
43
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
# Removendo outliers
> subset <- 1:nrow(df)!=13
> plm <- lm(formula = acabamento ~ rpm + rpm*tipo, data = df, subset = subset)
> summary(plm)
# Call:
# lm(formula = acabamento ~ rpm + rpm * tipo, data = df, subset = subset)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.6071 -0.2262 -0.0608 0.3230 0.7629
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 11.50294 1.66794 6.896 5.09e-06 ***
# rpm 0.15293 0.00706 21.662 9.89e-13 ***
# tipo416 -3.36943 2.74543 -1.227 0.23863
# rpm:tipo416 -0.04309 0.01170 -3.684 0.00221 **
# ---
# Signif. codes:
# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.4243 on 15 degrees of freedom
# Multiple R-squared: 0.9973, Adjusted R-squared: 0.9968
# F-statistic: 1862 on 3 and 15 DF, p-value: < 2.2e-16
44
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
##Q-Q Plot
> qqnorm(plm$residuals)
> qqline(plm$residuals)
# Plot da regressão
> fitted <- predict(plm, df)
> ggplot(df, aes(x = rpm, y = fitted, colour = tipo)) +
geom_line() +
geom_point(y = df$acabamento, col = ifelse(subset, 'black','red'))
45
Prof. Eduardo F. Silva
Obrigado!