1.βiβi의 구간추정,
2-t실용기준/ 유의확률(p-value)/ 유의수준의 의미
3. 다중회귀분석에서 F-통계치가 어떻게 사용되는지
4. F통계치와 t통계치와의 관계
현재, 최소자승법을 이용해
$$ \hat{Y_{i}} =b_{1} + b_{2}X_{2i} + b_{3}X_{3i} $$
의 값을 모두 구한 상태다.
지난 포스트에선 gretl과 excel을 이용해 회귀식과 정보들을 구했는데,
이번에는 python을 활용해 구해보도록 하자
(gretl에선 Analysis 탭 - Confidence interval for coefficient)
https://aegis4048.github.io/mutiple_linear_regression_and_visualization_in_python
Multiple Linear Regression and Visualization in Python | Pythonic Excursions
Strengthen your understanding of linear regression in multi-dimensional space through 3D visualization of linear models.
aegis4048.github.io
를 참고해서 3D모형으로 구현해봤다
from mpl_toolkits.mplot3d import Axes3D
from sklearn import linear_model
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
plt.rcParams['figure.figsize'] = (10, 6)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
df = pd.read_csv(BASE_DIR+'\pitcher.csv')
X = df[['WIN', 'SAVE']].values.reshape(-1, 2)
Y = df['MONEY']
x2 = X[:, 0]
x3 = X[:, 1]
x2_pred = np.linspace(0, 20, 60)
x3_pred = np.linspace(0, 50, 60)
xx2_pred, xx3_pred = np.meshgrid(x2_pred, x3_pred)
model_viz = np.array([xx2_pred.flatten(), xx3_pred.flatten()]).T
###############################
ols = linear_model.LinearRegression()
model = ols.fit(X, Y)
predicted = model.predict(model_viz)
R_Squared = model.score(X, Y)
################################
plt.style.use('default')
fig = plt.figure(figsize=(10, 6))
ax1 = fig.add_subplot(131, projection='3d')
ax2 = fig.add_subplot(132, projection='3d')
ax3 = fig.add_subplot(133, projection='3d')
axes = [ax1, ax2, ax3]
for ax in axes:
ax.plot(x2, x3, Y, color='k', zorder=15,
linestyle='none', marker='o', alpha=0.5)
ax.scatter(xx2_pred.flatten(), xx3_pred.flatten(), predicted,
facecolor=(0, 0, 0, 0), s=20, edgecolor='#70b3f0')
ax.set_xlabel('WIN', fontsize=12)
ax.set_ylabel('SAVE', fontsize=12)
ax.set_zlabel('MONEY', fontsize=12)
ax1.view_init(elev=28, azim=120)
ax2.view_init(elev=4, azim=114)
ax3.view_init(elev=60, azim=165)
fig.tight_layout()
plt.show()
인데, 우리가 필요한 회귀식에 대한 정보는 sklearn 라이브러리와 pandas, numpy를 통해 아래와 같이 구할 수 있다
from sklearn import linear_model
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
plt.rcParams['figure.figsize'] = (10, 6)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
df = pd.read_csv(BASE_DIR+'\pitcher.csv')
X = df[['WIN', 'SAVE']].values.reshape(-1, 2)
Y = df['MONEY']
x2 = X[:, 0]
x3 = X[:, 1]
x2_pred = np.linspace(0, 20, 60)
x3_pred = np.linspace(0, 50, 60)
xx2_pred, xx3_pred = np.meshgrid(x2_pred, x3_pred)
model_viz = np.array([xx2_pred.flatten(), xx3_pred.flatten()]).T
############################### 회귀식 주요 정보 #####################
ols = linear_model.LinearRegression()
model = ols.fit(X, Y) # nd array와 pandas series를 인자로 받아 선형회귀모형 model 만들기
predicted = model.predict(model_viz) # model_viz는 평면이 meshgrid화 된 것의 ndarray
b1 = model.intercept_ # 상수
Bi = model.coef_ # coefficient
R_Squared = model.score(X, Y) # R^2
################################
계수와 상수를 print로 찍어보면
print(b1) # 4419.562813357052
print(Bi) # [1329.50147216 412.52220464]
으로
$$ \hat{Y_{i}} =4419 + 1329X_{1i} + 412X_{2i} $$
를 구할 수 있는데
여기서 $$ \beta_{1i} $$ 을 95% 구간 추정을 해보자.
$$ P(b_{1i} - t_{0.05/2}s_{b_{1i}} \le \beta_{1i} \le b_{1i} + t_{0.05/2}s_{b_{1i}} ) = 1 - 0.05$$
인데,
이때
$$ b_{1i} = 1329 $$
$$ t_{0.05/2} = t_{0.025} = 1.98 $$
를 구할 수 있는데,
$$ s_{b_{1i}} = \sqrt{V(b_{1i})} = \sqrt{ \sigma^2 \over{S_{11}(1-r_{12}^2) } } $$
정리하면
$$ [ 934.222 , 1724.78] $$에 95%의 확률로 $$ B_{1i}$$ 가 존재한다
우리는 $$\beta_{i}$$가 실제로 유의한 설명변수의 계수인지, 즉 설명변수가 필요한지 필요없는지에 대한 가설 검정을 할때 2-t실용기준과 유의확률,유의수준의 개념이 사용된다는 것을 생각해야한다!!
어떤 계량 모형에서, 어떤 설명변수의 계수 값이 0이라는 귀무 가설을 세운다.
그리고 해당 가설을 검정한다
(해당 설명변수는 설명력이 없다 ! 라는 가설)
그리고 해당 가설의 통계량 $$t$$는
$$b_{2} - \beta_{2}\over{s_{b_{2}}}$$이다.
근데, 우리의 가설은 해당 설명변수가 필요 없다! 임으로
간소화하면
$$t= {b_{2}\over{s_{b_{2}}}}`$$ 가 된다.
2-t 실용기준은 이 가설 검정의 임계치를 2로 실용적이게 정하자는 것이다 ! (95% 유의수준이기때문에)
그래서 이 통계량이 이 임계치를 넘어가면, 해당 설명변수의 계수는 0이라는 귀무가설이 기각됨으로
다시말해 설명변수는 중요한 변수라는 뜻이다.
위에서 구한 t 통계치의 절댓값 범위 바깥에 있는 범위의 확률이다.
예를 들어 t 통계치가 아래 표에서 X라면, 노란색 범위가 유의 확률 p -value의 범위이다
2-t실용기준하에서는 대략적인 유의 수준은 0.05다
즉, t-통계치가 높을수록, 유의 확률이 낮을수록 해당 설명변수가 중요한 변수다.
귀무가설 $$ H_{0} : \beta_{2}=\beta_{3}=\beta_{4}=...\beta_{k}=0$$
대립가설 $$ H_{1} : (\beta_{1}을 제외하고) 적어도 하나의 \beta_{j} 는 0이 아니다$$
즉, 귀무가설은 다시쓰면
$$H_{0} : R^2 =0 $$이다
F통계치 : $$ F= $$ $$ { {R^2 \over { (k-1) }} \over { (1- R^2)\over(n-k) } }$$
로 k-1과 n-k의 자유도를 가지는 F분포를 다른다.
만약 F통계치가, 일정한 유의수준 $$ \alpha $$ 에서 k-1과 n-k의 자유도를 가지는
F-분포의 임계치 $$ F(k-1,n-k,\alpha) $$보다 크면
귀무가설을 기각한다
즉 모형이 적합하다는 것이다!
예를들어
귀무가설
$$H_{0} : \beta_{k-1} = 0, \beta_{k}=0$$ 혹은 $$H_{0} : \beta_{k_1}=\beta_{k}$$
라고 하자
위 귀무가설을 제약 조건이라고 한다.
제약 조건이 적용된 모형, 제약조건이 적용되지 않은 원래의 모형 각각의
잔차의 제곱합 (Residual sum sqaured) $$ \sum_{i=1}^n e_{i}^2 $$과
결정계수 $$R_{U}^2$$ (첨자 U는 제약되지 않은 Unrestricted, R은 Restricted)
을 구한다.
F통계치는 다음과 같은 두가지 방법으로 구할 수 있다
$$F= { {(RSS_{R} - RSS_{U} ) \over{J}} \over { RSS_{U} \over{ n-k } } }$$
이고
위 식의 분자/분모를 $$ \sum(Y_{i} -\bar{Y})^2$$로 나누면
$$F= { {(R_{U}^2- R_{R}^2 ) \over{J}} \over { (1-R_{U}^2) \over{ n-k } } }$$
인데, $$ F(J,n-k) $$의 분포를 가진다
이때, 일정한 유의수준 $$ \alpha $$ 하에서의 J와 n-k의 자유도를 갖는 F 임계치를 구한다.
그리고 F통계치 > F임계치면 귀무가설을 기각한다
-->제약조건이 옳지 않음을 의미한다
회귀 계수 간의 선형 결합간의 가설검정은,
귀무 가설이
$$ H_{0} : \beta_{2} + \beta_{3} =1 $$
등으로 세워진다( 회귀 계수간의 선형관계가 있다)
reference: 계량경제학 이론과 활용 2판 ( 남준우, 허인)
Moment와 Moment generating function (0) | 2021.10.05 |
---|---|
Jensen Inequality (0) | 2021.10.05 |
Markov Inequality, Chebyshev Inequality (0) | 2021.10.05 |
벡터 회귀분석 Vector Regression (0) | 2021.09.27 |
회귀분석 Regression Analysis (1) (0) | 2021.07.29 |
댓글 영역