Python Data/Python 실행

Numpy: 넘파이(Numpy)에서 최소자승법(least squares method) 실행하기

palefaceman 2022. 9. 22. 11:05

회귀분석(regression analysis)에서 최소자승법(meothod of least squares)은 이용하여 데이터에 가장 적합한 직선을 찾아내는 데 사용한다.

 

넘파이(Numpy)에 linalg.lstsq() 함수를 사용하여 최소자승법(meothod of least squares)을 실행할 수 있다.

 

아래 순차적 예시에서 최소자승법(meothod of least squares)을 실행 해본다.

 

단계 1: 독립변수(independent variables)와 종속변수(dependent variables)를 입력한다.

첫째로, 넘파이(Numpy) 배열로 데이터를 생성한다.

 

import numpy as np

#x,y 변수 배열 변수 생성
x = np.array([6, 7, 7, 8, 12, 14, 15, 16, 16, 19])

y = np.array([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])

단계 2: 최소자승법(meothod of least squares)을 실행한다.

#최소자승법(meothod of least squares)실행
np.linalg.lstsq(np.vstack([x, np.ones(len(x))]).T, y, recond=None)[0]

array([0.96938776, 7.76734694])

함수 실행 결과 반환되는 배열은 최소자승법(meothod of least squares)에 따라 구해진 기울기(slope)와 y-절편(intercept)을 보여준다.

 

배열을 보면

  • 기울기: 0.969
  • y-절편: 7.767

 

을 알 수 있다. 

단계 3: 결과를 해석한다.

다음으로 결과를 해석한다. 어떻게 결과를 해석하는지 해석 방법을 알아본다.

  • x(독립변수)가 0에서 시작할 때 평균값은 7.767이다.
  • x(독립변수)가 1씩 증가할 때마다 y(종속변수)가 평균 0.969만큼 커진다.(양의 상관관계)

 

최소자승법(meothod of least squares)을 이용하여 어느 값 x에 대한 y에 값을 예측하는 데 사용할 수도 있다.

 

예를 들어 보면,

  • ŷ = 7.767 + 0.969x
  • ŷ = 7.767 + 0.969(10)
  • ŷ = 17.457

 

x = 10 일 때 y 값은 17.457으로 예측할 수 있다.

 

관련 포스팅