Você está na página 1de 46

Estatística

Regressão Linear Múltipla

Prof. Eduardo F. Silva


Prof. Lynceo Braghirolli

Engenharia de Produção
EPS CTC UFSC
Prof. Eduardo F. Silva
Regressão Múltipla

• Modelos com mais de uma variável


independente

• Cada variável independente(X) possui uma


relação linear com a variável dependente (Y)

Y = β0 + β1X1 + β2X2 + . . . + βpXp + e

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

Fonte: Apostila de INF 664 Modelos Lineares. Adair José


Regazzi,UFV, Viçosa, 2002.
Prof. Eduardo F. Silva
Montando do sistema de equações normais

• Quando a regressão é com intercepto adicionados uma


coluna de uns na matriz de dados.

X sem intercepto X com intercepto Resposta Y

Prof. Eduardo F. Silva


Obtenção da matriz X’X
• Esta matriz é obtida multiplicando-se a
transposta da matriz X por ela mesma.

Prof. Eduardo F. Silva


Obtenção da matriz X’Y

• Esta matriz é obtida multiplicando-se a


transposta da matriz X pelo vetor Y.

Prof. Eduardo F. Silva


Sistema de equações normais
• Estimativa de beta pelos método dos mínimos
quadrados

Prof. Eduardo F. Silva


Regressão Múltipla em R

Prof. Eduardo F. Silva


Um Exemplo de Regressão Múltipla:

Uma Imobiliária está interessada em criar


um modelo de regressão para ajudar a
prever o valor justo para o mercado de casas
em determinada cidade.
Três variáveis independentes serão usadas
para estimar o preço de venda de uma casa:
• A área construída (pés quadrados)
• O número de quartos
• O tamanho da garagem (Número de Carros)

Prof. Eduardo F. Silva


Objetivo: Seleção do Modelo
• Tentaremos identificar a função de regressão
mais simples, que explique adequadamente o
comportamento da variável dependente que
estamos estudando.
• Utilizar todas as variáveis independentes
arbitrariamente pode resultar em um
superajuste.
• Devemos evitar o superajuste aos dados da
amostra pois estes podem possuir
características não presentes na população
(superajustar aos dados).
Prof. Eduardo F. Silva
Dados (no moodle)
$170.0

$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:

Prof. Eduardo F. Silva


Modelos com Uma Variável Independente
 Os resultados de regressão são:
Variáveis R2 Estimativas do
no modelo R2 ajustado Se Parâmetro
area 0,870 0,855 10,299 b0= 9,503, b1=56,394
garagem 0,759 0,731 14,030 b0=78,290, b2=28,382
quartos 0,793 0,770 12,982 b0=16,250, b3=27,607

 Em particular, a variável área explica cerca de


87% da variação na variável dependente. Isso
deixa aproximadamente 13% da variação em
preço sem explicação.
Prof. Eduardo F. Silva
Modelos com Duas Variáveis Independentes
Agora suponha que incrementamos o modelo
com duas variáveis independentes:

fit1.2 <- lm(preco~area + garagem,data=df_imoveis)


fit1.3 <- lm(preco~area + quartos,data=df_imoveis)

Prof. Eduardo F. Silva


Modelos com Duas Variáveis Independentes
Os resultados de regressão são:
Variáveis R2 Estimativas do
no Modelo R2 Ajustado Se Parâmetro
area 0,870 0,855 10,299 b0=9,503, b1=56,394

area & garagem 0,939 0,924 7,471 b0=27,684, b1=38,576 b2=12,875

area & quartos 0,877 0,847 10,609 b0=8,311, b1=44,313 b3=6,743

> 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

Residual standard error: 10.61 on 8 degrees of freedom


Multiple R-squared: 0.8773, Adjusted R-squared: 0.8466
F-statistic: 28.6 on 2 and 8 DF, p-value: 0.0002267

Prof. Eduardo F. Silva


A Estatística R2 Ajustada

Quando várias variáveis independentes são


incluídas em um modelo:
A estatística R2 tende a aumentar.
Mas o R2 ajustado pode aumentar ou diminuir.
p: número de
variáveis
independentes

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.

Prof. Eduardo F. Silva


Multicolinearidade
• Não deveríamos ficar muito surpresos ao
observarmos que não houve nenhuma melhora
significativa quando o número de quartos foi
acrescentado ao modelo já contendo a área
total em pés quadrados.
• Ambas as variáveis representam fatores
semelhantes – o tamanho da casa.
• O número de quartos em uma casa está
diretamente relacionado (ou correlacionado)
com a área total em pés quadrados da
residência.
• Multicolinearidade deve ser evitada.

Prof. Eduardo F. Silva


Modelo com Três Variáveis Independentes
Suponhamos o ajuste do seguinte modelo com três
variáveis independentes:

fit3 <- lm(preco~area + + garagem + quartos,data=df_imoveis)


> summary(fit3)

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

Residual standard error: 7.762 on 7 degrees of freedom


Multiple R-squared: 0.9425, Adjusted R-squared: 0.9179
F-statistic: 38.26 on 3 and 7 DF, p-value: 0.0001036
Prof. Eduardo F. Silva
Modelo com Três Variáveis Independentes
Suponhamos o ajuste do seguinte modelo com três
variáveis independentes:
Variáveis R2 Estimativas de
no modelo R2 Ajustado Se Parâmetro
X1 0,870 0,855 10,299 b0=9,503, b1=56,394

