7.3 Regressão Linear Múltipla

Quando trabalha-se com dados multivariados (i.e., quase sempre), recomenda-se a exploração criteoriosa dos dados. Não raro ocorrem valores faltantes (missings), rotulados por NA na linguagem R conforme Seção 1.5. Tais valores faltantes podem dificultar os procedimentos de modelagem, e sua ocorrência se soma a outras questões como a multicolinearidade.

Exemplo 7.13 No site https://archive.ics.uci.edu/ml/datasets/Energy+efficiency está disponível uma análise de energia feita por (Tsanas and Xifara 2012) usando 12 formas diferentes de construção simuladas no Ecotect. Os edifícios diferem em relação à área envidraçada, à distribuição da área envidraçada e à orientação, entre outros parâmetros. Foram simuladas várias configurações como funções das características acima mencionadas para obter 768 formas de construção. O conjunto de dados detalhado a seguir compreende 768 amostras e 8 características (X1 a X8), com o objetivo de prever duas respostas reais (Y1 e Y2).

X1: Compactação Relativa
X2: Superfície
X3: Área da parede
X4: Área do telhado
X5: Altura total
X6: Orientação
X7: Área de Envidraçamento
X8: Distribuição da Área de Envidraçamento
Y1: Carga de aquecimento
Y2: Carga de resfriamento

Primeiramente é feita a leitura dos dados.

# libs
library(readxl)

# arquivo
url1 = 'http://archive.ics.uci.edu/ml/machine-learning-databases/00242/ENB2012_data.xlsx'
download.file(url1, 'temp.xlsx', mode = 'wb')
energy = read_excel('temp.xlsx')

# dando uma olhada nas variáveis
str(energy)
## tibble [768 × 10] (S3: tbl_df/tbl/data.frame)
##  $ X1: num [1:768] 0.98 0.98 0.98 0.98 0.9 0.9 0.9 0.9 0.86 0.86 ...
##  $ X2: num [1:768] 514 514 514 514 564 ...
##  $ X3: num [1:768] 294 294 294 294 318 ...
##  $ X4: num [1:768] 110 110 110 110 122 ...
##  $ X5: num [1:768] 7 7 7 7 7 7 7 7 7 7 ...
##  $ X6: num [1:768] 2 3 4 5 2 3 4 5 2 3 ...
##  $ X7: num [1:768] 0 0 0 0 0 0 0 0 0 0 ...
##  $ X8: num [1:768] 0 0 0 0 0 0 0 0 0 0 ...
##  $ Y1: num [1:768] 15.6 15.6 15.6 15.6 20.8 ...
##  $ Y2: num [1:768] 21.3 21.3 21.3 21.3 28.3 ...

As funções base::summary e base::sapply podem auxiliar.

# descritivas
summary(energy)     # Medidas de posição por coluna
##        X1               X2              X3              X4              X5             X6             X7        
##  Min.   :0.6200   Min.   :514.5   Min.   :245.0   Min.   :110.2   Min.   :3.50   Min.   :2.00   Min.   :0.0000  
##  1st Qu.:0.6825   1st Qu.:606.4   1st Qu.:294.0   1st Qu.:140.9   1st Qu.:3.50   1st Qu.:2.75   1st Qu.:0.1000  
##  Median :0.7500   Median :673.8   Median :318.5   Median :183.8   Median :5.25   Median :3.50   Median :0.2500  
##  Mean   :0.7642   Mean   :671.7   Mean   :318.5   Mean   :176.6   Mean   :5.25   Mean   :3.50   Mean   :0.2344  
##  3rd Qu.:0.8300   3rd Qu.:741.1   3rd Qu.:343.0   3rd Qu.:220.5   3rd Qu.:7.00   3rd Qu.:4.25   3rd Qu.:0.4000  
##  Max.   :0.9800   Max.   :808.5   Max.   :416.5   Max.   :220.5   Max.   :7.00   Max.   :5.00   Max.   :0.4000  
##        X8              Y1              Y2       
##  Min.   :0.000   Min.   : 6.01   Min.   :10.90  
##  1st Qu.:1.750   1st Qu.:12.99   1st Qu.:15.62  
##  Median :3.000   Median :18.95   Median :22.08  
##  Mean   :2.812   Mean   :22.31   Mean   :24.59  
##  3rd Qu.:4.000   3rd Qu.:31.67   3rd Qu.:33.13  
##  Max.   :5.000   Max.   :43.10   Max.   :48.03
sapply(energy, sd)  # Desvios padrão (amostrais) por coluna
##         X1         X2         X3         X4         X5         X6         X7         X8         Y1         Y2 
##  0.1057775 88.0861161 43.6264814 45.1659502  1.7511404  1.1187626  0.1332206  1.5509597 10.0902040  9.5133056

