Capítulo 4 Regressão Linear

A essência de uma regressão linear é ajustarmos um modelo aos nossos dados e o usarmos ele para prever valores da variável dependente (VD) a partir de uma ou mais variáveis independentes (VIs). A análise de regressão é uma maneira de prever uma variável de resultado a partir de uma variável preditora (regressão simples) ou várias variáveis preditoras (regressão múltipla) (Field, Miles, and Field 2012).

Na regressão linear, a variável que estaríamos tentando descobrir, variável dependente, é o “y” da função. E as variáveis que exercem influência sobre a dependente, variáveis independentes, são os “Xs” da função. O modelo que ajustamos por meio dessa função é linear, o que significa que resumimos um conjunto de dados com uma linha reta (no caso de regressão simples) ou um plano (no caso de regressão múltipla). Para isso, usamos uma técnica matemática chamada método dos mínimos quadrados para estabelecer a reta ou plano que melhor descreve os dados coletados, conforme a figura representada abaixo (Field, Miles, and Field 2012):

Essa linha ou plano pode ser definida por dois coisas: (1) a inclinação (ou gradiente) da linha ou plano (geralmente denotada por \(\beta_{1}\), \(\beta_{2}\), …, \(\beta_{n}\)), relacionado a cada variável independente respectivamente (\(X_{1}\), \(X_{2}\), …, \(X_{n}\)); e (2) o ponto em qual a linha cruza o eixo y do gráfico (conhecido como intercepto \(\beta_{0}\)). Dessa forma temos a equação de regressão abaixo, na qual \(y_{i}\) é o resultado que queremos prever e \(X_{1i}\), \(X_{2i}\), …, \(X_{ni}\) são os valores da \(i\)-ésima instância de cada na variável preditora. \(\beta_{0}\), \(\beta_{1}\), \(\beta_{2}\), …, \(\beta_{n}\) são os coeficientes da regressão. Por fim, existe um termo residual, \(\epsilon_{i}\), que representa a diferença entre o valor prevista pela linha ou plano para uma instância \(i\) qualquer e o valor que real para essa respectiva instância. Podemos muitas vezes ver a equação representada sem esse termo residual, mas é importante atentarmos para sua existência, pois ele evidencia que o modelo não se ajustará perfeitamente aos dados:

\(y_{i} = \beta_{0} + \beta_{1}X_{1i} + \beta_{2}X_{2i} + \beta_{3}X_{3i} + ... + \beta_{n}X_{ni} + \epsilon_{i}\)

O código a seguir pode ser utilizado para estimar um modelo de regressão linear no software R. Vamos utilizar a base de dados Album Sales 2.dat disponibilizada por (Field, Miles, and Field 2012) no repositório digital de seu livro. Para fins da aplicação da regressão linear, vamos assumir que essa base dados refere-se aos dados de 200 álbuns de música. A base possui quatro colunas, (\(i\)) sales: representando a quantidade cada álbum que é vendida; (\(ii\)) adverts: representando os valores gastos com propaganda para cada álbum; (\(iii\)) airplay: representando a quantidade de vezes que o álbum foi tocado nas rádios; (\(iv\)) attract: a atratividade da banda.

# Carregar base de dados Album Sales 2.dat do livro de Field et al. (2012)

albumSales <- read.delim(
  # No parâmetro file, use o caminho para a pasta onde está 
  # o arquivo Album Sales 2.dat em seu computador.
  file = "dados/Album Sales 2.dat",  
  header = TRUE
  )  

