선형 회귀의 작동 방식

R 중급 회귀

Richie Cotton

Data Evangelist at DataCamp

표준 단순 선형 회귀 그래프

선형 회귀 추세선을 가진 산점도.

R 중급 회귀

잔차 시각화

선형 회귀 추세선과 각 점에서 선까지의 선분(잔차)을 표시한 산점도.

R 중급 회귀

최적 적합도의 지표

가장 단순한 생각(작동하지 않음)

  • 모든 잔차를 합칩니다.
  • 일부 잔차는 음수입니다.

그다음 단순한 생각(작동함)

  • 각 잔차를 제곱해 합합니다.
  • 이를 제곱합(sum of squares)이라 합니다.
R 중급 회귀

수치 최적화로의 잠깐 우회

이차식 선 그래프

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

R 중급 회귀

미적분으로 방정식 풀기

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

  • 모든 방정식을 이렇게 풀 수 있는 것은 아닙니다.
  • R가 계산하도록 할 수 있습니다.

해의 위치를 표시한 직선과 이차식 그래프.

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
R 중급 회귀

작은 개선

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
R 중급 회귀

선형 회귀 알고리즘

  1. 제곱합 지표를 계산하는 함수를 정의합니다.
  2. optim()으로 이 함수를 최소화하는 계수를 찾습니다.
calc_sum_of_squares <- function(coeffs) {

intercept <- coeffs[1] slope <- coeffs[2]
# More calculation!
}
optim(
  par = ???,
  fn = ???
)
R 중급 회귀

연습해 봅시다!

R 중급 회귀

Preparing Video For Download...