[통계] 회귀분석

2024. 1. 12. 18:07Data Science/Study 자료

회귀분석의 정의

하나 또는 그이상의 독립변수들이 종속변수의 미치는 영향을 주정할 수 있는 통계 기법

 

독립변수의 갯수가 하나 : 단순 선형 회귀분석

독립변수의 갯수가 두개 이상 : 다중 회귀분석

 

종속변수 : 영향을 받는 변수

독립변수 : 영향을 주는 변수

 


나는 그래프를 통해서 이해를 했는데 글보다 그게 더 편했다 .

종속변수를 y에 두고 독립변수를 x에 두어, x값이 y값에게 영향을 미치는 것을 분석하는것으로 이해를 하였다.

실제 값들을 살펴보면 기울기나 절편, p-value, 결정계수등 수치로 이해를 해야하는 경우가 많았기 때문이다.

 

 

 

단순선형회귀분석

최소제곱법으로 기울기와 절편을 구하여 그래프상에 표시할수 있다.

중요한건 최소제곱법이 쓰인다는것을 인지하고 결과값은 코드를 통해 전달되기때문에 과정이 크게 중요하게 느껴지지 않았다.

그리고 회귀계수들이 유의미한지 판단을 내리는게 더욱 신경써야할 부분이다.

 

회귀분석에서 검토사항

p-value값이 0.05보다 작으면 해당 회귀계수는 통계적으로 유의미 하다고 볼 수 있다.

결정계수가 1에 가까울수록 설명력이 높다. (%확률로 이해 하면 편함)

  •   설명력은 모델이 종속 변수의 변동을 얼마나 잘 설명하고 있는지를 나타낸다.
  •   여러개의 회귀식이 나올땐 결정계수를 보고 가장 높은 회귀식을 선택한다.

 

 

다중선형회귀분석

귀무가설 : 각 회귀계수의 기울기는 0이다. = 회귀를 할 이유가없음, x값에따라 y가 변하지않는경우

대립가설 : 적어도 한 개의 독립변수 회귀계수의 기울기는 0이 아니다.

 

회귀계수의 유의성

회귀계수 t통계량을 통해 확인한다.

모든 회귀계수의 유의성이 통계적으로 검증이 되어야 선택된 변수들의 조합으로 모형을 확인할 수 있다.

 

tips데이터 불러오기

import seaborn as sns 
tips = sns.load_dataset('tips')
tips.head()

예시로 tips데이터를 보자.

 

 

pingouin 라이브러리 사용

import pingouin as pg
mod = pg.linear_regression(tips['total_bill'], tips['tip'])  # x축 y축
mod.round(2)

간단하게 팽귄 라이브러리를 통해서 coef(y절편, 기울기), t검정통계량, p-value, adj_r2(결정계수) 등을 쉽게 파악 할 수 있다.

 

 

statsmodels 라이브러리 사용

from statsmodels.formula.api import ols
import statsmodels.formula.api as smf
model = smf.ols(formula = 'tip ~ total_bill', data = tips).fit()
model.summary()

statsmodels라이브러리를 통해서도 확인이 가능하다.

마찬가지로 oef(y절편, 기울기), t검정통계량, p-value, adj_r2(결정계수) 등을 쉽게 파악 할 수 있다.

※기울기와 p-value값이 모호하게 나올때 가장 p-value가 높은것부터 지우고 다시 실행해보자!