albumSales
##      adverts sales airplay attract
## 1     10.256   330      43      10
## 2    985.685   120      28       7
## 3   1445.563   360      35       7
## 4   1188.193   270      33       7
## 5    574.513   220      44       5
## 6    568.954   170      19       5
## 7    471.814    70      20       1
## 8    537.352   210      22       9
## 9    514.068   200      21       7
## 10   174.093   300      40       7
## 11  1720.806   290      32       7
## 12   611.479    70      20       2
## 13   251.192   150      24       8
## 14    97.972   190      38       6
## 15   406.814   240      24       7
## 16   265.398   100      25       5
## 17  1323.287   250      35       5
## 18   196.650   210      36       8
## 19  1326.598   280      27       8
## 20  1380.689   230      33       8
## 21   792.345   210      33       7
## 22   957.167   230      28       6
## 23  1789.659   320      30       9
## 24   656.137   210      34       7
## 25   613.697   230      49       7
## 26   313.362   250      40       8
## 27   336.510    60      20       4
## 28  1544.899   330      42       7
## 29    68.954   150      35       8
## 30   785.692   150       8       6
## 31   125.628   180      49       7
## 32   377.925    80      19       8
## 33   217.994   180      42       6
## 34   759.862   130       6       7
## 35  1163.444   320      36       6
## 36   842.957   280      32       7
## 37   125.179   200      28       6
## 38   236.598   130      25       8
## 39   669.811   190      34       8
## 40   612.234   150      21       6
## 41   922.019   230      34       7
## 42    50.000   310      63       7
## 43  2000.000   340      31       7
## 44  1054.027   240      25       7
## 45   385.045   180      42       7
## 46  1507.972   220      37       7
## 47   102.568    40      25       8
## 48   204.568   190      26       7
## 49  1170.918   290      39       7
## 50   689.547   340      46       7
## 51   784.220   250      36       6
## 52   405.913   190      12       4
## 53   179.778   120       2       8
## 54   607.258   230      29       8
## 55  1542.329   190      33       8
## 56  1112.470   210      28       7
## 57   856.985   170      10       6
## 58   836.331   310      38       7
## 59   236.908    90      19       4
## 60  1077.855   140      13       6
## 61   579.321   300      30       7
## 62  1500.000   340      38       8
## 63   731.364   170      22       8
## 64    25.689   100      23       6
## 65   391.749   200      22       9
## 66   233.999    80      20       7
## 67   275.700   100      18       6
## 68    56.895    70      37       7
## 69   255.117    50      16       8
## 70   566.501   240      32       8
## 71   102.568   160      26       5
## 72   250.568   290      53       9
## 73    68.594   140      28       7
## 74   642.786   210      32       7
## 75  1500.000   300      24       7
## 76   102.563   230      37       6
## 77   756.984   280      30       8
## 78    51.229   160      19       7
## 79   644.151   200      47       6
## 80    15.313   110      22       5
## 81   243.237   110      10       8
## 82   256.894    70       1       4
## 83    22.464   100       1       6
## 84    45.689   190      39       6
## 85   724.938    70       8       5
## 86  1126.461   360      38       7
## 87  1985.119   360      35       5
## 88  1837.516   300      40       5
## 89   135.986   120      22       7
## 90   237.703   150      27       8
## 91   976.641   220      31       6
## 92  1452.689   280      19       7
## 93  1600.000   300      24       9
## 94   268.598   140       1       7
## 95   900.889   290      38       8
## 96   982.063   180      26       6
## 97   201.356   140      11       6
## 98   746.024   210      34       6
## 99  1132.877   250      55       7
## 100 1000.000   250       5       7
## 101   75.896   120      34       6
## 102 1351.254   290      37       9
## 103  202.705    60      13       8
## 104  365.985   140      23       6
## 105  305.268   290      54       6
## 106  263.268   160      18       7
## 107  513.694   100       2       7
## 108  152.609   160      11       6
## 109   35.987   150      30       8
## 110  102.568   140      22       7
## 111  215.368   230      36       6
## 112  426.784   230      37       8
## 113  507.772    30       9       3
## 114  233.291    80       2       7
## 115 1035.433   190      12       8
## 116  102.642    90       5       9
## 117  526.142   120      14       7
## 118  624.538   150      20       5
## 119  912.349   230      57       6
## 120  215.994   150      19       8
## 121  561.963   210      35       7
## 122  474.760   180      22       5
## 123  231.523   140      16       7
## 124  678.596   360      53       7
## 125   70.922    10       4       6
## 126 1567.548   240      29       6
## 127  263.598   270      43       7
## 128 1423.568   290      26       7
## 129  715.678   220      28       7
## 130  777.237   230      37       8
## 131  509.430   220      32       5
## 132  964.110   240      34       7
## 133  583.627   260      30       7
## 134  923.373   170      15       7
## 135  344.392   130      23       7
## 136 1095.578   270      31       8
## 137  100.025   140      21       5
## 138   30.425    60      28       1
## 139 1080.342   210      18       7
## 140  799.899   210      28       7
## 141 1071.752   240      37       8
## 142  893.355   210      26       6
## 143  283.161   200      30       8
## 144  917.017   140      10       7
## 145  234.568    90      21       7
## 146  456.897   120      18       9
## 147  206.973   100      14       7
## 148 1294.099   360      38       7
## 149  826.859   180      36       6
## 150  564.158   150      32       7
## 151  192.607   110       9       5
## 152   10.652    90      39       5
## 153   45.689   160      24       7
## 154   42.568   230      45       7
## 155   20.456    40      13       8
## 156  635.192    60      17       6
## 157 1002.273   230      32       7
## 158 1177.047   230      23       6
## 159  507.638   120       0       6
## 160  215.689   150      35       5
## 161  526.480   120      26       6
## 162   26.895    60      19       6
## 163  883.877   280      26       7
## 164    9.104   120      53       8
## 165  103.568   230      29       8
## 166  169.583   230      28       7
## 167  429.504    40      17       6
## 168  223.639   140      26       8
## 169  145.585   360      42       8
## 170  985.968   210      17       6
## 171  500.922   260      36       8
## 172  226.652   250      45       7
## 173 1051.168   200      20       7
## 174   68.093   150      15       7
## 175 1547.159   250      28       8
## 176  393.774   100      27       6
## 177  804.282   260      17       8
## 178  801.577   210      32       8
## 179  450.562   290      46       9
## 180   26.598   220      47       8
## 181  179.061    70      19       1
## 182  345.687   110      22       8
## 183  295.840   250      55       9
## 184 2271.860   320      31       5
## 185 1134.575   300      39       8
## 186  601.434   180      21       6
## 187   45.298   180      36       6
## 188  759.518   200      21       7
## 189  832.869   320      44       7
## 190   56.894   140      27       7
## 191  709.399   100      16       6
## 192   56.895   120      33       6
## 193  767.134   230      33       8
## 194  503.172   150      21       7
## 195  700.929   250      35       9
## 196  910.851   190      26       7
## 197  888.569   240      14       6
## 198  800.615   250      34       6
## 199 1500.000   230      11       8
## 200  785.694   110      20       9

