통계 분석 도구들 :: 통계 - mindscale
Skip to content

통계 분석 도구들

데이터분석, 통계 도구들에 대해 알아보도록 하겠습니다.

엑셀

  • 스프레드시트(Spreadsheet)
  • 데이터 분석에서 가장 널리 사용되는 도구
  • 간단한 작업을 편하게 할 수 있음
  • 내장된 비주얼 베이직으로 프로그래밍도 가능
  • 제한:
    • 최대 1백만행, 1만6천열 크기의 데이터만 열 수 있음
    • 얼마나 크면 빅 데이터인가? 엑셀에서 열리지 않으면. (농담)
    • 복잡한 계산에는 한계
    • 제공하는 함수 부족
    • 함수를 조합해서 사용하기에 UI가 불편

데이터 분석이나 통계에서 제일 많이 쓰는 대표적인 도구는 마이크로소프트 엑셀입니다. 엑셀과 비슷한 툴들을 스프레드시트(Spreadsheet)라고 하죠. 데이터 분석과 통계를 직업으로 하시는 분들에게 설문조사를 해보면, 가장 많이 사용한다고 대답하는 도구가 엑셀입니다. 아마 일반적인 사무직 직장인들도 물어보면 엑셀을 가장 많이 쓴다고 할 것 같네요.

엑셀의 장점은 간단한 작업을 할 때 굉장히 편하게 할 수 있다는 거예요. 금방 배워서 쉽게 사용할 수 있고, 기능도 생각보다 많이 있습니다. 비주얼 베이식이라는 프로그래밍 언어가 내장되어 있어서, 간단한 경우에는 프로그램을 짜는 것도 가능해요.

단, 엑셀 같은 경우에는 제한이 굉장히 많은데, 일단 열 수 있는 데이터 크기가 최대 100만 행으로 제한이 있습니다. 이것은 프로그램 자체의 제한이라서, 여러분들이 컴퓨터를 아무리 좋은 것을 쓰셔도, 이 이상의 데이터는 열 수가 없습니다. 그래서 흔히 말하는 빅데이터는 엑셀로 분석을 할 수 없습니다.

또 복잡한 계산을 하려고 해도 문제가 있습니다. 일단 엑셀에서 제공하는 함수가 몇 종류 안됩니다. 그래서 할 수 있는 게 별로 없습니다. 그 함수를 조합을 하려고 하면, 엑셀의 UI 특성상 조그만 칸 하나에 복잡한 계산식을 쓰든지, 여러 개의 칸에 나눠서 계산을 해야 합니다. 그래서 계산이 복잡하면 전체적인 계산을 파악하기가 어려워요.

R과 Python

  • 복잡한 통계 분석을 위해서는 SAS 등 전문 통계 분석 도구가 필요
  • R과 Python은 통계 분석에 사용할 수 있는 컴퓨터 프로그래밍 언어
  • 컴퓨터 프로그래밍 언어: 컴퓨터에게 일을 시키기 위한 언어
  • 초보자도 쉽게 배울 수 있으면서, 기능이 강력함
  • 오픈소스: 상업적 목적으로도 자유롭게 사용 가능

R

  • R은 통계 전용의 프로그래밍 언어
  • 과거에는 상대적으로 단순한 통계 분석만 했기 때문에 상용의 통계 프로그램으로도 충분
  • 빅데이터의 시대가 되면서 데이터에 따라 해줘야 하는 작업이 다양하고 복잡
  • 사용자가 자신의 데이터에 맞는 통계 프로그램을 작성할 필요가 생기면서 R이 활발하게 쓰이게 됨
  • R은 오픈 소스(open source)로 공개가 되어 있음
  • 소스는 프로그램의 설계도
  • 무료 + R의 내부 구조를 보고 마음에 들지 않으면 뜯어 고치거나 원하는 기능을 추가할 수도 있음
  • 상용 프로그램은 버그가 있어도 제작사에서 고쳐주지 않으면 방법이 없음
  • 전세계에서 수많은 사람들이 R을 쓰고, R에 새로운 기능을 추가하거나 버그를 고치는 일에 참여
  • R이 또 빠르게 발전을 하는 선순환
  • 통계학자들도 R을 연구에 많이 활용
  • 통계 기법을 연구하려면, 이 기법을 실제로 계산을 해봐야 → R로 프로그램을 만들어서,계산
  • 결과를 논문으로 발표를 할 때, 이 프로그램도 같이 공개 → 논문이 많이 인용됨

