빅데이터 분석의 기본, R 프로그래밍이란?

빅데이터/R 2018. 11. 26. 16:39

빅데이터 분석의 기본, R 프로그래밍이란?



1. R 프로그래밍이란?

R공식 사이트에서는 "R은 통계 분석과 그래픽을 위한 언어이자 환경이다"라고 정의하고 있습니다. R프로그래밍은 대표적인 오픈소스 통계 패키지로 기존의 통계 프로그램과는 차별화 된 인프라를 제공하고 있습니다. 기존 프로그램들(SAS, SPSS 등)은 소프트웨어 자체의 비용이 비쌀뿐더러 데이터 분석 속도가 느리다는 단점이 있었는데 R프로그래밍은 이러한 단점이 보완된 빅데이터 분석 툴입니다. 


R프로그래밍은 기획, 마케팅, 통계, 분석 업무 및 대학교, 대학원에서도 논문 결과 도출용으로 활용하게 됩니다. 그리고 IT는 물론 경제/금융/제조 등과 같은 다양한 분야에서 충분히 이용 가능합니다. 이처럼 활용 범위가 넓은 R프로그래밍은 전세계에서 사용 가능한 오픈소스기 때문에 대부분의 명령어가 라이브러리화 되어 있어서 이용자들이 다양한 기능을 쉽게 공유하면서 통계 처리가 가능하다고 합니다. 그리고 R프로그래밍은 분석 관련 함수들이 잘 구성되어 있어서 따로 코딩을 할 필요 없이 함수만 익혀도 결과 값의 해석이 가능합니다. 따라서 초보들도 독학으로 배우기 어렵지 않은 프로그램이라고 할 수 있습니다. 



2. 왜 R인가? R의 장점

1) 무료

오픈 소스로 개인, 기관, 기업에서 무료로 사용이 가능합니다. 타 통계, 분석 프로그램은 라이센스 가격만 천만원대가 넘는 경우도 있습니다. 단, R 프로그램을 이용하여 상용 제품을 만들어 낼 때에는 라이센스 비용을 지불해야 합니다.


2) 많은 분석기능

다양한 통계 방법론을 적용한 데이터 분석 기능을 제공합니다. R에는 몇천가지의 통계분석 패키지가 있습니다. 최신의 분석기법이 다른 툴에는 없더라도 R에는 있을 가능성이 높습니다. 오픈소스이다 보니 전세계의 분석가, 개발자들이 배포, 공유 하는 생태계가 형성되어 있습니다.


3) 강력한 그래프 기능

단순한 코딩만으로 표, 차트, 지도 등 다양한 시각화 자료를 만들 수 있다. 2D, 3D 그래픽, 지도, GIS, 동적 그래프 등을 지원합니다. 머리로 생각할 수 있는 거의 대부분의 그래프는 R로 프로그래밍 해서 표현할 수 있습니다. R을 활용한 그래프를  신문, 책, 인터넷 포스팅에 바로 사용해도 될 정도로 완성도가 높습니다. 


4)데이터 처리

데이터 분석을 하다보면 데이터 수집/처리/탐색적 분석이 60~80%를 차지하고 있고, 모델링은 상대적으로 적은 시간이 소요됩니다. R은 데이터 분석 외에도 데이터 처리에 있어 매우 강력한 툴입니다. 텍스트, CSV, 엑셀, SAS, SPSS, Stata, DB 등의 다양한 데이터를 읽어오는 기능을 제공합니다. 수정, 삭제, 정렬, 합치기 등의 데이터 핸들링이 편리합니다.



5)객체 지향 프로그래밍 언어

일회성 분석만 할 것이 아니라면, 시스템화/자동화를 해야하는 상황이라면, 개발자라면 '객체 지향 프로그래밍 언어'라는 말이 가지는 힘과 의미를 잘 알것이라고 봅니다. R은 벡터 연산과 Indexing이 유용하고 강력하며, 사용자 정의 함수와 루프 돌리는 프로그래밍 언어 또한 강력하고, 지도 등의 애플리케이션과도 연동이 되는데, 거기에 통계분석까지 됩니다. 구글이 회사차원에서 R을 사용한다고 하는데, 아마도 위의 이유들 때문에 R을 사용하는게 아닌가 싶습니다. 


6) 커뮤니티, 공개/공유된 자료

국내에도 R 커뮤니티가 있지만 해외에서는 커뮤니티가 많이 활성화 되어 있습니다. R을 분석하다가 잘 안된다거나 궁금한게 있다면 구글검색을 해 보면 쉽게 답을 찾을 수 있습니다. 커뮤니티를 통해 많은 개발자들이 제공하는 수천개의 라이브러리를 활용할 수 있습니다.


7) 메모리

데이터는 메모리(RAM)에서 작동되기 때문에 데이터 처리가 빠릅니다. 메모리 크기에 따라 분석할 수 있는 데이터의 양이 결정됩니다.


3. R 프로그램의 주요 기능

1) 통계분석

2) 데이터 마이닝

3) 빅데이터 분석

4) GIS

5) 웹 크롤링(Web Crawling)

6) 텍스트 마이닝(Text Mining)

  - 워드 클라우드(Word Cloud)

  - 감성 분석

7) 소셜네트워크분석(SNA : Social Network Analysis)

8) 기계학습

9) Reproducible Research

10) Shiny를 이용한 웹 애플리케이션 개발