일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- OOP
- predictive analysis
- Data Science
- baekjoon
- 문자열
- 함수
- programming
- pointer
- 반복문
- Object Oriented Programming
- Pre-processing
- 백준
- 배열
- C++
- Deep Learning
- vscode
- array
- string
- pass by reference
- 포인터
- 파이썬
- assignment operator
- 티스토리챌린지
- function
- Class
- 알고리즘
- 오블완
- Python
- raw data
- const
- Today
- Total
Channi Studies
Linear Regression (선형 회귀) -3 | Coefficients Table 본문
저번 포스트에서는 statsmodels를 활용하여 Simple Linear Regression 모델을 디자인 해 보았습니다.
Linear Regression (선형 회귀) - 2 | Simple Linear Regression (단순 선형 회귀)
저번 포스트에서는 선형 회귀에서 주로 사용되는 패키지들에 대해서 간략하게 알아보았습니다. Linear Regression (선형 회귀) - 1 | 패키지 알아보기이번 포스트에서는 파이썬을 사용해서 기초적 선
code-studies.tistory.com
이번 포스트에서는 sm.OLS(y, x).fit()로 얻어진 result에 result.summary()를 했을 때 보여지는 표에 대해서 알아보겠습니다.
해당 내용은 위 포스트에서 가볍게 다루었으니, 모르신다면 잠깐 보고 오시는걸 추천합니다.

위 표에서 확인할 수 있듯, 매우 중요한 정보가 많이 들어있습니다.
하지만 우리는 이 중에서 우리에게 가장 중요한 부분을 중점적으로 보겠습니다.
Coefficients Table

단순 선형 회귀 모델의 식이 기억 나시나요?
일반적인 일차함수와 매우 유사한 형태였습니다.
ŷ = b0 + b1*x1
저번 포스트에서 활용했듯이, 위 그래프에서 우리는 Constant(b0)과 독립변수 x1의 계수 b1을 확인할 수 있습니다.
const 행의 coef 열, 즉 0.2750이 b0을 의미하고, SAT(y 값의 이름) 행의 coef 열, 0.0017이 b1을 의미합니다.
즉, 우리의 단순 선형 회귀모델은 다음과 같겠네요.
ŷ = 0.275+ 0.0017*x1
저번에 해봤다시피 위 모델을 pyplot을 통해서 데이터들의 scatter plot 위에 그려본다면 다음과 같습니다.

위 그래프에서의 오렌지색 선이 우리의 회귀 직선(Regression Line) 입니다.
우리의 모델이 그래서 무슨 의미인지를 잠깐 알아볼까요?
ŷ = 0.275+ 0.0017*x1
여기서 우리는 SAT(수능) 점수를 기반으로 대학교 졸업 시의 GPA(학점)을 예측하는 모델을 디자인 했습니다.
즉 y = GPA, x1 = SAT score 인 것이죠.
(SAT 점수의 범위는 400 ~ 1600점이지만, 우리의 모델에서는 잠깐 무시하겠습니다)
SAT에서 2000점을 받은 학생의 경우에는,
ŷ = 0.275+ 0.0017*2000 = 3.675 이므로
대학 졸업 시 3.675의 학점을 가질 것으로 예상해볼 수 있겠네요.
다시 표로 돌아가서, 나머지를 살펴봅시다.

std err는 standard error, 표준 오차를 보여줍니다.
이 표준 오차가 0에 가까울 수록 예측 모델이 정확함을 의미하고, 커질수록 오류가 늘어납니다.
t 와 P>|t| 의 경우에는 Hypothesis Testing (가설 검정)의 개념이 들어갑니다.
Sample data(조사한 학생들의 SAT, GPA)를 바탕으로 Population(전체 학생의 SAT, GPA)를 예측하려고 하는데, Population variance (or standard deviation)을 알 수 없는 상황이죠?
이럴 때 우리는 어떤 분산을 사용하는지 기억이 나시나요?
바로 Student's T-Distribution을 사용했었습니다.
Null Hypothesis (H0): β=0
Alternative Hypothesis (H0):β≠0
여기서 β는 각 Coefficient, b0과 b1을 의미합니다.
const 의 coefficient b0을 0으로 가정했을 때 (null hypothesis), p-value가 0.503이고,
x1(SAT 점수)의 coefficient b1을 0으로 가정했을 때, p-value는 0.000입니다.
이게 무슨 뜻이냐면, 우리가 significance level을 통상 5%=0.05로 설정을 하기 때문에,
0.05보다 작은 p-value는 '데이터들의 관계가 statistically significant하다' 를 의미합니다.
즉, x1의 경우 0.000<0.05이기 때문에 SAT 점수와 GPA 사이의 관계가 통계적으로 유의미하다는 것 입니다.
그냥 쉽게 말해서 예측 할 수 있는 관계가 있다고 이해하면 될 것 같습니다.
그렇다면, x0의 계수 b0의 p-value는 0.05보다 한참 큰 0.503인데 어떻게 된 것일까요?
b0은 기본적으로 y-intercept를 보여줍니다.
우리는 xi들과 y의 인과관계를 통해서 값을 알아보는데 목표가 있습니다.
그렇기 때문에 일반적으로 우리는 상수 coefficient b0의 경우에는 이 과정을 거치지 않습니다.
만약 b0의 경우에도 동일하게 고려한다면, y-intercept(b0) = 0으로 설정해야 하므로,
우리 모델의 그래프의 x,y축과의 교점이 원점인 (0,0)에서 만나는 1차함수가 되겠네요.
쉽게 말해서, 그냥 상수의 경우에는 보통 신경쓰지 않는다고 일단 생각해도 될 것 같습니다.
이번 포스트에서는 Coefficient Table에 대해서 간략하게 알아보았습니다.
다음 포스트에서는 우리가 만든 선형 회귀 모델의 정확도를 평가하는 방법들에 대해서 알아보겠습니다.
'Data Science > Python' 카테고리의 다른 글
Linear Regression (선형 회귀) - 2 | Simple Linear Regression (단순 선형 회귀) (0) | 2024.06.02 |
---|---|
Linear Regression (선형 회귀) - 1 | 패키지 알아보기 (0) | 2024.06.02 |