4.1 Regressão linear simples

Por meio da análise de regressão linear, podemos inicialmente estimar um modelo de regressão linear simples no qual a variável dependente são as quantidades vendidas dos álbuns e a variável independente é o gasto em propaganda.

# Estimar modelo de regressão linear simples

advertSalesModel <- lm(
  formula = sales ~ adverts, 
  data = albumSales
  )  

summary(advertSalesModel)
## 
## Call:
## lm(formula = sales ~ adverts, data = albumSales)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -152.949  -43.796   -0.393   37.040  211.866 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.341e+02  7.537e+00  17.799   <2e-16 ***
## adverts     9.612e-02  9.632e-03   9.979   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 65.99 on 198 degrees of freedom
## Multiple R-squared:  0.3346, Adjusted R-squared:  0.3313 
## F-statistic: 99.59 on 1 and 198 DF,  p-value: < 2.2e-16

Os resultados do modelo de regressão permitem que possamos avaliar primeiramente o ajuste do modelo aos dados por meio da análise do R-squared. O resultado para essa medida foi 0,3346. O R-squared nos indica o percentual de variação da variável sales (quantidades vendidas dos álbuns) que é explicada pela variabilidade da variável adverts (propaganda de cada álbum). Nesse caso, concluímos que 33,46% da variação nas quantidades vendidas pode ser explicada pela variação dos gastos com propaganda.

O resultado para F-statistic, refere-se à estatística F da ANOVA. A estatística F e seu respectivo valor p fornecem informações sobre a qualidade da predição feita pelo modelo. Quando o valor p-value < 0,05, podemos concluir que o modelo de regressão resulta em uma previsão significativamente melhor para quantidades vendidas dos álbuns do que se usássemos apenas o valor médio das quantidades vendidas como medida de predição. Em suma, o modelo de regressão em geral prevê as quantidades vendidas significativamente bem.

