Hur linjär regression fungerar

Intermediär regression i R

Richie Cotton

Data Evangelist at DataCamp

Ett klassiskt diagram för enkel linjär regression

Ett spridningsdiagram med en trendlinje för linjär regression.

Intermediär regression i R

Visualisera residualer

Spridningsdiagrammet med trendlinjen, plus linjesegment från punkterna till trendlinjen som representerar residualer.

Intermediär regression i R

Ett mått för bästa anpassning

Den enklaste idén (som inte fungerar)

  • Summera alla residualer.
  • Vissa residualer är negativa.

Nästa enklaste idé (som fungerar)

  • Kvadrera varje residual och summera kvadraterna.
  • Detta kallas kvadratsumman.
Intermediär regression i R

En utvikning om numerisk optimering

Ett linjediagram för en andragradsekvation

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

Intermediär regression i R

Lösa ekvationen med kalkyl

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

  • Inte alla ekvationer kan lösas på det här sättet.
  • Du kan låta R räkna ut det.

line-quad-soln.png

Intermediär regression i 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
Intermediär regression i R

Mindre justeringar

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
Intermediär regression i R

En algoritm för linjär regression

  1. Definiera en funktion som beräknar kvadratsumman.
  2. Anropa optim() för att hitta koefficienter som minimerar funktionen.
calc_sum_of_squares <- function(coeffs) {

intercept <- coeffs[1] slope <- coeffs[2]
# More calculation!
}
optim(
  par = ???,
  fn = ???
)
Intermediär regression i R

Nu kör vi en övning!

Intermediär regression i R

Preparing Video For Download...