close_btn
2015.05.05 12:28

4.회귀분석(part2)

조회 수 66049 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files





오늘은 회귀분석의 뒷부분을 이어서 마저 해보도록 하겠습니다.







1.PNG









이상치는 자료 중에 전체형태에서 동떨어져서 큰 잔차를 갖는 관측 값을 이상치라고 합니다.

파란색 선은 이상치나 영향점이 없었으면 있었을 직선입니다. 

이상치 때문에 파란색 선이 초록색 선으로 올라가는 모습이 보여지며 오차가 커질 것으로 보입니다.
영향점은 회귀직선에 기울기 변화에 큰 효과를 미치는 점을 말합니다

예를 들면 원래는 파란색 직선이 영향점이 없었으면 생겼을 직선인데 저 뒤에 빨간색 영향점이 

생김으로 인해 빨간색 직선처럼 기울기가 확 바뀌게 됩니다.

레버리지는 값이 전체적으로 형성된 그룹에서 멀리 떨어진 것을 말합니다

따라서 레버리지는 기울기 변화에 항상 크게 영향을 준다고 하기 힘듭니다.

영향점과 레버리지는 이러한 관계라고 할 수 있습니다.

• A point with high leverage may or may not be influential.

• A point with low leverage may or may not be influential.

따라서 관계를 제 나름대로 정의하자면 outlier > leverage > influential point 가 되겠습니다.




이러한 이상치를 판단하는 기준으론 

표준화된 잔차의 절대값이 3이상인 경우 이상값이라고 판단 되어지며

영향점을 측정하는 도구로 여러 가지가 있는데  그 중에서 cook’s D 값이 1보다 큰경우나 DFFIT의 절대값이 2보다 큰경우 또 다른 값에 비해서 2배 이상 클 때 영향점이라고 합니다










2.PNG









R에서는 다음과 같이 구현됩니다. 아웃라이어 같은 경우엔 다양한 방법으로 해결하는데요.

1. 수정 - 기입하는데에 있어서 오류가 있었더라면 그것을 확인 후 수정합니다. 

2. 변수변환 - 로그나 루트를 취해 줌으로 심하게 쏠린 값들이 아닌 경우로 변하는 경우가 있습니다.

3. 제거 - 좋은 모형을 만들기 위해 혹은 아주 특별히 발생한 경우일 때 제거합니다.

              이상값을 삭제할 수록 좋은 결정계수가 나오는데 엄밀하게 말하면 실제데이터로 

              회귀모형을 적합 하는 것이 아니므로 상당히 위험한 작업일 수 있습니다

              특히나 n이 작을 때는 더더욱요한 개 한개 삭제하는게 엄청 크거든요.

4. 놔두기 - 변수 변환 등으로도 해결이 안되고 제거하기도 애매모호하면 그냥 놔주고 다른 

                  방법으로 해결합니다.

5. 합치기 - 범주형일 경우 가장 패턴이 비슷한 범주로 합칩니다.










3.PNG









다음은 다중공선성 문제입니다. 다중공선성은 Y를 제외한 설명변수 x들 간에 상관관계가 높은 것입니다.

예를 들면 다음과 같은 그림이 나올 수 있는데요. x들 간에 산점도를 그렸더니 










제목 없음.png







딱 봐도 엄청난 상관관계에 있는 변수들이 보이죠? 저런 경우 다중공선성이라는 것이 발생합니다.

이러한 다중공선성을 발견하는 패턴은


①높은 값과 낮은 t-통계치

-이 경우 모형 전체의 설명력은 높은데 반해 모형에 포함된 각 계수는 유의성이 낮다는 것을 의미한다. 이는 위에서 설명한 것과 같이 각 설명변수들이 전체적으로는 종속변수의 움직임을 잘 설명하지만 개별 회귀계수 추정치의 표준오차가 매우 크다는 것을 의미하는데 설명변수 사이에 다중공선성이 높을 때 이런 현상이 발생한다.

②회귀계수 추정치의 불안정성

-다중공선성이 높으면 회귀계수 추정치의 표준오차가 크게 되므로 새로운 변수를 포함시키거나 새로운 관측치를 추가하면 회귀계수 추정치의 값이 크게 달라진다.

-또는 기존 설명변수 중 한 변수를 제외할 경우 t-검정통계치의 값이 급격히 커지는 경우도 다중공선성이 의심되는 경우이다.

③설명변수들 사이의 높은 상관관계

-설명변수들 사이에 상관계수를 직접 계산하여 이 값이 모형 전체의 보다 클 경우 다중공선성의 

 정도가 크다는 것을 의미한다.


이러한 3가지 패턴이 보이면 VIF나 상관계수를 통해 봅니다. VIF10 이상이면 다중공선성이 있다고 봅니다. 그러나 다중공선성은 변수가 많으면 실제로 변수사이에 상관관계가 없어도 높아보일 수 있으니 그럴 때는 두 변수 간의 상관계수를 봅니다. 0.5 or 0.7이상 일 때 다중공선성이 있다고 보시면 됩니다. 상관성과 다중공선성의 차이는 상관성은 두 변수간의 종속변수와 독립변수의 사이를 보는 것 이구요. 다중공선성은 여러 개의 독립변수간의 사이를 보는 것입니다.

