위 회귀분석을 벡터관점에서, 파이썬을 사용해서 풀어보자
import numpy as np
STUDY = np.array([[21], [24], [26], [27], [29], [25], [25], [30]])
GPA = np.array([2.8, 3.4, 3.0, 3.5, 3.6, 3.0, 2.7, 3.7]).transpose()
vector8_1 = np.ones([8, 1])
A = np.hstack((vector8_1, STUDY))
A_transpose = A.transpose()
y(GPA)는 8x1 matrix , X(STUDY)는 8x2 matrix, b$$(\beta_{1},\beta_{2})$$는 2x1 matrix이다
좀더 단순히 , y 벡터와 X 평면간의 거리를 최소화하는 지점 Xb를 찾는 것이다
어떤 지점에서 y와 A평면간의 거리가 최소화될까? 바로 y와 X가 직교하는 지점이다
그러므로 X에 의해 선형변환한 8x1 벡터 Xb를 통해 아래와 같은 식을 도출 할 수 있다
$$ X \cdot (y-Xb) =0 $$
$$ X^{T}(y-Xb)=0$$
$$X^{T}y=X^{T}Xb$$
자 그러면 우리는 $$\beta$$를 구했다
여기까지의 Code
import numpy as np
STUDY = np.array([[21], [24], [26], [27], [29], [25], [25], [30]])
GPA = np.array([2.8, 3.4, 3.0, 3.5, 3.6, 3.0, 2.7, 3.7]).transpose()
vector8_1 = np.ones([8, 1])
A = np.hstack((vector8_1, STUDY))
A_transpose = A.transpose()
# Beta_hat = (A'A)^-1 A'b, (X'X)^-1X'b,
temp = np.linalg.inv(np.dot(A_transpose, A))
temp = np.dot(temp, A_transpose)
Beta = np.dot(temp, GPA)
print(Beta)
위에서 구한 $$\beta$$를, X로 선형변환시켜주면 $$\hat{Y} $$ 이 구해진다
code
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
STUDY = np.array([[21], [24], [26], [27], [29], [25], [25], [30]])
GPA = np.array([2.8, 3.4, 3.0, 3.5, 3.6, 3.0, 2.7, 3.7]).transpose()
vector8_1 = np.ones([8, 1])
A = np.hstack((vector8_1, STUDY))
A_transpose = A.transpose()
# Beta_hat = (A'A)^-1 A'b, (X'X)^-1X'b,
temp = np.linalg.inv(np.dot(A_transpose, A))
temp = np.dot(temp, A_transpose)
Beta = np.dot(temp, GPA)
# print(Beta)
# GPA_hat
GPA_hat = np.dot(A, Beta)
# print(GPA_hat)
residual = GPA-GPA_hat
# print(residual)
# DRAW DATA
ols = linear_model.LinearRegression()
model = ols.fit(STUDY, GPA)
GPA_TEST = np.linspace(20, 31, 100).reshape(-1, 1) # 2D ARRAY
GPA_predict = ols.predict(GPA_TEST)
plt.scatter(STUDY[:], GPA[:])
plt.plot(GPA_TEST, GPA_predict, color='blue')
plt.show()
# USE
# temp = np.linalg.inv(np.dot(A_transpose, A)) # (AT A)-1
# temp = np.dot(A, temp)
# temp = np.dot(temp, A_transpose)
# GPA_hat = np.dot(temp, GPA)
Reference: 서강대 남준우 교수 계량경제학 수업, 허준영 교수 경기변동론 수업, https://heung-bae-lee.github.io/2020/06/09/linear_algebra_06/
Moment와 Moment generating function (0) | 2021.10.05 |
---|---|
Jensen Inequality (0) | 2021.10.05 |
Markov Inequality, Chebyshev Inequality (0) | 2021.10.05 |
회귀분석 Regression Analysis (2) (0) | 2021.09.14 |
회귀분석 Regression Analysis (1) (0) | 2021.07.29 |
댓글 영역