Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

R 데이터 프레임의 상세한 통계 요약 구하기: basicStats 함수로 모든 기술 통계량 한 번에 확인하는 방법

R에서 summary() 함수를 사용해 데이터 프레임의 통계 요약을 확인하면 최솟값, 1사분위수, 중앙값, 평균, 3사분위수, 최댓값과 같은 기본 정보만 얻을 수 있습니다. 하지만 본격적인 기술 통계 분석에는 분산(variance), 표준편차(standard deviation), 왜도(skewness), 첨도(kurtosis) 등 훨씬 더 다양하고 유용한 지표들이 필요합니다.

이럴 때 fBasics 패키지의 basicStats() 함수를 활용하면 데이터 프레임의 각 열에 대한 포괄적인 통계 요약을 한 번에 계산할 수 있습니다.

fBasics 패키지 로드하기

먼저 fBasics 패키지를 로드합니다. 아직 설치되어 있지 않다면 install.packages("fBasics") 명령으로 먼저 설치해야 합니다.

library(fBasics)

예제 1: mtcars 데이터셋으로 통계 요약 구하기

R에 기본 내장된 mtcars 데이터셋을 살펴보겠습니다.

데이터 확인

data(mtcars)
head(mtcars, 20)

위 코드를 실행하면 mpg(연비), cyl(실린더 수), disp(배기량), hp(마력), drat(후방 차축 비율), wt(중량), qsec(1/4마일 시간), vs, am, gear, carb 변수별로 자동차 20대의 데이터가 출력됩니다.

basicStats() 함수 적용

basicStats(mtcars)

실행 결과, 각 변수에 대해 다음과 같은 통계량이 행 단위로 정리되어 출력됩니다.

  • nobs: 관측치 개수
  • NAs: 결측치(NA) 개수
  • Minimum / Maximum: 최솟값과 최댓값
  • 1st Quartile / 3rd Quartile: 1사분위수와 3사분위수
  • Mean / Median: 평균과 중앙값
  • Sum: 합계
  • SE Mean: 평균의 표준오차
  • LCL Mean / UCL Mean: 평균의 95% 신뢰구간 하한과 상한
  • Variance: 분산
  • Stdev: 표준편차
  • Skewness: 왜도 (분포의 비대칭 정도)
  • Kurtosis: 첨도 (분포의 뾰족한 정도)

예를 들어 mpg 변수의 경우 관측치는 32개이고, 평균은 약 20.09, 표준편차는 약 6.03, 왜도는 약 0.61로 나타나 오른쪽으로 약간 치우친 분포임을 알 수 있습니다.

예제 2: trees 데이터셋으로 통계 요약 구하기

이번에는 R에 내장된 trees 데이터셋(벚나무 31그루의 줄기 둘레, 높이, 부피 정보)을 이용해 보겠습니다.

데이터 확인

data(trees)
head(trees, 20)

Girth(줄기 둘레), Height(높이), Volume(부피) 세 개의 열로 구성된 데이터가 출력됩니다.

basicStats() 함수 적용

basicStats(trees)

결과를 보면 Girth의 평균은 약 13.25, Height의 평균은 76, Volume의 평균은 약 30.17입니다. 특히 Volume의 왜도가 약 1.01로 크게 나타나, 부피 분포가 오른쪽으로 상당히 치우쳐 있음을 확인할 수 있습니다.

예제 3: pressure 데이터셋으로 통계 요약 구하기

마지막으로 온도에 따른 수증기 압력을 담고 있는 pressure 데이터셋을 살펴보겠습니다.

데이터 확인

data(pressure)
head(pressure, 20)

temperature(온도)와 pressure(압력) 두 개의 열로 구성된 19개 관측치가 출력됩니다.

basicStats() 함수 적용

basicStats(pressure)

pressure 변수의 경우 평균은 약 124.34인데 반해 중앙값은 8.8로 큰 차이를 보입니다. 왜도가 약 1.84, 첨도가 약 2.33으로 높게 나타난 것을 고려하면, 이는 온도가 높아질수록 압력이 급격히 증가하는 비선형적 특성 때문입니다. 이처럼 basicStats의 결과를 함께 살펴보면 summary()만으로는 파악하기 어려운 분포의 성격까지 이해할 수 있습니다.

정리

summary() 함수는 빠른 개요 확인에는 유용하지만, 제공하는 통계량이 6가지로 제한적입니다. 반면 fBasics 패키지의 basicStats() 함수는 관측치 수, 결측치, 사분위수, 신뢰구간, 분산, 표준편차, 왜도, 첨도까지 한 번에 계산해 주므로, 탐색적 데이터 분석(EDA) 단계에서 데이터의 분포 특성을 깊이 있게 파악하는 데 매우 효과적인 도구입니다.