-------------참고로 좀 더 심화적인 내용은 최근의 포스팅에 업로드해 두었습니다 -------------
[Statistics] 선형 회귀 분석 (Simple Linear Regression: 심화)
1. Simple Linear Regression1. Model\( Y_i = \alpha + \beta X_i + \varepsilon_i \), \( i = 1, \ldots, n \)여기서, \( \varepsilon \) 는 오차항(error term) 혹은 교란항(disturbance term) 이라고 합니다. 다시 정리해보면 아래와 같습
trillionver2.tistory.com
1. 선형 회귀 분석이란?
원하는 변수(연속형 변수)를 예측(모델링)하기 위한 목적으로 해당 변수와 상관관계가 높은 다른 변수를 가지고 빗대어 설명하는 것
예) 스펀지송이 이번주에 햄버거 가게 방문한 횟수를 알고 싶다.
☞ 스펀지송은 뚱이와 붙어다니는데, 뚱이가 햄버거 가게를 방문한 횟수는 알고 있다
☞ 뚱이의 햄버거가게 방문 횟수를 독립변수 X, 스펀지송의 햄버거가게 방문횟수를 종속변수 Y로 두고 예측한다
종속변수를 설명하기 위한 목적으로 빗대는 변수가 많아질 경우 다중 선형 회귀분석(Multivariate linear regression)이라고 합니다.
2. 선형 회귀 분석의 기본 가정
1) 선형성(linearity)
2) 독립성 ↔ 다중공선성(multicollinearity)
3) 등분산성(Spherical disturbance)
① 동분산(homoscedasticity)
② 비자기상관(non-autocorrelation)
4) 정규성(Normality)
(기본 가정이 중요합니다. 사실 계량경제학에서는 이 기본 과정을 완화하면서 더 고급 내용으로 올라가게 되죠)
자세한 내용은 아래 두 블로그를 참고하세요
https://acdongpgm.tistory.com/105
[기계학습]회귀분석의 진단 ( nomal Q-Q plot ,Residual vs Fitted, Residuals 산점도 )
Machine Learning 기계학습 머신러닝 회귀분석의 진단 적절한 변수를 통해 어느 정도 성능지표가 잘 나오는 모델을 만들었다. 과연 이 회귀모델이 잘 만들어진 모델인 것인가에 대한 진단이 필요. 회
acdongpgm.tistory.com
https://jangpiano-science.tistory.com/119
[회귀]회귀모형의 진단/ 오차의 등분산성, 선형성, 독립성
회귀분석에서는, 오차에 대한 가정을 전제로 최소제곱법에 의한 추정이 가능합니다. 1. E( εi ) = 0 2. Var( εi ) = σ^2 * Ι "등분산성" 3. Cov( εi, εj) = 0 "독립성" 회귀식을 추정할때, 가..
jangpiano-science.tistory.com
3. 회귀 분석의 추정방법
1) OLS (Ordinary Least Square) 추정: 최소자승법이라고도 합니다. 아래와 같이 quadratic(제곱) 꼴 형태로 오차를 정의하고 이 오차를 최소화하는 방향으로 Parameter(추정하고자 하는 변수)를 찾아내죠.
일반화 된(다변수) 꼴에서 이러한 OLS 결과를 미리 계산하면 아래와 같습니다.
행렬 형태로 표현하여 간명(?! 변수 여러번 쓰진 않으니까여...)하게 표현하면 아래와 같아진
(밑줄 친 부분과 같이 추정하고자 하는 parameter의 추정값과 그 분산을 계산할 수 있습니다)
2) 최우도(Maximum Likelihood) 추정: 최우도추정은 선형회귀 분석뿐 아니라 통계전반에서 (Frequentist들이) 사용하는 추정방법입니다. 최우도추정의 컨셉에 대해서 먼저 알아보겠습니다
* Bayesian과 Frequentist 들의 차이에 대해서는 나중에 따로 논의하겠습니다
고등학교 확률 통계 시간을 기억하시나요? 우리 이항분포 배울 때... 주사위 눈과 그 눈이 나올 확률이 적힌 분포표계산하고 했었죠? 그 때 문제들 참 어려운 문제 많았지만(토너먼트 문제 모아다가 풀던거 기억나네...) 그래도 그 땐 확률분포를 주고선(예: 주사위 눈이 나올 확률은 각각 1/6이다 라든가) 특정 사건이 발생할 확률(예: 5번던져서 짝수의 눈이 한번도 나오지 않을 확률과 같이)을 계산하는 문제가 대다수였죠.
그런데 우리가 실생활에서 마주치는 확률 문제는 일단 그 '확률분포'를 알아내는 것부터 시작해야합니다.
주사위가 주어졌는데 누가 친절하게 "1의 눈이 나올 확률이 1/6이야"라고 알려주지 않는다는거죠.
그럼 어떻게 하느냐? ... 우리가 직접알아내야죠 뭐
어떻게 알아낼까요? 뭐 뾰족한 수가 있습니까? 그냥 몇번 계속 굴려보는거죠
그럼 대강 각 눈이 나오는 확률이 얼마정도 되는지 "감"이 잡히겠죠? 최우도추정 방법도 유사한 발상에서 출발하되
좀 더 정량화되고 체계적으로 방법을 적용하는 것입니다.
말하자면 우리가 구하고자 하는 모수(Parameter)를 미지수로 두고(지금 같으면 주사위의 눈이 나올 확률이 되겠죠)
우리가 관측한 결과(5번 던졌더니 주사위의 눈이 2, 2, 4, 6, 5 이렇게 관측)가 나오려면 그 미지수값을 어떻게 설정하는 것이 관측 확률을 높이는지 따지는 것입니다.
지금 예시 같으면 2,4,6 같은 눈들이 많이 나왔으니 이런 짝수의 눈이 잘 나오는 주사위라고 추정하는 것이 MLE 관점에서 타당한 접근이 되겠죠. (실제로 MLE 계산을 해보면 굉장히 직관적인 결과가 나오는데요. 5번 시행 중 1, 3은 한번도 나오지 않았으니 그 눈이 나올 확률이 0/5로 계산이 되구요 2가 나올 확률은 2/5, 4, 5, 6이 나올 확률은 1/5이 됩니다. 딱 과거에 나온 빈도로 추정이 되죠?)
사실 이부분 관련해서 Bayesian관점이 연결이 되는데 그건 나중으로 미루겠습니다.
다항분포의 최우도 추정(+수식 ^.^)과 그 직관적 의미는 아래 블로그를 참고해보시면 좋겠습니다
http://arkainoh.blogspot.com/2017/10/parametric.learning.maximum.likelihood.estimation.html
Parametric Learning: 최대 가능도 추정 (Maximum Likelihood Estimation) - MLE
Likelihood, Prior Probability 등의 확률이 주어지지 않은 경우에는 Posterior Probability를 구할 수 없다. 이는 다시 말해 기계학습에서 h(x) = ax + b라는 함수를 구하고자 하는데, 함수의 형태는 직선인 것을
arkainoh.blogspot.com
자 여기까지는 최우도추정의 일반적인 이야기였구요
선형회귀분석에서 최우도추정을 계산하면 아래와 같습니다.
여기서는 쉬운 이해를 위해서 행렬형태가 아니라 그냥 줄줄이 풀어쓴 수식의 형태로 전개하였습니다
(오차항이 정규분포를 따른다는 가정이 들어갑니다)
관측치 사이의 독립성을 가정하면 각각의 관측치가 실현(Realization)될 확률을 모두 곱해주면 전체 관측에 대한 확률이 되겠죠? 그리고 우도는 0~1사이의 확률값을 관측개수만큼 곱해주기 때문에 굉장히 작은값이 나와서 이 자체로 최대화시키는 문제를 찾기보다는 log값을 붙이고 -1을 곱한 Negative log likelihood (NLL)를 최소화시키는 문제로 치환해서 풀곤합니다.
최종 목적함수의 꼴이 아까 봤던 최소자승법의 꼴과 비슷해지죠? 그래서 선형회귀분석에서는 OLS로 추정하든 MLE로추정하든 결과는 같습니다. 물론 모든 문제에서 그런것은 아니구요, 선형회귀분석의 고유한 특성때문입니다.
4. 추정된 Parameter/오차 해석
이제 우리가 원하는 값과 그 표준오차를 구할 수 있는데요.
표준오차와 그 P-value의 의미를 짚어보겠습니다.
(일단 먼저... 홍보용 이미지를 가져다 쓰는건 저작권 침해가 아니라고 알고 있어서 두분 연예인의 사진을 가져왔는데 혹시 문제가 있을 경우 알려주시면 삭제하겠습니다)
일단 Wikipedia에서 검색된 P-value의 정의는 아래와 같습니다.
"귀무가설(Null Hypothesis)이 맞다고 가정할 때 얻은 결과보다 극단적인 결과가 실제로 관측될 확률이다."
(어렵죠;;;)
그리고 보통 우리가 통계 모델링 등을 할 때 가장 관심있는 것 중에 하나가 우리가 계산한 Parameter값들이 통계적으로 의미가 있는가? 아닌가? (통계적 유의성이라고 하죠) 라는 점도 체크해보고 넘어갑시다. 보통 의미가 있다/없다의 판단 기준은 그 값이 "0"이냐 아니냐 로 판단하는 건데요. 때문에 회귀분석의 문제에서는 우리가 추정한 Parameter값들이 0이라는 가설(=내가 추정한 계수는 통계적으로 의미없어)이 귀무가설이 됩니다.
그리고 확률통계의 세계에서는 (그리고 ...양자역학의 세계에서는) 100% 확실한 건 없기에 확실하게 0이다 아니다 이렇게 판단하는게 아니라 확률적으로 판단을 하게되고 여기서 P-value의 개념이 나오게 됩니다.
사격 예시로 좀더 직관적으로 이해해볼까요?
과녁에 사격을 하는데 위 그림에서 보시는 것과 같이 1부근에 탄환이 박혔다고 해보겠습니다. (와아 우리가 추정값이 0이 아니라 1이니까 0에서 멀리 떨어진 유의미한값일까요? 아직은 모릅니다. 오차가 어떤값이냐에 따라 다르죠) 그러니까 사격예시로 치면 진종오 선수가 사격을 했느냐, 정형돈 선수가 사격을 했느냐에 따라 다르게 추정해볼 수 있다는 겁니다. 진종오 선수라면 0을 노리고 쐈는데 거기가서 맞을 확률은 턱 없이 낮죠(0.03)... 그런데 정형돈 선수라면? 정형돈 선수가 1을 고의적으로 노리고 쏴서 거기 맞았을 수도(0.6) 있는데 0을 노리고 쐈는데 거기에 맞을 확률(0.4)도 꽤 높습니다. 정형돈 선수는 초보라 사격오차가 크거든요. 그렇습니다. 제가 하늘색으로 표기해놓은 확률값이 P-value입니다.
아래는 Eviews로 회귀분석 문제를 돌려본 결과입니다.
전체수익률을 코스피수익률로 빗대어 설명하는 모델인데요.
코스피수익률이라는 독립변수의 계수값이 0.83정도 나왔습니다. (의미적으로 코스피수익률이라는 설명변수가 1단위만큼 증가할 때, 전체수익률은 0.83만큼 증가한다고 할수 있죠) 이 계수는 통계적으로 의미가 있을까요? 0에 가까운 것 같아 보이지 않나요? 그걸 판단하려면 표준오차도 같이 봐야한다고 했죠? 계수가 그리 크진 않지만 표준오차도 0.26정도로 굉장히 작기 때문에 이 계수가 실제로는 0이었는데 실제로 이러한 관측치가 관측될 확률은 0.0013으로 계산된다는 겁니다. (계산은 T-분포/정규분포 등을 가지고 해야하는데 패키지에서는 다 돌려주죠) 굉장히 낮을 확률이기 때문에 우리는 간접적으로 이 계수가 통계적으로 무의미하다고 하긴 어렵겠구나 알 수 있습니다. 통계적으로 유의한 변수인 것입니다.
5. 선형회귀분석의 평가지표
마지막으로 작성한 모형이 얼마나 잘 맞추고 있는지를 알려주는 지표로는 R-Squared가 있습니다.
그런데, R-Squared는 설명변수(독립변수)를 많이 넣으면 커질 수 밖에 없는 구조입니다. 상식적으로도 변수 5개 넣는것보단 10개 20개 넣는 것이 눈곱만큼이라도 더 설명할 수 있겠죠? 그럼 마냥 모든 변수를 때려넣는게 좋다는 방향으로 결론이 나게되는데 이건 효율적이지 못하죠. 그래서 변수개수가 너무 많아지면 패널티가 붙도록 조정해준 R-Squared값이
Adjusted R-Squared입니다.
자세한 내용은 아래 블로그를 참고하세요. 위 그림의 출처이기도 합니다.
[stata] 회귀분석 결과에서 SST, SSE, SSR, R-squared의 의미 (울드리지 책 기준)
* 주의 : 설명하는 사람에 따라 SSE(Explained sum of squares)를 SSR(Regression Sum of Squares)로 표현하거나 SSR(Residual sum of squares)를 SSE(Error Sum of Squares)로 뜻은 같으나 약자만 보면 반대인 것..
igija.tistory.com
6. 추정된 계수의 특성
흔히들 BLUE라고 하죠... 계량경제학의 깊은 내용에 관심있으신 분들만 한번 체크해보시죠.
https://datalabbit.tistory.com/59
[회귀분석] 가우스-마르코프 정리(Gauss-Markov Theorem) 증명
Review 참고 포스팅 : 2020/10/10 - [Statistics/Regression Analysis] - [회귀분석] 최소제곱추정량 β1를 선형 추정량으로 유도하기 [회귀분석] 최소제곱추정량 β1를 선형 추정량으로 유도하기 Review 참고 포..
datalabbit.tistory.com
7. 회귀분석의 기하학적 해석
아래 블로그를 참고하세요.
https://danbi-ncsoft.github.io/study/2019/10/28/understanding_regression.html
회귀분석 이해하기 (기하편)
danbi-ncsoft.github.io
이제 R 코드로 한번돌려볼까요?
사후분석 부분에서 몇 가지 부분만 체크하고 넘어가겠습니다.
저희가 회귀분석의 기본 가정을 맨 처음에 알아보구 넘어왔죠? 그 기본가정이 맞지 않으면 회귀분석을 쓸 수 없기에 이 부분을 체크해보는 것입니다.
1) QQ-plot: 이건 간단히 줄을 세우는거라고 보시면 되는데, 오차의 정규성을 체크해보는 것입니다.
저 점선위에 잔차들이 잘 찍혀있으면 오차가 정규분포를 따른다고 볼 수 있습니다.
2) Leverage/Cook's distance: 우리가 추정한 계수에 아웃라이어들이 있는지 체크해보는 것입니다. 아웃라이어가 있을경우 해당관측치들은 제거하고 다시 추정해보는 것도 고려해야겠죠.
이것으로 선형회귀분석을 마치겠습니다.
'Data & Research' 카테고리의 다른 글
[Statistics] 베이지안 통계학 (Frequentist vs. Bayesian) (0) | 2021.11.07 |
---|---|
[Statistics] 나이브 베이즈 (Naïve Bayes) (0) | 2021.11.06 |
[Machine Learning] 앙상블(Ensemble) 기법 (1) | 2021.11.06 |
[Machine Learning] 정보(Information) 이론 기초 (0) | 2021.11.05 |
[Statistics] 로지스틱 회귀분석 (Logistic Regression) (1) | 2021.10.31 |