X1 & X2 0,939 0,924 7,471 b0=27,684, b1=38,576,


b2=12,875

X1, X2 & X3 0,943 0,918 7,762 b0=26,440, b1=30,803,


b2=12,567, b3=4,576
 O modelo que usa area e garagem parece ser o melhor:
– Estatística R2 ajustado mais elevada
– Menor erro padrão Se
Prof. Eduardo F. Silva
Gráfico dos Resíduos

25
Prof. Eduardo F. Silva
Previsões

Prof. Eduardo F. Silva


Fazendo Previsões
Vamos estimar o preço de venda de uma casa
com 2.100 pés quadrados e garagem para dois
carros:

 O preço estimado de venda é de $134.444


# Previsão: estimar y em função de novos valores de x
> new_data <- tibble(area = c(2.1),
garagem = c(2) )

> predict(fit1.2, newdata = new_data)

Prof. Eduardo F. Silva


Uma Nota sobre Extrapolação (Previsão)

As previsões feitas usando uma


função de regressão estimada
podem ter pouca ou nenhuma
validade para valores da variável
independente que sejam
substancialmente diferentes dos
representados na amostra.
Prof. Eduardo F. Silva
Teste F na Regressão Multipla

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 :

Causa de Graus de Soma dos


variação Média Estatística F
Liberdade quadrados
Regressão p SSR SSR/p (SSR/p)/(SSE/n-p-1)
Resíduo n-p-1 SSE SSE/n-p-1

Total n-1 SST

• 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)

Call: Ha: Algum coeficiente ≠ 0


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

Residual standard error: 7.762 on 7 degrees of freedom


Multiple R-squared: 0.9425, Adjusted R-squared: 0.9179
F-statistic: 38.26 on 3 and 7 DF, p-value: 0.0001036

Prof. Eduardo F. Silva


Test F na Regressão

• Contudo não é possível concluir quais


parâmetros são significativos, exceto
para o caso particular de p=1 (Regressão
simples).

Prof. Eduardo F. Silva


Modelagem por Regressão
Múltipla

Prof. Eduardo F. Silva


Modelos Polinomiais de Regressão

O modelo linear é um modelo geral


que pode ser usado para ajustar qualquer relação
que seja linear nos parâmetros desconhecidos β.
Por exemplo:
• Uma variável:

• Duas variáveis:

34
Prof. Eduardo F. Silva
Modelos Polinomiais de Regressão - Exemplo

Os painéis laterais para o interior de um avião são feitos


em uma prensa de 1500 toneladas. O custo da unidade
de fabricação varia com o tamanho do lote de produção.
Os dados mostrados a seguir fornecem o custo médio
por unidade (em centenas de dólares) para esse produto
(y) e o tamanho do lote de produção (x).

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)

# Verificação da variância constante e adequação do modelo


# Ajuste vs. Resíduo
> plot(x = plm$fitted.values, y = plm$residuals)
> abline(a=0, b=0)

# 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

Até usamos apenas variáveis quantitativas.


E se precisarmos usar variáveis qualitativas?
• Ex.: o operador em cada observação

Nesse caso, utilizamos variáveis indicativas (dummy).


Para dois operadores:

Para três operadores: Se for operador 1


Se for operador 2
Se for operador 3
38
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo

Um engenheiro está investigando o acabamento na


superfície de partes metálicas, produzidas em um torno
mecânico, e sua relação com a velocidade (rpm) do
torno. Os dados foram coletados usando dois tipo
diferentes de ferramenta de corte.

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)

> plm <- lm(formula = acabamento ~ rpm + tipo, data = df)


> summary(plm)
# Call:
# lm(formula = acabamento ~ rpm + tipo, data = df)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.9546 -0.5039 -0.1804 0.4893 1.5188
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 14.276196 2.091214 6.827 2.94e-06 ***
# rpm 0.141150 0.008833 15.979 1.13e-11 ***
# tipo416 -13.280195 0.302879 -43.847 < 2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.6771 on 17 degrees of freedom
# Multiple R-squared: 0.9924, Adjusted R-squared: 0.9915
# F-statistic: 1104 on 2 and 17 DF, p-value: < 2.2e-16

40
Prof. Eduardo F. Silva
Regressores categóricos - Exemplo
#Q-Q Plot
> qqnorm(plm$residuals)
> qqline(plm$residuals)

# Verificação da variância constante e adequação do modelo


# Ajuste vs. Resíduo
> plot(x = plm$fitted.values, y = plm$residuals)
> abline(a=0, b=0)

# 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)

# Verificação da variância constante e adequação do modelo


# Ajuste vs. Resíduo
> plot(x = plm$fitted.values, y = plm$residuals)
> abline(a=0, b=0)

# 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)

# Verificação da variância constante e adequação do modelo


# Ajuste vs. Resíduo
> plot(x = plm$fitted.values, y = plm$residuals)
> abline(a=0, b=0)

# 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!

Prof. Eduardo F. Silva

Você também pode gostar