Uma vez que validamos que o modelo é razoavelmente útil, avaliamos também os coeficientes da regressão (\(\beta_{0}\) e \(\beta_{1}\)):

  • \(\beta_{0}\): Ao avaliarmos o valor p-value para a estatística t referente ao intercepto da regressão, observamos que p-value < 0,05, indicando que o intercepto deve fazer parte do modelo final de regressão. Além disso, o valor do intercepto (\(\beta_{0}\)) é 134,1. Isso indica que, quando nenhum gasto com propaganda é realizado (adverts = 0), o modelo prevê que a quantidade vendida seria 134,1.

  • \(\beta_{1}\): Ao avaliarmos o valor p-value para a estatística t referente ao \(\beta_{1}\) da regressão (coeficiente relacionado à variável independente “adverts”), observamos que p-value < 0,05, indicanddo que o \(\beta_{1}\) deve fazer parte do modelo final de regressão. Além disso, o valor de \(\beta_{1}\) é 0,096. Isso indica que, para cada aumento de 1 unidade nos gastos em propagando, espera-se que ocorra um aumento de 0,096 unidades vendidas. Por exemplo, se $1000 for gasto a mais em propaganda para determinado álbum, espera-se uma elevação de 96 unidades vendidas desse álbum.

O código abaixo pode ser utilizado para representar graficamente a reta estimada pelo modelo de regressão simples ajustado:

# Representar graficamente a reta ajustada pelo modelo de regressão linear
# simples

plot(
  x = albumSales$adverts, 
  y = albumSales$sales,
  main = "Unidades de álbuns vendidas versus propaganda", 
  xlab = "Valor gasto com propaganda", 
  ylab = "Unidades vendidas"
  )
abline(advertSalesModel)

4.2 Regressão linear múltipla

Como o modelo acima é uma regressão simples, a única variável utilizada explica apenas 33,46% da variação nas quantidades vendidas. Para elevar essa performance do modelo, uma alternativa é adicionar outras variáveis independentes que possam agregar poder de explicação da quantidade vendida de álbuns.
Usando o código abaixo, podemos estimar modelo de regressão múltipla com os gastos com propaganda (adverts) e a quantidade de vezes que o álbum foi tocado nas rádios (airplay) como variáveis independentes.

# Estimar modelo de regressão linear múltipla

advertAirplaySalesModel <- lm(
  formula = sales ~ adverts + airplay, 
  data = albumSales
  )  

summary(advertAirplaySalesModel)
## 
## Call:
## lm(formula = sales ~ adverts + airplay, data = albumSales)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -112.121  -30.027    3.952   32.072  155.498 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 41.123811   9.330952   4.407 1.72e-05 ***
## adverts      0.086887   0.007246  11.991  < 2e-16 ***
## airplay      3.588789   0.286807  12.513  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 49.38 on 197 degrees of freedom
## Multiple R-squared:  0.6293, Adjusted R-squared:  0.6255 
## F-statistic: 167.2 on 2 and 197 DF,  p-value: < 2.2e-16

O resultado do R-squared evidencia como adição da variável airplay melhorou a capacidade de o modelo explicar a variabilidade da quantidade de álbuns vendidas. O resultado para essa medida foi agora 0,6255. Ou seja, concluímos que 62,55% da variação nas quantidades vendidas pode ser explicada pela variação nos gastos com propaganda e na quantidade de vezes que o álbum é tocado nas rádios.

O resultado para F-statistic (F = 167.2) e seu respectivo valor p (p-value < 0,05) indicam que o modelo de regressão resulta em uma previsão significativamente melhor para quantidades vendidas dos álbuns do que se usássemos apenas o valor médio das quantidades vendidas como medida de predição. Em suma, o modelo de regressão em geral prevê as quantidades vendidas significativamente bem.

