Skip to content

Latest commit

 

History

History
50 lines (31 loc) · 4.67 KB

File metadata and controls

50 lines (31 loc) · 4.67 KB

01. 회귀분석 - 데이터과학의 주역

회귀분석(Regression Analysis) 이란?

유중혁

전지적 독자 시점의 회귀자 유중혁과는 관계가 없다 어쩌면..있을지도?

통계학에서, 회귀 분석은 관찰된 연속형 변수들에 대해 두 변수 사이의 모형을 구한뒤 적합도를 측정해 내는 분석 방법이다.

회귀분석은 시간에 따라 변화하는 데이터나 어떤 영향, 가설적 실험, 인과 관계의 모델링등의 통계적 예측에 이용될 수 있다. 그러나 많은 경우 가정이 맞는지 아닌지 적절하게 밝혀지지 않은 채로 이용되어 그 결과가 오용되는 경우도 있다. 특히 통계 소프트웨어의 발달로 분석이 용이해져서 결과를 쉽게 얻을 수 있지만 분석 방법의 선택이 적절했는지 또한 정보 분석이 정확한지 판단하는 것은 연구자에 달려 있다. (위키피디아 발췌)

아주.. 어려운 말이다! 단번에 이해하기 쉽지가 않다! .. 해서 우리의 과거의 경험을 되돌려 보자. 본인은 2015학년도에 1학년이었는데, 1학년 1학기와 2학기 두 학기에 걸쳐 기초전자물리학실험 이라는 과목을 들었다. 이 과목에서 주요하게 사용했던 프로그램이 Logger Pro 였는데, 그 과목에서는 실험을 하고, 실험 영상을 프레임 단위로 점을 찍어서 그래프로 나타낸 후, 내부 기능을 이용해 가장 비슷한 직선, 혹은 곡선으로 나타내서 F=ma 같은 공식이 실제로 작용함을 보는.. 그런 수업이었다. 해서 Logger Pro를 떠올리면 된다! 라고 하려고 했는데 다른 19학번에게 물어보니 요즘 젊은이들은 Logger Pro를 사용하지 않는다고 한다.. 요즘 젊은이들이 무엇을 배우는지는 잘 모르겠지만, Logger Pro를 배우지 않은 신세대들을 위하여 다른 설명을 시도해 보겠다.

.. 좀 있어보이는 정의부터 조지고 시작하기 위해 파란책을 좀 찾아봤는데, 놀랍게도 회귀분석의 정의가 없다! 그래서 위쪽 위키피디아의 정의 중에 중요한 단어를 찾아보면

  • 두 변수
  • 모형
  • 적합도

정도가 중요한 단어인 것 같은데, 어쨌든 회귀분석은 두 변수 간의 관계를 추론해내는 것이라고 생각하면 될 것 같다.

왜 회귀(Regression)인가?

우생학을 만들어낸 영국의 유전학자 프랜시스 골턴(Francis Galton)갈톤이 아니다 ㅋㅋ 은 키가 큰 아버지에게서는 키가 큰 아들이 태어나긴 하지만, 세대가 지나면서 그것이 평균으로 돌아가려는 경향을 보인다는 사실에 주목했다. 가령 키가 큰 아버지에게서 키가 큰 아들이 태어나긴 하지만, 아버지보다 큰 경우는 없다는 것이다. 사실 당연한 것이, 이러한 경향 없이 점점 키가 커지거나 점점 키가 작아진다면 키는 무한대로 발산하거나 0으로 수렴하게 될 것이다. 아무튼 이 키가 평균으로 회귀(Regression) 한다고 보고, 이를 분석하는 방법을 회귀분석(Regression Analysis)라 명명하였다. 하지만 현대에 이르러서는 이 회귀의 의미는 거의 사라졌고, 분석하는 방법에 따라 이름이 명명되는 듯하다. 분석에 시계열 데이터를 활용하면 시계열 회귀분석이고, 선형 관계인 듯 하면 선형 회귀분석인 식이다.

회귀분석의 활용

필요한 것들

우리가 조금 더 편하게 데이터들을 활용하기 위해 Anaconda와 Jupyter Notebook을 사용할 것이다. 또한 여러 파이썬 패키지들과 함수들을 사용할 것인데, 이에 대해 간단히 알아보도록 하자.

Anaconda?

Windows 환경에서 조금 더 쉽게 가상환경을 관리할 수 있게 도와주는.. 조금 다르게 생긴 CMD나 Powershell이라고 생각하면 쉽게 이해할 수 있을 듯하다. 아니라고? Anaconda 설치는 쉬우니까 생략하도록 하고, 필요한 명령어들은 다음과 같다.

conda create -n "가상환경명" -y
conda activate "가상환경명"
conda install ~~~ 혹은 pip install ~~~

conda create를 활용하여 가상환경을 생성해 주고, conda activate 명령어를 활용하여 생성한 가상환경을 활성화한다. 가상환경을 활성화하게 되면 옆에 (base)라고 뜨던 것이 (가상환경명)이라고 바뀌게 될 것이다. 활성화된 가상환경에서 여러 패키지들을 설치해 주면 되는데, 우리가 사용할 패키지들은 다음과 같다.

  • Numpy
  • Scipy
  • Statsmodels
  • Scikit-learn

이제 우리는 저것들을 이용하여 회귀분석을 할 것이다.