Statistics

[Statistics] R스퀘어값이 높아지는 5가지 이유

jonny_is_doing 2020. 12. 30. 19:20

지난 포스팅에서 R스퀘어 값이 지나치게 높게 나왔다. 오늘은 실습을 나아가기 이전에 R스퀘어 값이 높아 지는 이유에 대해서 포스팅 해보려고 한다. 다중회귀분석 프로젝트를 하면서 어중이 떠중이로 넘겨버린 부분을 확실히 잡고 넘어가야 겠다고 생각했기 때문이다. 

그래서 구글링을 해보던 중, 잘 정리해 놓은 블로그가 있어서 그걸 번역한 것을 올리기로 했다.

 

 

 

https://image.shutterstock.com/image-illustration/mobile-office-stock-exchange-market-260nw-261177431.jpg

 

 

 

왜 당신의 R스퀘어 값이 지나치게 높아 질 수 있는 지 5가지 이유

나는 R스퀘어에 대해 전에 쓴적이 있고 그것이 한 눈에 보기에 그리 직관적이지 않다고 결론 지었다. R스퀘어는 오해할수있는 통계량이 될 수 있다. 왜냐하면 어떤 높은 R 스퀘어값이 항상 좋은게 아니고 낮은 R스퀘어값이 항상 나쁜 것은 아니기 때문이다. 나는 심지어 이렇게 말한다.

 

"R스퀘어는 과대평가된 것이고 추정치의 표준오차가 더 유용할 수 있다."

 

비록 내가 R스퀘어에 대해 항상 열정적인 것은 아닐지라도 (의역: 항상 R스퀘어 값을 중히 여기진 않았을 지라도), R스퀘어가 전혀 유용하지 않다는 것은 아니다. 예를 들면 만약 당신이 어떤 연구를 수행했고 유사항 연구들이 일반적으로 눈에 띄게 높거나 낮은 R스퀘어값을 가진다는 걸 인지한다면, 당신은 왜 자신의 R스퀘어는 다른지 조사해봐야 한다. 뭔가 잘못되었을 수 있기 때문이다.

 

이 포스팅에서 나는 왜 당신의 R스퀘어 값이 지나치게 높하질 수 있는지에 대한 5가지 이유를 알아본다. 이것은 어떠한 종합적인 리스트는 아니지만 보다 흔한 이유들을 다룬다.

 

 

높은 R스퀘어 값이 문제가 될까?

매우 높은 R스퀘어 값은 반드시 문제가 되는 것은 아니다. 어떤 과정에서는 0.90에 웃도는 R스퀘어 값을 가질 수 있다. 이렇게 높은 값은 종종 물리적인 과정(physical process)에서 일어난다. 그런 과정에서 당신은 정확한 측정을 얻을 수 있고 process noise 또한 적다.

 

당신은 높은 R스퀘어가 문제가 될 지 판단하기 위해 자신의 전공지식을 이용해야 할 것이다. 내재적으로 예측할 수 있는 모델링을 하였는가? 혹은 그 정도 까진 아닌가? 만약 당신이 물리적 과정(physical process)을 측정할 거라면, R스퀘어 값 0.90은 놀라운 결과가 아니다. 그러나 만약 당신이 인간행동을 예측하겠다는 데 0.90? 너무 높다!

 

당신의 R스퀘어 값이 올바른 범위에 있는지 판단하기 위해 비슷한 연구들과 비교해보라. 만약 너의 R스퀘어가 너무 높다면 아래와 같은 가능성을 고려해보라. 당신의 모델에 어떤 걸 적용할지 판단하기 위해, 당신은 전공지식, 모델을 추정한 방법, 그리고 데이터의 특정 세부사항들을 확인해야 할 것이다.

 

이유1: R스퀘어값은 편향된 추정치이다.

 

당신의 회귀결과에서의 R스퀘어값은 당신의 표본(sample)에서 비롯된 편향된 추정치이다. 이는 지나치게 높게 나올 수 있다. 이런 편향때문에 어떤 실험자들은 R스퀘어를 전혀 사용하지않고 조정된 R스퀘어만을 사용하기도 한다.

R-squared는 마치 고장난 체중계와 같다.

R스퀘어는 마치 고장난 체중계와 같다. 매우 높게 표시되는 경향이 있다는 것이다. 아무도 그걸 바라진 않는다! 회귀의 최적화 과정은 표본데이터에서 chance correlations(기회 상관관계?)의 이점을 취하고 R스퀘어를 팽창시킨 다는 걸 오래동안 인지해왔다. 

 

조정된 R스퀘어는 당신이 그 고장난 체중계에 할 행동을 해줄 것이다. 만약 당신이 그 체중계가 지속적으로 너무 높게 나온다는 걸 알았다면, 당신은 평균치에 맞는 무게를 만들기 위해 적절한 양으로 체중계를 조절할 것이다.

 