Em relação aos coeficientes da regressão (\(\beta_{0}\), \(\beta_{1}\) e \(\beta_{2}\)), temos a seguinte avaliação:

  • \(\beta_{0}\): Ao avaliarmos o valor p-value para a estatística t referente ao intercepto da regressão, observamos que p-value < 0,05, indicando que o intercepto deve fazer parte do modelo final de regressão. Além disso, o valor do intercepto (\(\beta_{0}\)) é 41,12. Isso indica que, quando nenhum gasto com propaganda é realizado (adverts = 0) e quando o álbum não é tocado nenhuma vez nas rádios (airplay = 0), o modelo prevê que a quantidade vendida seria 41,12.

  • \(\beta_{1}\): Ao avaliarmos o valor p-value para a estatística t referente ao \(\beta_{1}\) da regressão (coeficiente relacionado à variável independente “adverts”), observamos que p-value < 0,05, indicanddo que o \(\beta_{1}\) deve fazer parte do modelo final de regressão. Além disso, o valor de \(\beta_{1}\) é 0,087. Isso indica que, para cada aumento de 1 unidade nos gastos em propagando, espera-se que ocorra um aumento de 0,087 unidades vendidas. Por exemplo, se $1000 for gasto a mais em propaganda para determinado álbum, espera-se uma elevação de 87 unidades vendidas desse álbum.

  • \(\beta_{2}\): Ao avaliarmos o valor p-value para a estatística t referente ao \(\beta_{2}\) da regressão (coeficiente relacionado à variável independente “airplay”), observamos que p-value < 0,05, indicanddo que o \(\beta_{2}\) deve fazer parte do modelo final de regressão. Além disso, o valor de \(\beta_{2}\) é 3,59. Isso indica que, para cada aumento de 1 unidade nas quantidade de vezes que o álbum é tocado nas rádios, espera-se que ocorra um aumento de 3,59 unidades vendidas do álbum. Por exemplo, se tivermos 100 novas vezes na qual o álbum for tocado nas rádios, espera-se uma elevação de 359 unidades vendidas desse álbum.

4.3 Akaike Information Criteria (AIC)

Além da métrica do R-squared, podemos também usar a métrica Akaike Information Criteria (AIC) como medida alterantiva para a avaliar o desempenho dos modelos de regressão linear. Usamos também o AIC, pois o grande problema do R-squared é que quando você adiciona mais variáveis ao modelo, ele vai aumentar. Dessa forma, ele sensível ao aumento de variáveis independentes no modelo. Assim, se você está decidindo qual dos dois modelos se ajusta melhor aos dados, o modelo com mais as variáveis preditoras se ajustarão melhor, pois o R-squared será maior. Para solucionar isso, podemos usar medidas de ajustes que penalizam a inclusão de mais variáveis independentes no modelo. É isso que faz o AIC. Com isso, prioriza-se o modelo mais parcimonioso. No código abaixo, estimamos o AIC para os dois modelos estimados até aqui: advertSalesModel e advertAirplaySalesModel.

# Calcular o AIC para o modelo aicAdvertSalesModel

aicAdvertSalesModel <- AIC(
  object = advertSalesModel
  )  

aicAdvertSalesModel
## [1] 2247.375
# Calcular o AIC para o modelo aicAdvertAirplaySalesModel

aicAdvertAirplaySalesModel <- AIC(
  object = advertAirplaySalesModel
  )  

aicAdvertAirplaySalesModel
## [1] 2132.398

A análise do AIC se dá sempre de forma comparativa. Comparando-se os valores de AIC entre dois ou mais modelos. Aquele modelo com menor valor de AIC será o modelo com melhor ajuste aos dados. Ao análisarmos os valores de AIC para os modelos testados, verificamos que o valor de AIC do modelo advertSalesModel (com uma variável independente) é 2247.37 e do modelo advertAirplaySalesModel (com duas variáveis independentes) é 2132.40. Diante disso, já levando em conta a penalização por incluir uma variável a mais no modelo advertAirplaySalesModel, esse modelo possui uma AIC menor e é, portanto, o modelo com melhor ajuste.

4.4 Checagem das suposições do modelo de regressão linear

4.4.1 Independência entre os resíduos (erros)

Para quaisquer duas observações, os termos residuais (erros) devem ser não correlacionados (ou independentes). Essa eventualidade é descrita como falta de autocorrelação. Para testar a falta de autocorrelação entre os resíduos utiliza-se o teste de Durbin–Watson. Nesse teste, a hipótese nula é de ausência de autocorrelação entre os resíduos. Portanto, esperamos não rejeitar a hipótese nula (p-value > 0,05).

# Estimar os valores de VIF

durbinWatsonTest(advertAirplaySalesModel)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.05150748      2.055283   0.656
##  Alternative hypothesis: rho != 0

O valor do p-value para a estatística durbin watson é 0.684 (p-value > 0,05). Portanto, aceita-se a hipótese nula de que os resíduos não são autocorrelacionados.

4.4.2 Multicolinearidade