복잡한 통계 분석을 하려면, 그에 맞는 툴이 필요합니다. 대표적으로 SAS와 같은 전문적인 통계 분석 도구들이 있습니다. 최근에는 R이나 Python을 쓰는 것이 트렌드입니다.

R은 통계 전용의 프로그래밍 언어입니다. 프로그램이란 컴퓨터에게 일을 시키는 것입니다. 이때 컴퓨터가 알아들일 수 있는 말을 프로그래밍 언어라고 합니다. R은 통계와 관련된 일을 시키기에 좋은 말인 것이죠. 그래서 R을 사용하면, 내가 원하는 형태의 데이터 분석을 컴퓨터에게 쉽게 시킬 수가 있습니다.

과거에는 상대적으로 단순한 통계 분석만 했기 때문에 상용의 통계 프로그램으로도 충분했지만, 빅데이터의 시대가 되면서 데이터에 따라 해줘야하는 작업이 다양하고 복잡해졌습니다. 그래서 사용자가 자신의 데이터에 맞는 통계 프로그램을 작성할 필요가 생긴 것이죠. 그래서 R이 활발하게 쓰이게 되었습니다.

R의 장점 중의 하나는 오픈 소스(open source)로 공개가 되어 있다는 것입니다. 소스는 프로그램의 설계도를 말합니다. 이 설계도가 오픈되어 있습니다. 이 말은 R을 무료로 쓸 수 있다는 뜻이기도 하고, 더 나아가 원하면 R의 내부 구조를 보고 마음에 들지 않으면 뜯어 고치거나 원하는 기능을 추가할 수도 있다는 뜻입니다. 상용 프로그램은 버그가 있어도 제작사에서 고쳐주지 않으면 방법이 없는데, R은 자신이 실력만 있다면 다 고칠 수 있습니다.

이런 장점 때문에 전세계에서 수많은 사람들이 R을 쓰고 있고, 또 이 사람들이 R에 새로운 기능을 추가하거나 버그를 고치는 일에 참여를 하고 있습니다. 그러다보니 R이 또 빠르게 발전을 하는 선순환이 이뤄집니다.

통계학자들도 R을 연구에 많이 활용을 합니다. 통계 기법을 연구하려면, 이 기법을 실제로 계산을 해봐야 합니다. 이때 R로 프로그램을 만들어서, 계산을 해본단 말이죠. 그리고 그 결과를 논문으로 발표를 할 때, 이 프로그램도 같이 공개하는 경우가 많습니다. 학자들은 자신의 논문을 남들이 많이 인용을 해야 성공을 합니다. 그런데 논문만 공개하면 그 기법을 보고 따라하기가 어렵습니다. 프로그램도 같이 공개를 하면 남들이 그 논문의 내용을 다 이해 못해도, 논문에 나오는 기법을 따라할 수가 있죠. 그러면 그 논문을 많이 인용할 것이고, 논문을 쓴 사람의 명성이 높아집니다. 이런 이유로 최신 통계 기법을 돌리려면 R을 써야하는 경우가 많습니다.

R도 단점이 있습니다. 이것은 엑셀 같은 독립적인 프로그램이 아니라, 그런 프로그램을 만들기 위한 언어입니다. 바꿔말하면 간단한 작업을 하나 하려고 해도 내가 프로그램을 만들어야 한다는 뜻입니다. 초보자에게는 좀 어려울 수 있습니다. 그래서 Jamovi라는 프로그램도 있습니다.

Jamovi

  • R에 기초한 GUI 방식의 무료 공개 통계 프로그램
  • 코딩 없이 마우스 클릭으로 데이터 분석
  • R 초보자들도 R을 활용한 데이터 분석을 쉽게할 수 있음

Jamovi는 R로 만들어진 프로그램으로, 그래픽 유저 인터페이스를 갖춘 통계 프로그램입니다. 자주 쓰이는 통계 작업들을 마우스로 클릭해서 간단히 수행할 수 있게 만들어져 있습니다.사용하기도 쉽고, 이 프로그램 자체가 R로 만들어져 있기 때문에, 원하는 기능이 있으면 R로 추가할 수 있습니다.