이럴 경우에는 설명변수를 제거하거나 y값에다가 로그를 취하거나 

주성분분석 혹은 요인분석을 하는 방법을 취합니다. 설명변수 제거는 제거시 더 좋은 모델적합값이

나오는 것을 삭제하면 되겠습니다.









다음은 선형회귀분석에 대한 가정들입니다. 



4.PNG

선형회귀분석에는 여러 가지 가정이 있는데요. 이러한 가정들이 만족되지 않으면 선형회귀분석을 

사용할 수 없습니다. 선형회귀분석인만큼 첫 번째로 선형성은 yx의 사이가 직선처럼 되야지 

위와 같은 그림처럼 비선형관계가 되서는 안됩니다. 해결방법은 로그를 취해서 직선의 관계를

만들거나 비선형회귀분석을 하는 방법입니다.








51.PNG




다음은 x변수들 사이에 상관성이 있어선 안됩니다. 따라서 다중공선성 문제를 해결해줘야합니다.







52.PNG





다음은 오차항에 대한 가정입니다. 오차는 우리가 알 수 없기 때문에 잔차를 통해서 알 수 있습니다. 잔차 plot을 그려야 하죠그 중에 정상성이란 것은 normal QQ Plot이란 것을 봐서 

저 빨간 점선안에 모든 점들이 들어오면서 대체로 직선의 형태를 띄어야 합니다.

만약 그런 모습이 아니라면 로그나 루트를 취해줘야합니다.








53.PNG




등분산성은 이제 x값과 상관없이 항상 직선을 기준으로 고르게 분포되어 있어야 하는 것입니다. 위와은 그림은 x가 증가할수록 분산이 증가하는 모습을 보이고 있죠? 저런 경우엔 이차항을 추가하거나 

로그나 루트를 취해서 오차들의 분산이 일정하게 만들어줘야 합니다.







54.PNG



독립변수와 잔차가 관계가 있는 경우인데요. 예를 들면 주식 시장에서 전날의 주식이 오늘의 주식에 영향을 끼치는 것처럼 잔차들이 무언가 패턴을 보이는 경우가 독립성을 위배하는 경우입니다. 이런 건 10099는 시계열자료일 경우가 많으므로 시계열 분석으로 가시면 됩니다.







55.PNG



왼쪽엔 Normal QQ plot 오른쪽엔 잔차 plot인데 회귀분석에서 잔차 plot이 지향하고 있는 모습은 이런 모습이면 됩니다. 왼쪽은 직선형태로 오른쪽은 대체적으로 직사각형모형으로 퍼져있으면 됩니다. 제가 올려준 코드를 보고 한번 직접 그려보시면 좋으실 것 같습니다.

왜 오차들이 이런 가정을 해야 하냐면 이런 가정이 무너지면 회귀분석에서 t검정과 f검정을 

할 수 없게 되어서 회귀분석을 하는 못하게 됩니다. 어렵죠? 그냥 열심히 지키시면 되용.







56.PNG



저는 박보영을 되게 좋아하는데요. 누가 와서 소개팅을 시켜주고 싶은데 이상형이 어떻냐고 

물어봅니다. 그때 제가 이제 음 내 이상형은 이마가 어느정도 평평하면서 넓고 머리카락 길이는

약 1미터정도이고 코는 약 4센치정도로 넓고 눈꼬리는 약 2센치정도쳐지고 볼은 .... 

하면서 주루룩 설명하면 친구는 모라고 할까요. 개소리 하지 말라고 하겠죠 ? 그딴 여자를 어떻게

찾냐고 ... 오히려 반대로 아 나는 볼살이 있으면서 눈꼬리가 쳐진 여자가 좋아라고 한다면 아

그래 ? 찾아볼게 하고 가겠죠 ? 물론... 전혀 다른 여자가 나올 가능성이 농후하지만요.


이처럼 회귀모델도 변수들이 많으면 결정계수 값은 높아지겠지만 받아들이는 사람들은 이게 모야 라는 생각만 듭니다. 또한 과적합을 시키면 이 모델 안에서는 잘 맞출 수 있어도 새로 들어오는 값에 대해서는 제대로 예측을 못하는 경우가 많습니다. 저희는 가지고 있는 data를 잘 맞추는 것이 중요한

것이 아니라 미래 혹은 모르는 집단을 맞추는 것이 중요한거잖아요. 그러니 정말 이 식을 잘 설명할 수 있는 변수들만 선택하는 것이 좋습니다.  








57.PNG





그런 변수 선택방법에는 수정된 결정계수, CP통계량, 잔차평균제곱 등이있는데요. 

여기서는 이제 AICBIC를 통한 전진선택법 후진제거법 단계적 방법을 설명하도록 하겠습니다.

이 것 또한 코드를 돌려보면서 이해하시는 것이 빠르실 것 같습니다.


