회귀분석(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으로 예측할 수 있다.
관련 포스팅
'miscellaneous > Python 실행' 카테고리의 다른 글
파이썬에서 기하평균(Geometric Mean) 계산하기 (0) | 2022.09.26 |
---|---|
Pandas: 넘파이(Numpy) where() 함수 Pandas에서 사용하기 (0) | 2022.09.19 |
Pandas: 문자열에서 판다스 데이터프레임(pandas DataFrame) 생성하기 (0) | 2022.09.16 |
NumPy: np.linspace 와 np.arange의 차이점 (0) | 2022.09.15 |
Numpy mean() vs average(): 차이점 (0) | 2022.08.29 |