통계기반 데이터분석

[ R ] 기술통계분석 #1

yul_S2 2022. 11. 22. 12:27
반응형

기술통계분석

(1) 빈도분석

명목척도 또는 서열척도 같은 범주형 데이터를 대상으로 비율을 측정하는데 주로 이용

명목척도: 명목상 의미 없는 수치로 표현. 예) 거주지역, 성별

서열척도: 계급 순위를 수치로 표현. 예) 직급, 학력 수준

 

(2) 기술통계분석

등간척도나 비율척도와 같은 연속적 데이터를 분석할 때 이용

등간척도: 속성의 간격이 일정한 값을 갖는 변수. 예) 만족도 조사의 보기

비율척도: 등간척도의 특성에 절대 원점이 존재하는 척도. 0을 기준으로 한 수치. 사칙연산이 가능. 예) 성적, 나이, 수량, 길이, 금액

 

 

척도별   기술통계량    구하기

 

ex)  전체 데이터 셋의 특성 보기

descriptive.csv
0.01MB

 

 

#1 데이터 셋 가져오기

getwd()
# "C:/Rwork"

data <- read.csv("dataset2/descriptive.csv", header = T)
head(data)  
# resident gender age level cost type survey pass
# 1        1      1  50     1  5.1    1      1    2
# 2        2      1  54     2  4.2    1      2    2
# 3       NA      1  62     2  4.7    1      1    1
# 4        4      2  50    NA  3.5    1      4    1
# 5        5      1  51     1  5.0    1      3    1
# 6        3      1  55     2  5.4    1      3   NA

 

#2 데이터 셋의 데이터 특성 보기

dim(data)
# [1] 300   8

length(data)
# [1] 8

length(data$survey)
# [1] 300 

str(data)
# 'data.frame': 300 obs. of  8 variables:
#   $ resident: int  1 2 NA 4 5 3 2 5 NA 2 ...
# $ gender  : int  1 1 1 2 1 1 2 1 1 1 ...
# $ age     : int  50 54 62 50 51 55 56 49 49 49 ...
# $ level   : int  1 2 2 NA 1 2 1 2 1 2 ...
# $ cost    : num  5.1 4.2 4.7 3.5 5 5.4 4.1 675 4.4 4.9 ...
# $ type    : int  1 1 1 1 1 1 1 NA 1 1 ...
# $ survey  : int  1 2 1 4 3 3 NA NA NA 1 ...
# $ pass    : int  2 2 1 1 1 NA 2 2 2 1 ...

  • dim () : 객체의 차원을 조회하거나 설정하는 함수
  • str - 데이터의 구조적 형태를 요약하여 출력

 

 

 

#3 데이터 특성(최소값, 최대값, 평균, 분위수, 결측치 등) 제공

summary(data)
# resident         gender          age            level      
# Min.   :1.000   Min.   :0.00   Min.   :40.00   Min.   :1.000  
# 1st Qu.:1.000   1st Qu.:1.00   1st Qu.:48.00   1st Qu.:1.000  
# Median :2.000   Median :1.00   Median :53.00   Median :2.000  
# Mean   :2.233   Mean   :1.42   Mean   :53.88   Mean   :1.836  
# 3rd Qu.:3.000   3rd Qu.:2.00   3rd Qu.:60.00   3rd Qu.:2.000  
# Max.   :5.000   Max.   :5.00   Max.   :69.00   Max.   :3.000  
# NA's   :21                                     NA's   :13     
# cost               type          survey          pass      
# Min.   :-457.200   Min.   :1.00   Min.   :1.00   Min.   :1.000  
# 1st Qu.:   4.425   1st Qu.:1.00   1st Qu.:2.00   1st Qu.:1.000  
# Median :   5.400   Median :1.00   Median :3.00   Median :1.000  
# Mean   :   8.752   Mean   :1.27   Mean   :2.61   Mean   :1.432  
# 3rd Qu.:   6.300   3rd Qu.:2.00   3rd Qu.:3.00   3rd Qu.:2.000  
# Max.   : 675.000   Max.   :2.00   Max.   :5.00   Max.   :2.000  
# NA's   :30         NA's   :26     NA's   :113    NA's   :20 
  • summary - 각 variable에 대한 요약된 데이터 정보 보기, variable이 수치 데이터의 경우 min, 1Q, median, mean, 3Q, max, NA의 개수 등의 정보 보여주며, categorical/factor 데이터의 경우, 각각의 개수 출력

 


1) 데이터 구조 - class, dim, nrow, ncol

 

class - 데이터 타입 정보 (vector, list, data.frame 등의 구조)

dim - 데이터의 행 및 열의 개수

nrow - 데이터의 행(row) 개수, 일반적으로 R에서는 Observation의 개수

ncol - 데이터의 열(column) 개수, 일반적으로 R에서는 Variables의 개수

 

2) 데이터 구성 변수 - names

 

names - 데이터의 각 variable의 name 출력

 

3) 데이터 요약 - summary, table, str

 

summary - 각 variable에 대한 요약된 데이터 정보 보기, variable이 수치 데이터의 경우 min, 1Q, median, mean, 3Q, max, NA의 개수 등의 정보 보여주며, categorical/factor 데이터의 경우, 각각의 개수 출력

table - categorial/factor variable에 대해 각각의 빈도수를 표 형태로 출력