전진 선택법은 아무것도 없는 모델에서 full 모델로 가면서 변수를 고를 때 aic가 낮아지는 

변수를 고르는 것이고 후진 제거법은 full model에서 변수를 하나씩 제거하면서 제거할 때 aic가 낮아지는 변수를 제거하는 것입니다.

단계적 방법은 두개를 혼합한 것으로써 변수들을 제거했다가 더했다가 제거했다가 더했다가 하면서 aic가 낮은 변수들을 고릅니다. 보통 결과 값이 비슷하게 나오는데 일반적으로 단계적 방법이 젤 좋습니다.













58.PNG




변수 선택의 기준으로는 AICBIC가 있는데 sas에선 BIC대신에 SBC라고 불리기도 합니다.

이때 AIC의 경우는 벌점요소(penalty)2(p+1)로 주어져 있지만, SBC의 경우는 (p+1)log(n)입니다. n이 충분히 큰 경우 대부분의 경우 2보다는 ln(n)이 크기 때문에 SBC의 벌점요소(penalty)AIC의 경우보다 가혹하다고(harsher) 말할 수 있습니다.

어느 지수를 사용해도 큰 상관은 없습니다만, AIC의 경우는 일반적인 경우에 SBC의 경우는 보다 엄밀함이 요구되는 경우에 사용할 때에 좋다고 알려져있습니다. 또한 aic는 다른 표본을 사용하면 공식모형이 달라서 비교가 불가능하지만 bic는 표본 크기도 반영이 되므로 각각 다른 표본으로도 경쟁모형의 비교가 가능합니다.

예를 들면 100개의 모형 적합한 것이 있는데 2개의 이상치를 제거하고 모형을 적합했을 때 이 둘 중에 어떤 것이 나을까를 비교하는 것을 볼 때는 Bic로 봐야 한다는 뜻입니다.









그렇게 잔차도 다보고 AIC BIC를 통해 변수를 다봤으면 무엇을 해야하냐 ! 사실 맨 처음에 나왔어야 하는데 바로 TEST를 해야합니다. 


69.PNG


Data splitting은 아주 필수적인데요. 데이터를 쪼개는 것입니다. 왜 이렇게 하냐면 모델에 대한 

과적합을 막기 위해서 입니다. 모델에 대한 과적합이 안 좋은 이유는 위에서도 소개했습니다.

또한 모델링을 함과 동시에 이 모델에 대한 오차를 동시에 구하기 위해서도 데이터를 쪼갭니다.

보통 train data validation data test data 이렇게 3가지로 나눠서 봅니다. 일반적으로 전체 데이터에서 3 : 4 : 3으로 나눕니다. n이 적은 경우엔 train data와 validation data를 7:3으로 나누는 경우도 있습니다. 여기서 각각의 목적은 

train data - 모델을 구축하고 parameter값을 얻는데 쓰는 data입니다.

validation data - 다양한 모델을 찾거나 혹은 한가지의 모델을 정했으면 다양한 option을 

                      적용시켜보는 data입니다.

test data - 모델의 performance를 구하는 data입니다. 


방법은 맨 처음 3가지 data set으로 data를 나누고 

train data로 맨 처음 모델을 구축하고 validation으로 평가합니다. 그 이후   

그리고 여러가지 option을 주고 다양한 모델을 만들어 보면서 validation으로 평가해서 

최종적으로 제일 좋은 모델을 만든 후 ( 최종적으로 제일 좋은 모델은 본인의 판단이겠죠)

이것을 test data를 통해 모델의 최종적인 퍼포먼스를 구해봅니다.






72.PNG




전체적인 순서입니다. data를 받으면 탐색적 자료분석을 하고 회귀식을 적합한 후에 잔차 plot을 하고 교차검증을 합니다. 그러면서 마음에 안들면 다시 빠꾸하고 또 빠꾸하는 그런형태를 띄면서 제일 좋은 모형을 만드시면 되겠습니다. 








73.PNG




이상 회귀분석을 마치겠습니다. 학부생 수준인지라 지적을 해주시면 수정을 하도록 하겠습니다.

읽어주셔서 감사합니다. 

이 외에도 education1960_70.csv   회귀분석 예제코드.txt

로 실습해보시면 좋을 것 같습니다. 이상입니다. 




List of Articles
번호 제목 글쓴이 날짜 조회 수
8 8.군집분석[H-cluster] file 바키똥 2015.09.22 59866
7 군집분석[K-means] file 뀐뀐 2015.09.19 58028
6 6. K 근접이웃 알고리즘 1 file 통계돌이 2015.08.16 54240
5 5. 나이브 베이즈 분류기 1 file 통계돌이 2015.07.27 56667
» 4.회귀분석(part2) file 지니상 2015.05.05 66049
3 3. 회귀분석 (part1) file 지니상 2015.04.13 66591
2 2. 통계학 기초 Part2 ssomnium 2015.03.14 53480
1 1. 통계학 기초 Part1 1 ssomnium 2015.03.12 54888
Board Pagination ‹ Prev 1 Next ›
/ 1

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5