코딩초보 김씨

[R] 단일변수 자료의 분석,탐색 방법 본문

R

[R] 단일변수 자료의 분석,탐색 방법

초보김씨 2021. 6. 18. 16:43

[ 단일 변수란? ]

단일 변수 자료, univariate data : 하나의 변수로만 구성된 자료  -> Vector에 저장하여 분석

다중 변수 자료, multivariate data : 두 개 이상의 변수로 구성된 자료  -> Matrix나 Dataframe에 저장하여 분석

 

 

[ 자료의 종류 : 범주형? 연속형? ]

1. 범주형 자료,categorical data (=질적 자료, qualitative data)

범주형 자료 표현
성별 Male, Female
혈액형 A, B, O, AB
찬성 여부 찬, 반

 

2. 연속형 자료 (=양적 자료)

연속형 자료 표현
몸무게 57.4, 64.1, 71.0, 65.1
162, 180, 174, 171
온도 20.5, 28.1, 24.4, 26.0

 

 


 

 

위에서 배운 자료형의 분류로 단일 변수 범주형, 단일 변수 연속형의 분석 방법에 대해 아래에 정리하였다.

 

 


 

[ 단일 변수 범주형 자료 ]

1. 이게 뭐야? 특성이 하나이면서 자료의 특성이 범주형인 자료

2. 분석 방법 : 도수분포표

3. 시각화 : 막대그래프나 원그래프

 

4. type 1) text로 표현된 범주형 자료

(예시 : 학생들이 선호하는 계절)

[도수분포표 계산]
favorite <- c('WINTER', 'SUMMER', 'SPRING', 'SUMMER', 'SUMMER','FALL', 'FALL', 'SUMMER', 'SPRING', 'SPRING')

# 도수분포표 계산
table(favorite) 

# 비율 출력
table(favorite)/length(favorite) 
[시각화 1. 막대그래프, barplot]
ds <- table(favorite)
barplot(ds, main='favorite season')

[시각화 2. 원형그래프, pieplot]
ds <- table(favorite
ds
pie(ds, main='favorite season')

4. type 2) 숫자로 표현된 범주형 자료

(예시 : 학생 15명이 선호하는 색깔을 조사한 자료)

favorite.color <- c(2, 3, 2, 1, 1, 2, 2, 1, 3, 2, 1, 3, 2, 1, 2)
# 도수분포표 계산
ds <- table(favorite.color)

# 막대그래프
barplot(ds, main='favorite color')
colors <- c('green', 'red', 'blue')
names(ds) <- colors #자료값 1,2,3을 green, red, blue로 변경
ds
barplot(ds, main='favorite color', col=colors) # 색 지정 막대그래프
pie(ds, main='favorite color', col=colors) # 색 지정 원그래프

 

 

[ 단일 변수 연속형 자료 ]

1. 이게 뭐야? 특성이 하나이면서 자료의 특성이 연속형인 자료

2. 분석 방법 :

   1) 평균

   2) 중앙값(median)

   3) 절사평균(trimmed mean)

   4) 사분위수(quartile)

        (예시) 100명의 학생을 대상으로 영어시험을 본 결과에 대한 사분위수 Q1=60, Q2=80, Q3=90

        • 25명의 학생은 성적이 60점 미만이다.

        • 25명의 학생은 성적이 60점~80점 사이이다.

        • 25명의 학생은 성적이 80점~90점 사이이다.

        • 25명의 학생은 성적이 90점 이상이다.

        • 90점 이상인 학생이 25명이나 되기 때문에 이번 영어시험은 매우 쉬웠다.

        • 전체 50%의 학생이 80점 이상의 성적을 받았다.

 

   5) 산포(distribution)

 

 (예시 : 평균, 중앙값, 절사평균)

mydata <- c(60, 62, 64, 65, 68, 69)
mydata.2 <- c(weight, 120)

mydata
weight.heavy

> mydata
[1] 60 62 64 65 68 69
> weight.heavy
[1]  60  62  64  65  68  69 120


# 평균
mean(mydata)
mean(mydata.2)

> mean(mydata)
[1] 64.66667
> mean(mydata.2)
[1] 72.57143

# 중앙값
median(mydata)
median(mydata.2)

> median(mydata)
[1] 64.5
> median(mydata.2)
[1] 65


# 절사평균(상하위 20% 제외)
mean(mydata, trim=0.2)
mean(mydata.2,trim=0.2)

> mean(mydata, trim=0.2)
[1] 64.75
> mean(mydata.2,trim=0.2)
[1] 65.6

 

 (예시 : 사분위수 quantile)

mydata <- c(60, 62, 64, 65, 68, 69, 120)
quantile(mydata)
quantile(mydata, (0:10)/10) # 10% 단위로 구간을 나누어 계산
summary(mydata)


> quantile(mydata)
   0%   25%   50%   75%  100% 
 60.0  63.0  65.0  68.5 120.0 
> quantile(mydata, (0:10)/10) # 10% 단위로 구간을 나누어 계산
   0%   10%   20%   30%   40%   50%   60%   70%   80%   90% 
 60.0  61.2  62.4  63.6  64.4  65.0  66.8  68.2  68.8  89.4 
 100% 
120.0 
> summary(mydata)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  60.00   63.00   65.00   72.57   68.50  120.00 

 

 (예시 : 산포)

mydata <- c(60, 62, 64, 65, 68, 69, 120)
var(mydata) # 분산
sd(mydata) # 표준편차
range(mydata) # 값의 범위
diff(range(mydata)) # 최댓값, 최솟값의 차이


> var(mydata) # 분산
[1] 447.2857
> sd(mydata) # 표준편차
[1] 21.14913
> range(mydata) # 값의 범위
[1]  60 120
> diff(range(mydata)) # 최댓값, 최솟값의 차이
[1] 60

 

3. 시각화 : 

   1) 히스토그램(histogram) : 구간을 나누고 구간에 속하는 값들의 개수를 세는 방법을 사용

   2) 상자그림(box plot) : 사분위수를 시각화

 (예시 : 히스토그램)

[예시 1] 자동차 제동 거리
dist <- cars[,2]

# histogram
hist(dist,                           # 자료(data)
     main="Histogram for 제동거리",   # 제목
     xlab ="제동거리",                # x축 레이블
     ylab="빈도수",                   # y축 레이블
     border="blue",                  # 막대 테두리색
     col="green",                    # 막대 색
     las=2,                          # x축 글씨 방향(0~3)
     breaks=5)                       # 막대 개수 조절
     
# boxplot
boxplot(dist, main="자동차 제동거리")
# boxplot 정보
boxplot.stats(dist)

[예시 2] iris
boxplot(Petal.Length~Species, data=iris, main="품종별 꽃잎의 길이")

 

Comments