R에서 탐색적 데이터 분석(EDA)을 수행하는 방법(예제 포함)

통계 요약 및 그래픽 표현을 통해 추세와 패턴을 발견하고 데이터 세트를 요약하는 데 사용되는 중요한 프로세스인 탐색적 데이터 분석에 대해 알아야 할 모든 것을 배우십시오.

모든 프로젝트와 마찬가지로 데이터 과학 프로젝트는 시간, 좋은 조직 및 여러 단계에 대한 세심한 존중이 필요한 긴 프로세스입니다. 탐색적 데이터 분석(EDA)은 이 프로세스에서 가장 중요한 단계 중 하나입니다.

따라서 이 기사에서는 탐색적 데이터 분석이 무엇이며 R을 사용하여 이를 수행하는 방법에 대해 간략하게 살펴보겠습니다.

탐색적 데이터 분석이란 무엇입니까?

탐색적 데이터 분석은 비즈니스, 통계 또는 기계 학습에 관계없이 애플리케이션에 제출하기 전에 데이터 세트의 특성을 조사하고 연구합니다.

정보의 특성과 주요 특성에 대한 요약은 일반적으로 그래픽 표현 및 표와 같은 시각적 방법으로 수행됩니다. 이러한 데이터의 잠재력을 평가하기 위해 사전에 정밀하게 실습을 수행하며, 향후 더 복잡한 처리를 받게 됩니다.

따라서 EDA는 다음을 허용합니다.

  • 이 정보를 사용하기 위한 가설을 세웁니다.
  • 데이터 구조의 숨겨진 세부 정보를 탐색합니다.
  • 결측값, 이상값 또는 비정상적인 동작을 식별합니다.
  • 추세 및 관련 변수를 전체적으로 발견하십시오.
  • 관련 없는 변수나 다른 변수와 상관관계가 있는 변수는 버리십시오.
  • 사용할 공식 모델링을 결정합니다.

기술 데이터 분석과 탐색적 데이터 분석의 차이점은 무엇입니까?

데이터 분석에는 기술적 분석과 탐색적 데이터 분석의 두 가지 유형이 있으며, 이는 서로 다른 목표에도 불구하고 함께 진행됩니다.

첫 번째는 평균, 중앙값, 모드 등과 같은 변수의 동작을 설명하는 데 중점을 둡니다.

탐색적 분석은 변수 간의 관계를 식별하고 예비 통찰력을 추출하며 분류, 회귀 및 클러스터링과 같은 가장 일반적인 기계 학습 패러다임으로 모델링을 지시하는 것을 목표로 합니다.

일반적으로 둘 다 그래픽 표현을 다룰 수 있습니다. 그러나 탐색적 분석만이 실행 가능한 통찰력, 즉 의사 결정자의 행동을 유발하는 통찰력을 얻으려고 합니다.

  Android에서 Google Play 프로텍트를 활성화하는 방법

마지막으로 탐색적 데이터 분석은 문제를 해결하고 모델링 단계를 안내할 솔루션을 제공하는 반면, 설명적 분석은 이름에서 알 수 있듯이 문제의 데이터 세트에 대한 자세한 설명을 생성하는 것을 목표로 합니다.

설명적 분석탐색적 데이터 분석행동 분석행동 및 관계 분석요약 제공 사양 및 조치로 안내 테이블 및 그래프의 데이터 구성표 및 그래프의 데이터 구성유의한 설명력이 없음상당한 설명력이 있음

EDA의 실제 사용 사례

#1. 디지털 마케팅

디지털 마케팅은 창의적인 프로세스에서 데이터 중심 프로세스로 진화했습니다. 마케팅 조직은 탐색적 데이터 분석을 사용하여 캠페인 또는 노력의 결과를 결정하고 소비자 투자 및 타겟팅 결정을 안내합니다.

인구통계학적 연구, 고객 세분화 및 기타 기술을 통해 마케터는 대량의 소비자 구매, 설문조사 및 패널 데이터를 사용하여 전략 마케팅을 이해하고 전달할 수 있습니다.

