JSP's Deep learning

[Data Analysis] 1. ols를 사용한 선형회귀 모수적 분석 루틴 본문

Data Processing/Data Analysis

[Data Analysis] 1. ols를 사용한 선형회귀 모수적 분석 루틴

_JSP_ 2022. 6. 12. 01:27

여러 함수 중 가장 편리했던 방법만 기록

1. 기본 분석 (ols 기법 사용전)

 

  1. 결측치 확인
    1. data.info() - pandas.DataFrame 함수 사용
  2. 특성 및 분포 확인
    1. pandas_profiling 패키지의 profile_report 함수 사용(전반적인 데이터 확인) ex. profile = data.profile_report()
    2. data.변수.unique() : 범주형 변수의 속성을 확인
    3. data.변수.value_counts() : 범주형 변수의 속성별 빈도수 확인

 

2. 기본 분석 토대로 ols 기법 사용전 전처리

 

  1. 불필요 변수 제거 ex. id
  2. 특징이 너무 많은 변수의 파생변수 생성(단, 원본변수는 제거하지 않고 그대로 둔다.)
  3. 범주형 변수의 속성 중 동일의미이나 오타로 잘 못 기입된 속성에 대해서 정리한다.

 

3. ols 기법 사용 분석

 

1. ols 모델 학습

val_list = eda_data.columns.drop(['target'])
formula = 'target ~ ' + '+'.join(val_list)
ols_linear_model = ols(formula=formula, data=eda_data).fit()

2. 이상치 정리

eda_data = eda_data[ols_linear_model.outlier_test()['bonf(p)'] >= 0.05]

3. 이상치 정리 후 ols 모델 재학습

val_list = eda_data.columns.drop(['target'])
formula = 'target ~ ' + '+'.join(val_list)
ols_linear_model = ols(formula=formula, data=eda_data).fit()

4. ols의 summary 함수를 통해서 통계적 분석

ols_linear_model.summary()
  • 모델의 통계수치 해석
    • R-square : 모델의 독립변수들이 종속변수를 얼마나 잘 나타내는지에 대한 지표로 예를 들어 0.9의 값을 가진다면 모델의 독립변수가 종속변수를 90% 정도 설명한다는 것을 의미한다. 즉, 높을수록 좋다. 최댓값은 1이다.
    • Prob (F-statistic) : 이 모델의 선형회귀 모델의 적합성을 나타내는 p-value로 유의수준 0.05 미만이라면 적합하다고 판단된다.
  • 독립변수의 통계수치 해석
    • coef : 해당 독립변수가 가지는 가중치
    • P>|t| : 해당 독립변수가 종속변수에 대해 유의미한 의미를 가지는지에 대한 p-value로 유의수준 0.05보다 작으면 유의미하다고 판단할 수 있다. (유의수준은 임의로 조절이 가능하다. 신뢰도에 대한 수치이다)
  • 잔차의 통계수치 해석
    • Skew : 왜도를 나타내는 것으로 0에 가까울수록 정규분포의 형태를 가진다. ols는 정규분포를 가정한 분석이므로 Skew 수치가 0에 가까울수록 높은 신뢰성을 띈다고 판단할 수 있다.
    • Kurtosis : 분포의 뾰족한 정도를 나타내는 지표로, 3보다 크면 정규분포보다 뾰족, 3이면 정규분포, 작으면 정규분포보다 완만함을 의미한다.
    • Durbin-Watson : 잔차가 독립인지 아닌지를 판단하는 지표로 2의 근방에 있으면 독립으로 판단된다. 2보다 크면 양의관계, 작으면 음의관계를 가진다고 해석된다.

5. ols 분석 모델을 통해서 유의미한 독립변수 추출

good_var_list = ols_linear_model.pvalues.index[ols_linear_model.pvalues < 0.05]
good_var_list

유의수준은 데이터에 맞게 조절할 수 있다.

Comments