1. Introduction
최소제곱법은 주어진 데이터와의 오차를 최소화하는 직선을 구하는 방법입니다.
![](https://blog.kakaocdn.net/dn/Sjyz4/btrJBcqfwvg/YjNAMvoBQDNqhBWT2zRiNK/img.png)
위 그림은 주어진 5개의 데이터에 대해 두 개의 점을 지나며 오차를 줄이는 적당한 직선(linear function)을 그린 것입니다.
그러나 몇 개의 점을 지난다고 해서 오차를 완벽히 줄일 수 있는 것은 아닙니다.
2. Sum of the square errors
![](https://blog.kakaocdn.net/dn/8zLqj/btrJMzKJCIr/y7Efc4RPm0V8HibXe7kGE1/img.png)
위 그림은 주어진 데이터(xi, yi)에 대해 그린 직선 y = f(x) 과의 오차 ei를 시각적으로 표현하였습니다.
ei 는 yi 에서 선형함수의 함숫값 f(xi) 을 뺀 것의 절댓값으로 정의됩니다.
y = f(x)가 y = ax + b 형태로 표현된다고 합시다.
![](https://blog.kakaocdn.net/dn/bFRoR4/btrJFPBhDDy/qm9tNDEfSOQlPM7wUPmKA0/img.png)
이때 error(distance between the point and the graph of f) 는 아래와 같습니다.
![](https://blog.kakaocdn.net/dn/Id8lZ/btrJHd2gcL2/JFGDm1YqA8nlrcMBkVHvb0/img.png)
이 error 들을 제곱해 모두 더한 것을 Sum of the square errors (최소제곱합) 이라 합니다.
![](https://blog.kakaocdn.net/dn/9H31R/btrJEMEPrGb/EaqPzHGOEmbVS3u9VZ79N0/img.png)
(참고)
![](https://blog.kakaocdn.net/dn/bdU1Li/btrJNj8G0As/0j11zX3DD4tIzMbqfBEq50/img.png)
3. Least Squares line
최소제곱합은 마치 통계에서 등장하는 편차의 제곱과 유사해보입니다.
이 최소제곱합 E가 최소가 되도록 하는 직선 y = ax + b 를 구해봅시다.
직선 y = ax + b 는 a, b 의 관점에서 볼 때 2변수 함수입니다.
a와 b에 의해 직선이 결정되고 또한 최소제곱합 또한 그 값이 변합니다.
최소제곱합이 최소가 되는 지점은 a와 b에 대한 E의 편미분계수가 모두 0이 되는 지점이어야 합니다.
![](https://blog.kakaocdn.net/dn/brwqGH/btrJBc4QpCr/8aXLqBTR5FZIkMXeCmkYJ1/img.png)
E를 편미분하여 위 두 식으로 정리합니다.
![](https://blog.kakaocdn.net/dn/uRPTf/btrJDhYqxap/tdJkKRIEbWkRCHTU1B9sv0/img.png)
최소제곱합 E가 최소가 되게하는 두 편미분 관계식으로부터 다음 식을 얻습니다.
![](https://blog.kakaocdn.net/dn/sNYEI/btrJEMrhPDm/nCjTM1irntsKCGjXSrfe4k/img.png)
두 식을 전개해서 정리하면 다음과 같습니다.
![](https://blog.kakaocdn.net/dn/uE9bR/btrJEMdLAAN/vZDhtDSX9XWjbkqDKK5Ja0/img.png)
Y, A, X를 다음과 같이 설정할 때 위 식은 간단한 행렬방정식(Matrix equation)으로 변합니다.
Y는 데이터의 y값들, A는 데이터의 x값들과 크기가 n이고 모든 요소가 1인 열벡터를 나란히 놓은 것, X는 우리의 목표인 y = ax + b 의 계수입니다.
![](https://blog.kakaocdn.net/dn/bKknVx/btrJE3S8zvv/DdQph3ukcKWAzk6cdSNfS0/img.png)
![](https://blog.kakaocdn.net/dn/cJsfib/btrJLSqdjIP/UaKDPsTKFbWVXfqB4kuHD0/img.png)
(참고)
- 좌변
![](https://blog.kakaocdn.net/dn/lQk50/btrJNkfsBiM/YOq7ZrhZra6P8ChL5nF8gk/img.png)
![](https://blog.kakaocdn.net/dn/cBHz1r/btrJMzxc7E0/Vt4d76U9Vs0R77NIkaObek/img.png)
![](https://blog.kakaocdn.net/dn/cGkbHO/btrJGUvAkPA/QsKFef76q0ngEKkUVkSyz0/img.png)
![](https://blog.kakaocdn.net/dn/0MNW2/btrJD4r8UdU/pvE4kBpKlvUSLWteMKmKs1/img.png)
![](https://blog.kakaocdn.net/dn/Wf3YK/btrJARNoo2U/sbJGCo9Nbpf8VJM1TR2T8K/img.png)
2. 우변
![](https://blog.kakaocdn.net/dn/bjvRLi/btrJAQVgYWC/g5VXVyoFovxJshJw1m5bk1/img.png)
![](https://blog.kakaocdn.net/dn/d9XA7N/btrJGUbjlfv/aUcQuc3L1BS1C3K2EhSlI0/img.png)
![](https://blog.kakaocdn.net/dn/cU6QbQ/btrJBdJqYEy/O8yGaIq6AAztmj6Nlj0njk/img.png)
![](https://blog.kakaocdn.net/dn/cjKZv0/btrJFOWFslo/HsjptxHCWteEdRxGC37V00/img.png)
우리의 목적은 최소제곱합 E를 최소로 하는 y = ax + b를 구하는 것이었으니 x를 구하는 식을 구해봅시다.
![](https://blog.kakaocdn.net/dn/XQSNM/btrJNI8uEca/TtTkkKbaVHopaXS3l7miHK/img.png)
![](https://blog.kakaocdn.net/dn/b8DdrA/btrJKtYz1pu/2bPworWK3S6uuaxNM9iA5K/img.png)
![](https://blog.kakaocdn.net/dn/Pub7s/btrJHdOI0ha/bBK2koLlyKKrhCrFWAhI9K/img.png)
※ X는 y = ax + b 의 계수 (a,b)의 열벡터였습니다.
여기서 주의해야 하는게 우변의 괄호식을 전개하여 다음과 같이 X를 구하는 것은 명백한 오류라는 점입니다.
![](https://blog.kakaocdn.net/dn/baHsEF/btrJDhjNlwZ/IUAuaAjCHIKweav9hU0oG1/img.png)
![](https://blog.kakaocdn.net/dn/od3Qf/btrJKZ3IR4r/BhRD51ZoIFPc1Q1kcjq6Tk/img.png)
![](https://blog.kakaocdn.net/dn/dusxng/btrJLTioKbp/5O6RwOVuuYqSMqZDywKOXK/img.png)
A는 n x 2 행렬이기 때문에 데이터가 두 개가 아니라면 역행렬이 정의되지 않습니다.
애초에 데이터가 두 개라면 두 점을 지나는 직선을 구하면 되기 때문에 최소제곱합으로 선형함수를 구할 일도 없습니다.
이와 같이 X를 구하는 방법을 최소제곱법(Least squares method ; Method of least squares) 이라 부릅니다.
4. Example
(예제) 주어진 다섯 개의 데이터에 대해 최소제곱법을 수행하여 선형회귀직선을 구하여라
![](https://blog.kakaocdn.net/dn/4MvHV/btrJLSKw1Hg/KTezmG22dlZ6AS9VIsJyIk/img.png)
(i) 주어진 데이터들로 Y, A, X를 세팅합니다.
![](https://blog.kakaocdn.net/dn/BuQGV/btrJEMkz02t/6KEnXjeynOXQbC1rdCvvPk/img.png)
(ii) X를 계산합니다.
우리의 목표는 다음과 같습니다.
![](https://blog.kakaocdn.net/dn/cwb7s9/btrJIsFA4Jl/hGDIaQ3ziaIxqhDiOUUGq1/img.png)
![](https://blog.kakaocdn.net/dn/bNhKcd/btrJD46Lhvp/T4LODaIR4mOp4tqJtpHuEk/img.png)
![](https://blog.kakaocdn.net/dn/dm807u/btrJFOvDgiO/Iz9MyDdKIAmE1GeJNhPZHk/img.png)
이를 계산하여 구한 X는 다음과 같습니다.
![](https://blog.kakaocdn.net/dn/t64S2/btrJMAiyEhL/NO8TJ4XZUs8OnZ7D6DJOY0/img.png)
따라서 주어진 5개의 데이터에 최소제곱법을 적용해 얻은 선형회귀직선은 y = 1.1x + 0.5 입니다.
![](https://blog.kakaocdn.net/dn/LYlzp/btrJBE7UBqY/ZiNepkkdUPpcK6Ryd5wQK1/img.png)
![](https://blog.kakaocdn.net/dn/s6zK5/btsHUCvF5vF/PhCaCtKtNgH589At4kpZOk/img.webp)
☕ 커피 한 잔보다 싼 선형대수학 모의고사 ☕
잘 공부하고 있는지 확인하실 수 있도록
기말고사를 대비할 수 있는 가벼운 모의고사를 준비했습니다.
✅ 커피 한 잔보다 싼 3,900원
✅ 총 12문제, 상세한 해설 포함 (20p가량)
✅ 문제와 해설 모두 한국어입니다.
✅ 출제단원
- 연립방정식
- LU분해
- 그람-슈미트 과정
- QR분해
- 고유값과 고유벡터
- 역행렬
- 특잇값 분해(SVD)
🚫 본 모의고사는 시험 대비 및 복습용으로 제작되었습니다.
🚫 자료의 무단 배포 및 판매 시 저작권법에 의한 처벌을 받을수 있습니다
🚫 전자책 특성 상 환불이 불가합니다.
✉️ 질문 및 기타 문의는 hyonklee@gmail.com
시험지 샘플입니다.
![](https://blog.kakaocdn.net/dn/LWuOv/btsHSWI6a8f/zgn4pImIeAC789iouklwzk/img.png)
![](https://blog.kakaocdn.net/dn/tsr1l/btsHTHLfr29/BhtuzBdmmFm0OH4C6t11E0/img.png)
해설 샘플입니다.
![](https://blog.kakaocdn.net/dn/cbQPk6/btsHUOCCG3u/VW9nhNm9Z8vKKpMSLqo190/img.png)
![](https://blog.kakaocdn.net/dn/b23me3/btsHTGld3GY/WhSw3qOzqO04wosh5bULZK/img.png)
'MATHEMATICS > 선형대수학' 카테고리의 다른 글
[선형대수학] 회전행렬(Rotation matrix), 회전변환 (0) | 2023.12.28 |
---|---|
[선형대수학] 고윳값, 고유벡터부터 대각화, 스펙트럼 분해까지 (1) | 2023.12.12 |
[선형대수학] 케일리-해밀턴 정리 : 행렬의 거듭제곱, 역행렬 (Cayley–Hamilton theorem) (0) | 2022.08.15 |
[선형대수학] 그람-슈미트 과정 (Gram-Schmidt Process) 예제 (0) | 2021.12.21 |
[선형대수학] 크래머 공식 (Cramer's Rule) (0) | 2021.11.18 |