Como funciona a regressão linear

Regressão intermediária no R

Richie Cotton

Data Evangelist at DataCamp

O gráfico padrão de regressão linear simples

Um gráfico de dispersão com uma linha de tendência de regressão linear.

Regressão intermediária no R

Visualizando os resíduos

O gráfico de dispersão com a linha de tendência, mais segmentos dos pontos até a linha, representando resíduos.

Regressão intermediária no R

Uma métrica para o melhor ajuste

A ideia mais simples (que não funciona)

  • Some todos os resíduos.
  • Alguns resíduos são negativos.

A próxima ideia simples (que funciona)

  • Eleve cada resíduo ao quadrado e some os quadrados.
  • Isso é chamado de soma dos quadrados.
Regressão intermediária no R

Um desvio para otimização numérica

Um gráfico de linha de uma equação quadrática

xy_data <- tibble(
  x = seq(-4, 5, 0.1),
  y = x ^ 2 - x + 10
)

ggplot(xy_data, aes(x, y)) + 
  geom_line()

line-quad.png

Regressão intermediária no R

Usando cálculo para resolver a equação

$y = x ^ 2 - x + 10$

$\frac{\partial y}{\partial x} = 2 x - 1$

$0 = 2 x - 1$

$x = 0.5$

$y = 0.5 ^ 2 - 0.5 + 10 = 9.75$

  • Nem todas as equações podem ser resolvidas assim.
  • Você pode deixar o R resolver.

line-quad-soln.png

Regressão intermediária no R

optim()

calc_quadratic <- function(x) {
  x ^ 2 - x + 10
}
optim(par = 3, fn = calc_quadratic)
$par
[1] 0.4998047

$value
[1] 9.75

$counts
function gradient 
      30       NA 

$convergence
[1] 0

$message
NULL
Regressão intermediária no R

Pequenos ajustes

calc_quadratic <- function(coeffs) {
  x <- coeffs[1]
  x ^ 2 - x + 10
}
optim(par = c(x = 3), fn = calc_quadratic)
$par
        x 
0.4998047 

$value
[1] 9.75

$counts
function gradient 
      30       NA 

$convergence
[1] 0

$message
NULL
Regressão intermediária no R

Um algoritmo de regressão linear

  1. Defina uma função para calcular a métrica de soma dos quadrados.
  2. Chame optim() para encontrar coeficientes que minimizem essa função.
calc_sum_of_squares <- function(coeffs) {

intercept <- coeffs[1] slope <- coeffs[2]
# More calculation!
}
optim(
  par = ???,
  fn = ???
)
Regressão intermediária no R

Vamos praticar!

Regressão intermediária no R

Preparing Video For Download...