티스토리 뷰

수포자의 기억에서 멀어진 통계학 개념들을 붙잡기 위해 <<중학교 수학 3>>(지학사, 2013)에 나오는 문제들을 R을 가지고 놀면서 다뤄 보고자 했습니다.

통계

대푯값과 산포도

학생 20명을 대상으로 자유투를 10번씩 던져 성공한 횟수를 조사해 나타낸 자료.

자유투 성공 횟수 평균 구하기

freethrow <- c(5, 4, 7, 2, 4, 6, 2, 8, 6, 3,
               4, 9, 4, 3, 1, 10, 7, 6, 2, 5)

직접 평균(변량의 총합을 변량의 개수로 나눈 값) 계산

(sum(freethrow))/20
## [1] 4.9

평균을 계산하는 mean() 함수 사용

mean(freethrow)
## [1] 4.9

반 학생 40명 각 가정에서 한 달 동안 사용한 수돗물의 양 도수분포표에서 사용한 수돗물의 양 평균 구하기

((5*2)+(15*14)+(25*10)+(35*8)+(45*2)+(55*4))/40
## [1] 26.5

양궁 연습 점수

score <- c(10, 6, 2, 8, 8, 1, 2, 9, 8)
  1. 평균 점수 구하기
mean(score)
## [1] 6
  1. 점수를 낮은 것부터 차례로 나열
sort(score)
## [1]  1  2  2  6  8  8  8  9 10

위의 결과와 같이 sort()는 오름차순이 기본입니다.

  1. 2.에서 나열한 점수 중 가장 가운데에 위치한 값. 이 값을 1.에서 구한 평균과 비교해 볼 것
median(score)
## [1] 8

중앙값 : 변량을 크기순으로 나열하였을 때, 가운데에 위치한 값

일반적으로 중앙값은 자료 중에서 매우 크거나 매우 작은 극단적인 값이 있는 경우에 대푯값으로 사용되기도 함.

한편, 변량의 개수가 짝수이면 가운데에 위치하는 값이 2개가 되므로 이 경우에는 두 값의 평균을 중앙값으로 합니다.

또 다른 예

score2 <- c(3, 8, 4, 22, 6, 5)

작은 값부터 차례로 나열

sort(score2) 
## [1]  3  4  5  6  8 22

Sorting 결과를 내림차순으로 보려면 아래와 같이 옵션을 사용합시다.

sort(score2, decreasing = TRUE)
## [1] 22  8  6  5  4  3

변량의 개수가 짝수이면 가운데에 위치하는 값이 2개가 되므로, 이 경우에는 두 값의 평균을 중앙값으로 합니다. 이 사례의 중앙값은 세 번째 변량(5)과 네 번째 변량(6)의 평균인 5.5입니다.

mean(c(5, 6))
## [1] 5.5

중앙값은 median()을 활용해 구할 수 있습니다.

median(score2)
## [1] 5.5

문제1 : 중앙값 구하기

  1.  
score3 <- c(4, 37, 2, 6, 8)

정렬 결과를 보고, 가운데 위치한 6이 중앙값임을 알 수 있습니다.

sort(score3)
## [1]  2  4  6  8 37

median()으로 중앙값 구하기

median(score3)
## [1] 6
  1.  
score4 <- c(32, 35, 9, 34)

변량의 개수는 짝수이며, 정렬 결과를 보면 가운데 위치하는 두 값은 32, 34입니다.

sort(score4)
## [1]  9 32 34 35

이 경우, 중앙값은 32, 34의 평균인 33이 됩니다.

(32+34)/2
## [1] 33

median() 실행 결과도 같습니다.

median(score4)
## [1] 33

p.144

여학생 10명의 신발 크기 예제

size <- c(225, 230, 230, 235, 235, 240, 240, 240, 245, 250)
  1. 신발 크기의 평균과 중앙값을 구하여 보자.
mean(size) #평균
## [1] 237
mean(sort(size)[5:6]) #중앙값
## [1] 237.5
median(size) #중앙값
## [1] 237.5
  1. 가장 많이 신는 신발의 크기는 몇 mm인가?

이 문제에 대해서는 아래와 같이 table()을 활용해 눈으로 확인하는 방법이 있겠습니다.

table(size)
## size
## 225 230 235 240 245 250 
##   1   2   2   3   1   1
sort(table(size), decreasing = TRUE)
## size
## 240 230 235 225 245 250 
##   3   2   2   1   1   1

최빈값 산출을 위해서는 ‘modeest’ 패키지의 mlv()를 활용하라는 권장도 있으니 참고하기 바랍니다. https://stackoverflow.com/questions/2547402/is-there-a-built-in-function-for-finding-the-mode

library("modeest")
## Warning: package 'modeest' was built under R version 3.6.2
mlv(size, method = "mfv")
## [1] 240

내 마음대로 최빈값 구하는 연습 해 보기

sample <- sample(x = 1:100, size = 30, replace = TRUE)
sample
##  [1]  39  15   2  77  60  11  16  88  93  69  78  34  72  62  29  15  22  68  52
## [20]  63  79  39  96  36 100  18  98  26  47  20
table(sample)
## sample
##   2  11  15  16  18  20  22  26  29  34  36  39  47  52  60  62  63  68  69  72 
##   1   1   2   1   1   1   1   1   1   1   1   2   1   1   1   1   1   1   1   1 
##  77  78  79  88  93  96  98 100 
##   1   1   1   1   1   1   1   1
mlv(sample, method = "mfv")
## [1] 15 39
sort(table(sample), decreasing = TRUE)
## sample
##  15  39   2  11  16  18  20  22  26  29  34  36  47  52  60  62  63  68  69  72 
##   2   2   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
##  77  78  79  88  93  96  98 100 
##   1   1   1   1   1   1   1   1

p.144

문제3. 불우 이웃 돕기 성금의 최빈값

money <- c(9, 8, 5, 5, 9, 7, 8, 6, 5, 3)
mlv(money, method = "mfv")
## [1] 5
sort(table(money), decreasing = TRUE)
## money
## 5 8 9 3 6 7 
## 3 2 2 1 1 1

문제4. 남학생 14명의 운동복 치수

size <- c(90, 110, 95, 95, 100, 95, 100, 100, 95, 100, 105, 90, 90, 95)
mlv(size, method = "mfv")
## [1] 95
sort(table(size), decreasing = TRUE)
## size
##  95 100  90 105 110 
##   5   4   3   1   1

문제5. 지진 횟수의 평균, 중앙값, 최빈값

earthquake <- c(7, 7, 7, 11, 11, 14, 8, 7, 16, 8, 7, 11, 9, 6, 15, 7, 2, 10, 8, 5)
mean(earthquake) #평균
## [1] 8.8
sum(earthquake)/20 #평균
## [1] 8.8
20/2 #n/2
## [1] 10
(20/2)+1 #(n/2)+1
## [1] 11
mean(sort(earthquake)[10:11]) #중앙값
## [1] 8
mean(sort(earthquake)[(20/2):((20/2)+1)]) #중앙값
## [1] 8
median(earthquake) #중앙값
## [1] 8
sort(table(earthquake), decreasing = TRUE) #최빈값 찾기
## earthquake
##  7  8 11  2  5  6  9 10 14 15 16 
##  6  3  3  1  1  1  1  1  1  1  1
mlv(earthquake, method = "mfv") #최빈값
## [1] 7

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함