웹 탐색 ​​분석을 사용하면 마케터가 웹 사이트의 상호 작용에 대한 세션 수준 정보를 수집할 수 있습니다. Google Analytics는 마케터가 이러한 목적으로 사용하는 인기 있는 무료 분석 도구의 예입니다.

마케팅에서 자주 사용되는 탐색 기술에는 마케팅 믹스 모델링, 가격 책정 및 판촉 분석, 판매 최적화, 탐색적 고객 분석(예: 세분화)이 포함됩니다.

#2. 탐색적 포트폴리오 분석

탐색적 데이터 분석의 일반적인 응용 프로그램은 탐색적 포트폴리오 분석입니다. 은행이나 대출 기관에는 다양한 가치와 위험이 있는 계좌 모음이 있습니다.

계정은 보유자의 사회적 지위(부자, 중산층, 가난한 사람 등), 지리적 위치, 순자산 및 기타 여러 요인에 따라 다를 수 있습니다. 대출 기관은 각 대출에 대한 채무 불이행 위험과 대출 수익의 균형을 맞춰야 합니다. 그러면 문제는 포트폴리오 전체를 어떻게 평가할 것인가 하는 것입니다.

가장 낮은 위험 대출은 매우 부유한 사람들을 위한 것일 수 있지만 부유한 사람들의 수는 매우 제한적입니다. 반면에 많은 가난한 사람들은 대출을 할 수 있지만 더 큰 위험을 감수해야 합니다.

  새 Mac에서 시동 차임을 켜는 방법

탐색적 데이터 분석 솔루션은 시계열 분석을 다른 많은 문제와 결합하여 이러한 다양한 차입자 세그먼트 또는 대출 비율에 돈을 빌려줄 시기를 결정할 수 있습니다. 포트폴리오 부문의 구성원들 사이의 손실을 충당하기 위해 포트폴리오 부문의 구성원에게 이자가 부과됩니다.

#삼. 탐색적 위험 분석

은행의 예측 모델은 개별 고객의 위험 점수에 대한 확실성을 제공하기 위해 개발되고 있습니다. 신용 점수는 개인의 체납 행동을 예측하도록 설계되었으며 각 신청자의 신용도를 평가하는 데 널리 사용됩니다.

또한, 위험 분석은 과학계와 보험 산업에서 수행됩니다. 온라인 결제대행업체 등 금융기관에서도 거래의 진위 여부를 분석하는 데 널리 활용되고 있다.

이를 위해 고객의 거래 내역을 사용합니다. 신용 카드 구매에 더 일반적으로 사용됩니다. 클라이언트 트랜잭션 볼륨이 갑자기 급증할 때 클라이언트는 트랜잭션을 시작한 경우 확인 호출을 받습니다. 또한 이러한 상황으로 인한 손실을 줄이는 데 도움이 됩니다.

R을 사용한 탐색적 데이터 분석

R을 사용하여 EDA를 수행하기 위해 가장 먼저 필요한 것은 R base와 R Studio(IDE)를 다운로드한 후 다음 패키지를 설치하고 로드하는 것입니다.

#Installing Packages
install.packages("dplyr")
install.packages("ggplot2")
install.packages("magrittr") 
install.packages("tsibble")
install.packages("forecast")
install.packages("skimr")

#Loading Packages
library(dplyr)
library(ggplot2)
library(magrittr)
library(tsibble)
library(forecast)
library(skimr)

이 튜토리얼에서는 R과 함께 제공되고 미국 경제의 연간 경제 지표 데이터를 제공하는 경제 데이터 세트를 사용하고 단순성을 위해 이름을 econ으로 변경합니다.

econ <- ggplot2::economics

기술적인 분석을 수행하기 위해 우리는 간단하고 잘 제시된 방식으로 이러한 통계를 계산하는 skimr 패키지를 사용할 것입니다.

#Descriptive Analysis
skimr::skim(econ)

기술 분석을 위해 요약 기능을 사용할 수도 있습니다.

