본문 바로가기
Archive/수학 & 통계학 관련

[Stat] 회귀계수의 유의성

by 다람이도토리 2022. 7. 18.

회귀계수의 유의성 검정

일변수 선형 회귀라고 상황을 가정하고(일차함수), 선형회귀 문제를 푼다고 가정하자.

만일, 기울기가 의미가 없다면, 기울기는 0이 될 것이고, 식은 상수항 형태를 가질 것이다.

다시 말해, 회귀계수가 무의미하다면, 0으로 떨어질 것이다.

즉, 우리는 이 값이 0이 아닌지에 대해 검정을 해야 할 것이다. 이를 확인하는 가설을 세워보자.

t-test를 통한 유의성 검정

Step 1. 가설 설정

H0 : b1 = 0 (회귀계수는 의미가 있다고 할 수 없다.)
H1 : b1 ≠ 0 (회귀계수는 의미가 존재한다.)

즉, 계수가 0이냐 아니냐를 판단하는, t-test 양측 검정을 진행하게 되는 것이다.

Step 2. t통계량 계산

* 회귀계수의 표준편차는 어떻게 구하는가?

기울기의 분산을 추정하기 위해서는 오차항의 분산을 사용한다. (why? 오차가 퍼진 정도를 말할거니까)

* 분자는 잔차의 분산을 의미한다.


Step 3. 유의수준의 결정

유의수준을 결정한다. 통상적으로는 5%로 두는 경우가 많으나, 상황에 따른 조절이 들어간다.

Step 4. 유의확률 계산

유의확률(p-value)를 계산한다. 유의확률은 t-분포에서의 넓이값으로 계산하면 된다.

Step 5. 가설검정

유의수준 > 유의확률(p-value) : 유의수준 하에서 귀무가설이 기각 -> 계수가 유의미하다고 볼 수 있음
유의수준 < 유의확률(p-value) : 유의수준 하에서 귀무가설을 기각할 수 없음. -> 계수가 유의미하다고 할 수 없음

 

실제 확인 방법

python에서는 statsmodels의 요약표에서 계수별로 이 값을 볼 수 있다.

import statsmodels.api as sm
df = pd.DataFrame({"x": X0[:, 0], "y": y[:, 0]})
dfy = df[["y"]]
dfX = sm.add_constant(df[["x"]])
model = sm.OLS(dfy, dfX)
result = model.fit()
print(result.summary())

결과표(예시)

https://datascienceschool.net/03%20machine%20learning/04.02%20%EC%84%A0%ED%98%95%ED%9A%8C%EA%B7%80%EB%B6%84%EC%84%9D%EC%9D%98%20%EA%B8%B0%EC%B4%88.html#statsmodels

P>|t|값을 통해 p-value를 알 수 있고 유의 수준에 맞게 검정을 실시하면 된다.