Hodustory/프로그래밍&DB

[R programming 기초] 정량적 데이터 분석 기초

호두밥 2019. 7. 17. 21:33

정량적 데이터 = 연속형 데이터

 

faithful : 미국 옐로스톤 국립공원의  간헐천 분석자료

eruptions : 분출 기간,  wating : 분출 간격

> head(faithful)
  eruptions waiting
1     3.600      79
2     1.800      54
3     3.333      74
4     2.283      62
5     4.533      85
6     2.883      55

 

분출 간격 분류해보기

#분출 기간 값만 빼내오기
> duration <- faithful$eruptions
> range(duration)
[1] 1.6 5.1

#분출 기간을 분류할 기준, breaks (1.5~5.5까지 0.5간격)
> breaks <- seq(1.5,5.5,by=0.5)
> breaks
[1] 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5

#분출 기간을 기준에 따라 나누기(분류하기)
> duration.cut <- cut(duration, breaks, right=FALSE)

#기준별 데이터 갯수 파악하기
> table(duration.cut)
duration.cut
[1.5,2) [2,2.5) [2.5,3) [3,3.5) [3.5,4) [4,4.5) [4.5,5) [5,5.5) 
     51      41       5       7      30      73      61       4 

[ 1.5, 2) -> 1.5이상 2 미만

 

데이터 상대빈도수 확인하기

> duration.freq <- table(duration.cut)
#분류 기준에 따른 건 / 전체 갯수 => 상대비율 구하기
> duration.relfreq <- duration.freq / nrow(faithful)

#갯수와 상대빈도 함께 보기
> cbind(duration.freq, duration.relfreq)
        duration.freq duration.relfreq
[1.5,2)            51       0.18750000
[2,2.5)            41       0.15073529
[2.5,3)             5       0.01838235
[3,3.5)             7       0.02573529
[3.5,4)            30       0.11029412
[4,4.5)            73       0.26838235
[4.5,5)            61       0.22426471
[5,5.5)             4       0.01470588

데이터 상대누적도수분표 확인하기

#누적 도수 계산하기
> duratin.cumfreq <- c(0, cumsum(duration.relfreq))
#누적 도수 분포표 그리기
> plot(breaks, duratoin.cumfreq)

데이터 누적도수 그래프 그리기

> fn <- ecdf(duration)
#경험적 누적 분포 함수 ecdf 사용
> plot(fn)

줄기-잎 그림 그리기

숫자의 자릿수를 기준으로 한 문자형 그래프

그래프의 모양과 위의 누적분포 그래프의 기울기와 일치함

> stem(duration)

  The decimal point is 1 digit(s) to the left of the |

  16 | 070355555588
  18 | 000022233333335577777777888822335777888
  20 | 00002223378800035778
  22 | 0002335578023578
  24 | 00228
  26 | 23
  28 | 080
  30 | 7
  32 | 2337
  34 | 250077
  36 | 0000823577
  38 | 2333335582225577
  40 | 0000003357788888002233555577778
  42 | 03335555778800233333555577778
  44 | 02222335557780000000023333357778888
  46 | 0000233357700000023578
  48 | 00000022335800333
  50 | 0370

> 

eruption(duration)과 wating 간의 상관관계를 산점도로 그리기

> waiting <- faithful$waiting
#duration과 waiting 산점도 그리기
> plot(duration,waiting)
#waiting과 duration 회귀분석 선 그리기 
> abline(lm(waiting~duration))

반응형