str - 데이터의 구조적 형태를 요약하여 출력

 

4) 데이터 내용 부분 보기 - head, tail

 

head - 실제 데이터의 앞쪽 부분 보기 (기본 5개 )

tail - 실제 데이터의 뒷쪽 부분 보기 (기본 5개 )

 

5) 데이터 크기 - object.size

 

object.size - 메모리 상에서의 데이터 크기


 

 

 

(1) 명목척도 기술통계량

  • 명목상 의미 없는 수치로 표현된 거주지역이나 성별과 같은 명목척도 변수를 대상 구성비율은 표본의 통계량으로 의미

ex)  성별 변수의 기수롱계량과 빈도수

length(data$gender)
# [1] 300

summary(data$gender)
# Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
# 0.00    1.00    1.00    1.42    2.00    5.00 

table(data$gender)
# 0   1   2   5 
# 2 173 124   1 

 

ex)  이상치(outlier) 제거

data <- subset(data,gender==1|gender==2)
x <- table(data$gender)

x
# 1   2 
# 173 124

barplot(x)



 

ex)  구성 비율 계산

prop.table
y <- prop.table(x)
round(y*100,2)
# 1     2 
# 58.25 41.75

- prop.table(x)함수 : prop.table(x, margin=NULL)

  margin=1(행), 2(열) 계산기준

- round()함수 : round(x, digits=0)

  digits: 표시할 소수점 이하 자리

 

 

 

 

(2) 서열척도 기술통계량

  • 계급 순위를 수치로 표현한 계급이나 학력 수준 등과 같은 서열척도 변수를 대상 table()함수로 구해진 빈도수를 통해서 표본의 통계량 산출

 

ex)  학력수준 변수를 대상으로 구성 비율 산출

length(data$level)
# [1] 297

summary(data$level)
# Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#   1.000   1.000   2.000   1.842   2.000   3.000      13 

table(data$level)
# 1   2   3 
# 115  99  70

 

 

ex)  학력수준 변수의 빈도수 시각화

x1 <- table(data$level)
barplot(x1)



막대차트, 파이차트 주로 사용

 

 

(3) 등간척도 기술통계량

  • 등간척도: 속성의 간격이 일정한 값을 갖는 변수

 

 

ex)  만족도 변수를 대상으로 요약통계량

#1 등간척도 변수 추출

survey <- data$survey
survey
# [1]  1  2  1  4  3  3 NA NA NA  1  2  2  2  2 NA NA NA NA NA NA NA  2  2  1
# [25]  2  3  3  5  2 NA NA NA NA NA NA NA NA NA  2  2  3  4  3  2  2  3  4  5
# [49]  4  2 NA  2  3  4  3 NA NA NA NA NA NA NA  3  3  3  3  2  2  3  3 NA NA
# [73] NA  2  2  2 NA  2  2  3 NA NA  3  3  3  3  3  3  3  1  4 NA NA NA NA  4
# [97]  3  3  4 NA NA NA NA  3  3  2 NA NA  3 NA  2 NA  2  2  5  2 NA  3 NA NA
# [121] NA NA NA NA NA NA NA NA  2  2  4  3  4  3  3  3 NA NA NA  2  2  2  2  2
# [145]  1  2 NA NA NA NA NA  3  3  3  3  4  3 NA  4  2  2  2  2  2 NA NA NA NA
# [169]  3  3  2 NA  2  3  3  3 NA NA  3  4  3  4 NA NA  3  3  4  2  1  2  4  3
# [193]  3  2  5  2  2  2  2  1  2  4 NA  2  2  1  1  1  2  2 NA NA NA NA NA NA
# [217] NA NA NA NA  2  3  4  5  3  3  4 NA  2  1  2 NA  1  2  2  1  2  2 NA NA
# [241]  3  4  5  3 NA  3  4  4  5  2  2  3 NA NA  2  1  2  1 NA NA  2  3 NA  3
# [265]  4  3  4  3  4 NA NA NA  2  1  2 NA NA NA NA NA  1  1  2  2 NA NA NA NA
# [289] NA  2  1  2  3 NA NA NA NA

 

#2  등간척도 요약통계량

summary(survey)
# Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#   1.000   2.000   3.000   2.605   3.000   5.000     112

 

 

 

ex)  등간척도 빈도분석

x1 <- table(survey)
x1
# 1  2  3  4  5 
# 20 72 61 25  7 

 

 

ex)  등간척도 시각화

hist(survey)



pie(x1)



 

 

 

 

(4) 비율척도 기술통계량

  • 비율척도: 등간척도의 특성에 절대 원점(0)이 존재하는 척도
  • 사칙연산 가능
  • 빈도분석과 기술통계량 등 가장 많은 표본의 통계량을 얻을 수 있는 척도

 

ex)  생활비 변수 대상 요약통계량

length(data$cost)
# [1] 297

summary(data$cost)
# Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
# -457.200    4.400    5.400    8.784    6.300  675.000       30

 

 

ex)  데이터 정제(결측치 제거)


plot(data$cost)



data <- subset(data,data$cost>=2&data$cost<=10)
x <- data$cost
mean(x)
# [1] 5.354032

  • plot()함수로 결측치 발견
  • subset()함수로 결측치 제거된 subset 산출

 

반응형