As funções base::is.na e VIM::aggr (Kowarik and Templ 2016) permitem analisar os dados faltantes.

sum(is.na(energy))
## [1] 0
VIM::aggr(energy)

Para dados multivariados é usual a inspeção visual através da matriz de dispersão, facilmente obtida via graphics::pairs.

pairs(energy)

7.3.1 Modelo

O modelo de Regressão Linear Múltipla (RLM) populacional/universal é construído, na abordagem clássica, com todos as \(N\)-uplas da população ou universo, i.e., \((x_{1i},x_{2i},\ldots,x_{pi},y_i), \; i \in \{1,\ldots,N\}\). Pode ser descrito pela Eq. (7.28).

\[\begin{equation} Y = \beta_0 + \beta_1 x_1 + \cdots + \beta_p x_p + \varepsilon, \tag{7.28} \end{equation}\] onde \(\varepsilon \sim \mathcal{N}(0,\sigma_{\varepsilon})\).

Por ter dimensionalidade \(p\) usualmente utiliza-se notação matricial na forma

\[\begin{equation} Y = X \boldsymbol{\beta} + \boldsymbol{\varepsilon}, \tag{7.29} \end{equation}\]

onde \(Y = \begin{bmatrix} Y_1 \\ Y_2 \\ \vdots \\ Y_n \end{bmatrix}\), \(X = \begin{bmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1p} \\ 1 & x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix}\), \(\boldsymbol{\beta} = \begin{bmatrix} \beta_1 \\ \beta_2 \\ \vdots \\ \beta_p \end{bmatrix}\) e \(\boldsymbol{\varepsilon} = \begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_n \end{bmatrix}\).

Estimativa dos parâmetros

