기본 콘텐츠로 건너뛰기

라벨이 f_regression인 게시물 표시

[matplotlib]quiver()함수

[data analysis] 일변량 변수의 선택

일변량 변수의 선택 2개 이상의 설명변수에서 각 변수가 반응변수에 미치는 영향을 고려하여 선택합니다. 즉, 설명변수 한개와 반응변수의 단순선형모델을 생성하여 각 모델의 f 검정 결과를 비교하여 변수를 선태합니다. 이 과정은 sklearn.feature_selection.SelectKBest(function, k=10) 클래스를 적용하여 계산할 수 있습니다. 이 클래스의 인수 function은 서브모듈인 feature_selection에서 제공하는 f_regression() 와 r_regression() 함수입니다. 이 함수는 각 모델의 f-통계량과 pearson's r(상관계수)를 반환하는 함수입니다. 인수 k는 선택되는 최대변수의 수로서 10이 기본값입니다. 예 1) 코스피지수(kos), 코스탁지수(kq), kodex 레버리지(kl), kodex 인버스(ki), 그리고 원달러환율(WonDol)의 일일 시가, 고가, 저가, 종가(o,h,p,c)들을 설명변수로 사용하여 삼성전자(sam)의 일일 종가를 추정하는 회귀모델을 위해 설명변수를 선택합니다. 이 모델에 적합한 설명변수들을 선택하기 위해 sklearn.feature_selection 모듈의 여러 클래스를 적용하여봅니다. import numpy as np import pandas as pd from scipy import stats from sklearn import linear_model from sklearn.preprocessing import StandardScaler, MinMaxScaler import statsmodels.api as sm from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split import yfinance as yf from sklearn import feature_selection import matplotlib.pyplot as ...

[data analysis] 회귀모형의 평가

회귀모형의 평가 회귀분석은 확률에 기반한 것으로 그 모형에 의한 추정값은 관측값과 차이를 발생시킵니다. 모형의 평가는 그 차이의 수준을 용인할 수 있는지에 대한 평가로서 앞서 소개한 분산분석 을 적용합니다. 분산분석은 여러개의 그룹 (변수)들 사이에 일어나는 각각의 변동(분산)을 비교하여 일반적으로 일어날 수 있는 수준인지를 판단하는 것입니다. 그림 1에 나타낸 것과 같이 관측치 y의 불편추정치(unbiased estimator)로 그 값들의 평균 $\bar{y}$이 사용됩니다. 평균값이 회귀모형에 의한 예측치 $\hat{y}$와 일치한다면 회귀분석의 의미는 없어집니다. 즉, 회귀모델이 적합하다면 평균과 추정치 사이에 차이가 발생하며 추정치와 관측치 사이에 오차가 발생됩니다. 적합한 회귀모형에 의한 반응변수의 평균과 예측값 그리고 관측값(y) 사이의 관계는 식 1과 같이 정의할 수 있습니다. $$(\bar{y}-y)^2=(\bar{y}-\hat{y})^2+(\bar{y}-y)^2+\alpha$$ (식 1) 그림 1. 회귀모델에서의 SST, SSReg, SSE. x=np.linspace(-1, 2, 100) y=x+0.5 plt.figure(figsize=(4,3)) plt.plot(x, y, color="g", label="regression") plt.hlines(1.7, -1, 2, color="k", ls="--", label="mean line") plt.scatter(0.25, 1.7, s=20, color="k", label=r"$\bar{y}$") plt.scatter(0.25, 0.75, s=20, color="r", label=r"$\hat{y}$") plt.scatter(0.25, 0, s=20, color="b", label=r"$y...