조정된 R스퀘어는 당신의 회귀모델에서 항의 갯수와 샘플사이즈를 비교한다. 각 항 당 많은 표본수를 가진 회귀모델은 더 높은 R스퀘어 추정치를 생성하고 더 낮은 수축성을 요구한다. 반면에 한 항 당 적은 표본을 가진 모델은 편향을 맞추기 위해 더 높은 수축성을 요구한다.

 

더 많은 정보는 adjusted R-squaredR-squared shrinkage 를 참고하세요.

 

이유2: 당신의 모델이 과적합되어 있을 수도 있다.

과적합된 모델이란 데이터셋에 너무 복잡해진 모델을 말한다. 관측치에 비해 너무 많은 항(변수)들을 넣었다는 것이다. 이런 경우, 회귀모델은 전체 개체수를 반영하기 보다는 이상치나 random noise에서 맞춰져 있을 확률이 높다. 만약 다른 샘플을 만들었다면 그 샘플셋은 자체적인 이상치를 발생시킬 것이고 원본의 과적합 모델은 그 새로운 샘플데이터에는 fit하지 않을 것이다.

 

조정된 R스퀘어가 항상 이 과적합현상을 캐치할 수 없다. 그러나 predicted R스퀘어는 종종 캐치한다.

 

 

이유3: 데이터마이닝과 기회 상관관계(chance correlations)

만약 당신이 많은 모델을 적합했다면, 특별한 의미가 있다고 보이는 변수들을 찾았을 것이다. 그러나 그 변수들은 단지 우연히 상관성이 있는 것이다. 당신의 최종 모델은 관측치의 수에 지나치게 복잡하지 않을 수 있지만, 그 최종 모델에 도달하기 위해 다양한 모델에 적합했을시에는 문제가 발생한다. 데이터마이닝은 심지어 완전히 랜덤한 데이터에서도 높은 R스퀘어 값을 산출할 수 있기 때문이다!

 

회귀분석을 실행하기 전에 당신은 변수의 연관성, 계수의 기호, 이전 연구를 토대로 한 효과의 크기 등에 따라 어떤 중요한 변수들이 있는지에 대한 아이디어를 이미 갖고 있어야 한다. 불행히도 최근 트렌드에서 이러한 접근 방식은 한물 간 방법이다. 왜냐하면 거대하고 지속적으로 이용가능한 데이터베이스와 자동적으로 회귀 모델을 만드는 과정들 덕분이다.

 

-> 의역하자면, 애초에 회귀분석 프로젝트를 진행하기 전에 어떤 변수가 어느정도의 상관관계를 보이는가에 대한 사전지식이 있어야 한다. 그렇지 않으면 통계숫자에 놀아나는 꼴이 되어 버리기 때문이다.

 

 

이유4: 시계열 데이터의 동향(trends)

만약 당신이 시계열 데이터를 갖고 있고 당신의 반응변수와 예측 변수 둘다 시간에 따라 유의미한 동향을 갖고 있다면 이 역시 매우 높은 R스퀘어 값을 산출할 수 있다. 당신은 시계열분석을 시도했을 지도 모르고 lagged 변수나 differenced변수와 같은 시간과 관련된 변수를 회귀모델에 포함하고 있을 수 있다. 편리하게도 이러한 분석들과 함수들은 모두 Minitab statistical software에서 사용 가능하다.

 

 

이유5: 변수의 형태

반응변수와 예측변수에 대해서, 같은 변수의 다른 형태를 포함하고 있을 가능성이 있다. 예를 들면, 만약 반응변수가 섭씨 온도이고 당신이 다른 스케일(예를들면 화씨)로 온도에 대한 예측변수를 갖고 있다면, 거의 100%에 가까운 R스퀘어값을 가지게 될 것이다. 이는 자명한 예시이지만, 너의 실제 데이터에서는 더 미세하게 발생할 수 있는 문제이다.

 

 

 

 

https://blog.minitab.com/blog/adventures-in-statistics-2/five-reasons-why-your-r-squared-can-be-too-high

 

Five Reasons Why Your R-squared Can Be Too High

Five Reasons Why Your R-squared Can Be Too High

blog.minitab.com

위 링크의 게시글을 번역한 것이고, 위 번역본이 답답하다면 원문을 참고해주시기 바랍니다.

 

 

 

* 내 데이터에 적용점.

내 데이터셋은 변수는 14개이고 관측치는 139개로, 변수에 비해 관측치가 많은 편이었다. 따라서 더미변수를 줄이고 스케일링한 연속형 변수를 가지고 적합하여 모델링할 계획이다.