Para a obtenção das estimativas dos parâmetros utiliza-se a Eq. (7.30). Para ajustar um modelo RPO, basta eliminar a coluna unitária de \(X\). \[\begin{equation} \boldsymbol{\hat{\beta}} = (X'X)^{-1} X'Y \tag{7.30} \end{equation}\]

Exemplo 7.14 Considere os dados do Exemplo 7.13. O ajuste do modelo é dado da mesma forma que na RLS, bastando separar as variáveis pelo símbolo +.

(fit <- lm(Y1 ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8, data = energy))
## 
## Call:
## lm(formula = Y1 ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8, data = energy)
## 
## Coefficients:
## (Intercept)           X1           X2           X3           X4           X5           X6           X7           X8  
##    84.01342    -64.77343     -0.08729      0.06081           NA      4.16995     -0.02333     19.93274      0.20378

Exercício 7.11 Considere a a Eq. (7.30).
a. Obtenha as estimativas dos modelos utilzados nos Exemplos 7.8 e 7.9.
b. Obtenha as estimativas do modelo RLM utilzado no Exemplo 7.14. Dica: retire a variável X4.
c. Obtenha as estimativas dos coeficientes do modelo RPO do Exemplo 7.14.

7.3.2 Diagnóstico inferencial

Stepwise

O método de stepwise foi proposto por (Efroymson 1960) com o intuito de selecionar variáveis em regressões múltiplas conforme Eq. (7.28). De acordo com o autor30, no procedimento de stepwise os resultados intermediários dos métodos para a obtenção das estimativas de regressões múltiplas “são usados para fornecer informações estatísticas valiosas em cada etapa do cálculo”. O autor também ressalta31 que o método “é baseado nos fatos que (a) uma variável pode ser indicada como significativa em qualquer estágio inicial e, assim, entrar na equação e (b) após várias outras variáveis serem adicionadas à equação de regressão, o variável inicial pode ser indicada como insignificante. A variável insignificante será removida da equação de regressão antes de adicionar uma nova variável. Portanto, apenas variáveis significativas são incluídas na regressão final”.

Este método busca automaticamente o melhor conjunto de variáveis de maneira a minimizar alguma medida, tal como AIC (Akaike 1974), BIC (Schwarz 1978), dentre outras. Na implementação de R documentada em stats::step, o modelo selecionado será aquele com o menor valor de AIC. Note que ‘seleção de modelos’ e ‘seleção de variáveis’ são sinônimos.

Exemplo 7.15 Considere os dados do Exemplo 7.14. Pode-se selecionar o melhor conjunto de variáveis de acordo com o método de stepwise.

(fit_step <- step(fit, trace = 0))
## 
## Call:
## lm(formula = Y1 ~ X1 + X2 + X3 + X5 + X7 + X8, data = energy)
## 
## Coefficients:
## (Intercept)           X1           X2           X3           X5           X7           X8  
##    83.93176    -64.77343     -0.08729      0.06081      4.16995     19.93274      0.20378

Teste para \(\boldsymbol{\beta}\)

Exemplo 7.16 Considere os dados do Exemplo 7.15. Pode-se gerar um relatório do modelo desejado com base::summary.

summary(fit_step)
## 
## Call:
## lm(formula = Y1 ~ X1 + X2 + X3 + X5 + X7 + X8, data = energy)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.9315 -1.3189 -0.0262  1.3587  7.7169 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  83.931762  19.018978   4.413 1.17e-05 ***
## X1          -64.773432  10.283096  -6.299 5.06e-10 ***
## X2           -0.087289   0.017065  -5.115 3.97e-07 ***
## X3            0.060813   0.006644   9.153  < 2e-16 ***
## X5            4.169954   0.337781  12.345  < 2e-16 ***
## X7           19.932736   0.813484  24.503  < 2e-16 ***
## X8            0.203777   0.069875   2.916  0.00365 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.933 on 761 degrees of freedom
## Multiple R-squared:  0.9162, Adjusted R-squared:  0.9155 
## F-statistic:  1387 on 6 and 761 DF,  p-value: < 2.2e-16

7.3.3 Diagnóstico preditivo

Exercício 7.12 Acesse o endereço http://archive.ics.uci.edu/ml/datasets.php e escolha um banco de dados com mais de 100 atributos (variáveis/colunas). Faça análises considerando modelos lineares e, se pertinente, utilizando componentes principais. \(\\\)

Exercício 7.13 Refaça o Exemplo ?? utilizando a variável Y2 como resposta, ajustando o modelo saturado, filtrando as variáveis com a função step e interpretando os resultados.

References

Akaike, Hirotugu. 1974. “A New Look at the Statistical Model Identification.” In Selected Papers of Hirotugu Akaike, 215–22. Springer. https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1100705.
Efroymson, MA. 1960. “Multiple Regression Analysis.” Mathematical Methods for Digital Computers, 191–203.
Kowarik, Alexander, and Matthias Templ. 2016. “Imputation with the R Package VIM.” Journal of Statistical Software 74 (7): 1–16. https://doi.org/10.18637/jss.v074.i07.
Schwarz, Gideon. 1978. “Estimating the Dimension of a Model.” The Annals of Statistics, 461–64. https://doi.org/10.1214/aos/1176344136.
Tsanas, Athanasios, and Angeliki Xifara. 2012. “Accurate Quantitative Estimation of Energy Performance of Residential Buildings Using Statistical Machine Learning Tools.” Energy and Buildings 49: 560–67. http://people.maths.ox.ac.uk/tsanas/Preprints/ENB2012.pdf.

  1. In the stepwise procedure, to be described below, intermediate results, which are not even recorded by normal calculation methods, are used to give valuable statistical information at each step in the calculation. These intermediate answers are also used to control the method of calculation.↩︎

  2. An important property of the stepwise procedure is based on the facts that (a) a variable may be indicated to be significant in any early stage and thus enter the equation, and (b) after several other variables are added to the regression equation, the initial variable may be indicated to be insignificant. The insignificant variable will be removed from the regression equation before adding an additional variable. Therefore, only significant variables are included in the final regression.↩︎