A multicolinearidade existe quando há uma forte correlação entre dois ou mais preditores em um modelo de regressão. A multicolinearidade representa um problema apenas para a regressão múltipla, porque, por óbvio, a regressão simples possui apenas uma variável preditora. Se houver colinearidade perfeita entre os preditores, torna-se impossível obter estimativas únicas dos coeficientes de regressão porque há um número infinito de combinações de coeficientes que funcionariam igualmente bem. Se tivermos dois preditores perfeitamente correlacionados, então os valores de \(\beta\) para cada variável são intercambiáveis. Ou seja, não temos confiabilidade para a estimação dos betas.

Há algumas medidas que podem ser usadas para checar se há ou não multicolinearidade entre os preditores. A medida base para esses teste é o fator de inflação de variância (variance inflation factor - VIF). O VIF indica se um preditor tem uma forte relação linear com o(s) outro(s) preditor(es). Embora não existam regras rígidas e rápidas sobre qual valor do VIF deve causar preocupação, temos três avaliações a ser realizadas:

  1. Se o maior VIF for maior que 10, então há motivo para preocupação (Bowerman & O’Connell, 1990; Mayers, 1990).

  2. Relacionada ao VIF está a estatística de tolerância, que é seu recíproco (1/VIF). Assim, valores para a estatística de tolerância abaixo de 0,1 indicam sérios problemas, embora Menard (1995) sugere que valores abaixo 0,2 já são dignos de preocupação.

  3. Se o VIF médio for substancialmente maior que 1, a regressão pode ser tendenciosa (Bowerman & O’Connell, 1990).

# Estimar os valores de VIF

vif(advertAirplaySalesModel)
##  adverts  airplay 
## 1.010489 1.010489

Nenhum valor de VIF sendo maior que 10, então não há motivo para preocupação com multicolinearidade.

# Estimar a estatística de tolerância

1/vif(advertAirplaySalesModel)
##   adverts   airplay 
## 0.9896199 0.9896199

Nenhum valor para a estatística de tolerância está abaixo de 0,2, então não há motivo para preocupação com multicolinearidade.

# Estimar o valor médio de VIF

mean(vif(advertAirplaySalesModel))
## [1] 1.010489

Valor médio de VIF não é substancialmente maior do que 1, então não há motivo para preocupação com multicolinearidade.

4.4.3 Suposições sobre linearidade, homocedasticidade dos resíduos e erros normalmente distribuídos

  1. Linearidade: Os valores médios da variável de resultado para cada incremento do o(s) preditor(es) está(ão) ao longo de uma linha reta. Em inglês simples, isso significa que é assumido que a relação que estamos modelando é linear. Se modelarmos uma relação não linear usando um modelo linear, isso obviamente limita a generalização das descobertas

  2. Homocedasticidade: Em cada nível da(s) variável(is) preditora(s), a variância dos termos residuais deve ser constante. Isso significa apenas que os resíduos em cada nível do(s) preditor(es) deve(m) ter a mesma variância (homocedasticidade). Quando as variações são muito desiguais, diz-se que há heterocedasticidade.

  3. Erros normalmente distribuídos: assume-se que os resíduos no modelo são aleatórios, variáveis normalmente distribuídas com média 0. Essa suposição significa simplesmente que as diferenças entre o modelo e os dados observados são mais frequentemente zero ou muito próximas de zero, e que diferenças muito maiores que zero acontecem apenas ocasionalmente. Algumas pessoas confundem essa suposição com a ideia de que os preditores devem ser distribuído normalmente. Os preditores não precisam ser normalmente distribuídos.

Para checar essas três suposições, podemos plotar o gráfico dos resíduos versus os valores preditores pelo modelo (fitted). De acordo com (Field, Miles, and Field 2012), o quadrante indicado como “normal” na figura abaixo é o resultado que indica o atendimento dessas três suposições.

# plot the residuals vs fitted values

plot(advertAirplaySalesModel, 1)

O gráfico acima está mais próximo do cenário normal.

Além disso, sobre checar se os resíduos (erros) seguem uma distribuição normal, podemos também plotar o histograma dos resíduos, o QQ plot e fazer o teste de Shapiro-Wilk.

# plot histograma dos resíduos

hist(
  x = advertAirplaySalesModel$residuals, 
  breaks = 10
  )