Python

  • Python은 범용 프로그래밍 언어
  • 통계 이외에도 다양한 용도로 쓸 수 있음
  • 대표적인 용도가 웹개발: 유튜브, 인스타그램, 구글 등의 서비스가 모두 Python으로 개발
  • R에 비해 통계 기능은 약하나, 통계 + α로 작업하기 편함
  • C나 Java등 다른 범용 언어에 비해 쉬움: 대학교 1학년 학생들에게 프로그래밍을 가르칠 때 쓰는 언어
  • Python을 데이터 분석에도 많이 활용: R보다 사용자가 많음
  • 통계 분석과 인접한 머신러닝이나 인공지능 분야에서는 Python이 사실상의 표준

다음으로 Python을 알아봅시다. Python은 범용 프로그래밍 언어입니다. 범용이란 두루두루 다양한 용도로 쓸 수 있다는 것입니다. 여기에 일장일단이 있는데, R과 달리 통계 전용이 아니기 때문에 통계만 하자면 좀 더 약합니다. 대신 통계 이외의 일도 쉽게 잘 할 수 있습니다.

범용 프로그래밍 언어에는 C나 Java도 있는데요, Python은 이런 언어들보다 훨씬 쉽습니다. 요즘에 대학교 1학년 학생들에게 필수적으로 프로그래밍을 가르치는 대학들이 늘어나고 있는데요, 이때 가르치는 것이 보통 Python입니다.

Python의 장점은 쉽다는 것이고, 단점은 C나 Java보다 좀 느리다는 것입니다. 그런데 현대의 컴퓨터는 굉장히 빠르기 때문에 대부분의 작업에서는 이런 속도 차이가 크게 중요하지 않습니다. 대표적인 경우가 웹 개발입니다.

웹사이트는 네트워크로 접속을 해야하는데, 네트워크 속도가 생각보다 느립니다. 빛의 속도가 지구를 1초에 7.5바퀴 도는데요, 반대로 말하면 한국에서 지구 반대편에 있는 미국의 웹사이트에 접속하려면 아무리 빨라도 0.1~0.2초는 걸린다는 것입니다. 현대의 컴퓨터가 수 억 번의 계산을 할 수 있는 시간입니다. 그래서 웹사이트는 언어에 따른 속도 차이를 체감하기가 어렵습니다. 아무리 Python이 느려도 계산을 몇 억 번 더 하는 건 아니거든요.

대신 웹사이트는 새로운 기능을 추가하거나 빼는 것이 자주 있습니다. 웹 사이트를 이루는 프로그램이 100만분의 1초 더 빨리 돌아가는 것보다, 이런 기능을 쉽고 빠르게 개발할 수 있는 것이 중요합니다. Python은 여기에 큰 장점이 있어요. 이런 이유로 여러분이 잘 아시는 유튜브, 인스타그램, 구글 등의 서비스가 모두 Python으로 개발되었습니다.

그외에도 Python은 다양한 용도에서 쓰이고 있고, 직업적인 프로그래머 중에는 Python을 서브 언어로 쓸 줄 아는 경우가 많습니다. 데이터 분석 붐이 불면서 데이터 분석가 수요가 증가했는데요, 기존에 R을 쓰던 사람들은 많지 않았기 때문에 수요를 채우기가 어려웠습니다. 그에 반해 Python은 다양한 분야에 활용되어 사용자 층이 두텁다 보니, 데이터 분석에서도 Python이 많이 쓰이게 되었습니다.

또, 머신러닝이나 인공지능 학계에서는 원래부터 R보다 Python을 많이 사용해왔습니다. 이 분야들도 데이터 분석과 밀접한 관련이 있기 때문에 인공지능의 발전과 함께 데이터 분석에서 Python의 인기도 더 늘어나게 되었습니다.

그렇지만 R과 Python은 둘 다 쉬운 언어고, 문법도 비슷합니다. 어느 한 쪽을 배우면, 다른 한 쪽도 쉽게 배울 수 있습니다. 실제로도 상당수의 데이터 분석가들은 두 가지를 다 구사할 수 있고 필요에 따라 사용하고 있습니다.