여기서 기술 분석은 데이터 세트의 547개 행과 6개 열을 보여줍니다. 최소값은 1967-07-01이고 최대값은 2015-04-01입니다. 마찬가지로 평균값과 표준편차도 표시합니다.

이제 econ 데이터 세트 내부에 무엇이 있는지에 대한 기본 아이디어가 있습니다. 데이터를 더 잘 볼 수 있도록 uempmed 변수의 히스토그램을 플롯해 보겠습니다.

#Histogram of Unemployment
econ %>%
  ggplot2::ggplot() +
  ggplot2::aes(x = uempmed) +
  ggplot2::geom_histogram() +
  labs(x = "Unemployment", title = "Monthly Unemployment Rate in US between 1967 to 2015")

히스토그램의 분포는 오른쪽에 길쭉한 꼬리가 있음을 보여줍니다. 즉, “극단적인” 값이 더 많은 이 변수에 대한 관찰이 몇 개 있을 수 있습니다. 질문이 발생합니다. 이러한 값이 발생한 기간과 변수의 추세는 무엇입니까?

  Netflix에서 오류 코드 u7121 3202 수정

변수의 추세를 식별하는 가장 직접적인 방법은 선 그래프를 사용하는 것입니다. 아래에서 선 그래프를 생성하고 평활선을 추가합니다.

#Line Graph of Unemployment
econ %>%
  ggplot2::autoplot(uempmed) +
  ggplot2::geom_smooth()

이 그래프를 사용하여 가장 최근 기간인 2010년의 마지막 관측에서 지난 수십 년 동안 관찰된 역사를 능가하는 실업률 증가 경향이 있음을 확인할 수 있습니다.

특히 계량 경제학 모델링 맥락에서 또 다른 중요한 점은 시리즈의 고정성입니다. 즉, 평균과 분산이 시간에 따라 일정합니까?

변수에서 이러한 가정이 사실이 아닐 때, 우리는 시리즈가 단위 근(비정상)을 가지므로 변수가 받는 충격이 영구적인 효과를 생성한다고 말합니다.

문제의 변수인 실업 기간이 그랬던 것 같습니다. 우리는 변수의 변동이 상당히 변화했음을 보았고, 이는 주기를 다루는 경제 이론과 관련하여 강한 함의를 가지고 있습니다. 그러나 이론과 별개로 변수가 정상인지 여부를 실제로 어떻게 확인합니까?

예측 패키지에는 ADF, KPSS 등과 같은 테스트를 적용할 수 있는 뛰어난 기능이 있습니다. 이 테스트는 시리즈가 정상 상태가 되는 데 필요한 차이 수를 이미 반환합니다.

 #Using ADF test for checking stationarity
forecast::ndiffs( 
  x    = econ$uempmed,
  test = "adf")

여기서 p-값이 0.05보다 크면 데이터가 비정상적임을 나타냅니다.

시계열의 또 다른 중요한 문제는 계열의 시차 값 사이에 가능한 상관 관계(선형 관계)를 식별하는 것입니다. ACF 및 PACF 상관도는 이를 식별하는 데 도움이 됩니다.

계열에 계절성은 없지만 특정 추세가 있으므로 시간적으로 가까운 관측값도 값에 가깝기 때문에 초기 자기상관이 크고 양수인 경향이 있습니다.

따라서 추세 시계열의 자기상관 함수(ACF)는 시차가 증가함에 따라 천천히 감소하는 양의 값을 갖는 경향이 있습니다.

#Residuals of Unemployment 
checkresiduals(econ$uempmed) 
pacf(econ$uempmed)

결론

어느 정도 깨끗한 데이터, 즉 이미 정리된 데이터를 손에 넣으면 즉시 첫 번째 결과를 도출하기 위해 모델 구성 단계로 뛰어들고 싶은 유혹을 받습니다. 이러한 유혹을 물리치고 탐색적 데이터 분석을 시작해야 합니다. 이는 간단하지만 데이터에 대한 강력한 통찰력을 이끌어내는 데 도움이 됩니다.

데이터 과학에 대한 통계를 배우기 위한 몇 가지 최고의 리소스를 탐색할 수도 있습니다.