Aqui, no histograma dos resíduos, temos uma comportamento compatível com uma distribuição normal.

# plot QQ plot dos resíduos

plot(advertAirplaySalesModel, 2)

O resultado do QQ plot deve apresentar os resíduos próximos da linha diagonal do gráfico. Nesse caso, podemos afimar que isso está ocorrendo, compatível com uma distribuição normal.

Por fim, a distribuição normal dos resíduos pode ainda ser chacada utilizando o teste de Shapiro-Wilk. No teste de Shapiro-Wilk, a hipótese nula é que os dados seguem a distribuição normal.

# Fazer o teste Shapiro-Wilk para testar se os resíduos são nomalmente distribuídos

shapiro.test(advertAirplaySalesModel$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  advertAirplaySalesModel$residuals
## W = 0.9913, p-value = 0.2741

Como o p-value > 0,05, então aceitamos a hipótese nula que os resíduos seguem a distribuição normal.

4.5 Predição utilizando o modelo de regressão estimado

Todo modelo de regressão estimado, formado por seus parâmetros, pode ser utilizado para estimar o valor da variável dependente dados valores específicos para as variáveis independentes. Para isso, basta ter uma base de dados com os valores para as variáveis independentes do modelo de regressão estimado (com os nomes das colunas iguais aos nomes )

# Criar uma base de casos novos de álbuns para os quais queremos prever as 
# quantidades vendidas.
baseTeste <- data.frame(
  adverts = c(105.65, 1504.25, 554.98),
  airplay = c(85, 47, 2)
)

baseTeste
##   adverts airplay
## 1  105.65      85
## 2 1504.25      47
## 3  554.98       2

Nessa base de teste criada, temos três novos casos de álbuns para os quais queremos projetar as unidades vendidas. Para fazer essa predição, podemos usar a função predict() conforme o código abaixo.

# Usar o modelo advertAirplaySalesModel para predizer 

qtdVendasPreditas <- predict(
  object = advertAirplaySalesModel,
  newdata = baseTeste
  )

qtdVendasPreditas
##         1         2         3 
## 355.35054 340.49679  96.52197

Ao aplicar o modelo advertAirplaySalesModel para os três casos novos, temos as quantidades projetadas acima para cada um desses álbuns. Abaixo, apresenta-se manualmente como foi feita predição para que você tenha a intuição de como realizar a predição via modelo de regressão linear.

# solicitar o summary do modelo advertAirplaySalesModel para verificar os valores dos parâmetros

summary(advertAirplaySalesModel)
## 
## Call:
## lm(formula = sales ~ adverts + airplay, data = albumSales)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -112.121  -30.027    3.952   32.072  155.498 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 41.123811   9.330952   4.407 1.72e-05 ***
## adverts      0.086887   0.007246  11.991  < 2e-16 ***
## airplay      3.588789   0.286807  12.513  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 49.38 on 197 degrees of freedom
## Multiple R-squared:  0.6293, Adjusted R-squared:  0.6255 
## F-statistic: 167.2 on 2 and 197 DF,  p-value: < 2.2e-16

Agora usa-se os parâmetros para fazer cada predição. Compare cada valor com o resultado da função predict() rodada acima para apenas comprovar que os valores feitos manualmente ou via a função predict() são os mesmos.

# Predição manual para os três casos

beta0 <- advertAirplaySalesModel$coefficients[1]
beta1 <- advertAirplaySalesModel$coefficients[2]
beta2 <- advertAirplaySalesModel$coefficients[3]

predCaso1 <- beta0 + beta1 * 105.65 + beta2 * 85

predCaso2 <- beta0 + beta1 * 1504.25 + beta2 * 47

predCaso3 <- beta0 + beta1 * 554.98 + beta2 * 2 

conferencia <- bind_cols(
    PredFuncaoPredict = qtdVendasPreditas,
    PredManual = c(predCaso1, predCaso2, predCaso3)
  )

conferencia
## # A tibble: 3 × 2
##   PredFuncaoPredict PredManual
##               <dbl>      <dbl>
## 1             355.       355. 
## 2             340.       340. 
## 3              96.5       96.5

References

Field, Andy P., Jeremy Miles, and Zoë Field. 2012. Discovering Statistics Using R. London ; Thousand Oaks, Calif: Sage.