library(tidyverse)
Warning message:
"패키지 'tidyverse'는 R 버전 4.1.3에서 작성되었습니다"
-- Attaching packages ------------------------------------------------------------------------------- tidyverse 1.3.1 --

v ggplot2 3.3.5     v purrr   0.3.4
v tibble  3.1.6     v dplyr   1.0.8
v tidyr   1.2.0     v stringr 1.4.0
v readr   2.1.2     v forcats 0.5.1

Warning message:
"패키지 'ggplot2'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'tibble'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'tidyr'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'readr'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'purrr'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'dplyr'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'stringr'는 R 버전 4.1.3에서 작성되었습니다"
Warning message:
"패키지 'forcats'는 R 버전 4.1.3에서 작성되었습니다"
-- Conflicts ---------------------------------------------------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()

options(repr.plot.width=16, repr.plot.height=8)

Ch.1 R Language

  • 생략

Ch.2 Introduction to EDA

자료분석은 대체로 두 가지 단계로 나뉜다.

  • 탐색적 자료분석(데이터의 구조와 특징 파악)

  • 확증적 자료분석(모형, 재현성 평가)

EDA(Exploratory Data Analysis)

  • EDA는 데이터 특징과 내재하는 구조적 관계를 알아내기 위한 기법들을 통칭한다.

  • 데이터를 특정한 모형에 적합시키기 보다는 데이터를 있는 그대로 보려는 데에 중점을 둔다.

4 Themes

EDA에서는 네 가지 주제가 때로는 홀로, 때로는 얽혀서 나타난다.

  • 저항성(resistance)의 강조(예를 들어 평균보다는 일부자료의 파손에 저항적인 중위수가 바람직한 대표값 측도로서 선호된다.)

  • 잔차(residual) 계산

  • 자료변수의 재표현(re-expression)을 통한 다각적 시도

  • 그래프를 통한 현시성(revelation)

Summary (2)

  • 자료분석은 탐색적 자료분석과 확증적 자료분석의 두 단계로 나눌 수 있다.

  • EDA는 자료의 구조 및 특징의 파악을 목적으로 한다. 이를 위하여 효과적이고 신뢰성 있는 데이터의 요약과 그래프적 기법이 사용된다.

  • EDA의 네 개 주제는 저항성, 잔차, 재표현, 현시성이다.

  • 통계적 모형은 '진실'로서가 아니라 '주요 사례'로서 의미가 있다. 또한 모형과 데이터는 일방통행이 아닌 쌍방통행으로 이해되어야 한다. 데이터와 분석도 사이클을 이룬다.

Ch.3 Stem and Leaf

Stem and Leaf

데이터의 값을 십 단위인 줄기(stem)와 일 단위인 잎(leaf)으로 분리한다.

- 장점

  • 사분위수나 중앙값을 찾기 쉽다.

  • 분포의 전체적인 모양(봉우리 개수, 대칭분포, 치우친 방향)을 쉽게 알 수 있다.

  • 이상값 유무를 파악할 수 있다.

- 단점

  • 자료가 많은 경우에는 부적합하고 자료의 수가 50개 이하일 때 적합하다.
exam1 = read.table('dataset/EDA/exam1.txt', header = TRUE)
head(exam1)
A data.frame: 6 × 2
hw score
<int> <int>
1 0 54
2 0 51
3 1 52
4 0 82
5 1 37
6 1 41
stem(exam1$score)
  The decimal point is 1 digit(s) to the right of the |

  0 | 00
  1 | 058
  2 | 1333458889
  3 | 0355789
  4 | 11133456678
  5 | 11122233344456688
  6 | 147779
  7 | 33478
  8 | 29
  9 | 09

  • 이 줄기그림의 주요 특징은 이봉분포의 모습을 보인다는 점이다. 이것은 자료가 2개의 군집으로 되어 있음을 말한다.
exam1[exam1$hw == 0, ]$score %>% stem # 과제 미제출자
exam1[exam1$hw == 1, ]$score %>% stem # 과제 제출자
  The decimal point is 1 digit(s) to the right of the |

  0 | 00
  1 | 05
  2 | 13334589
  3 | 0355
  4 | 13378
  5 | 122333446
  6 | 4
  7 | 3
  8 | 29


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

  1 | 8
  2 | 88
  3 | 789
  4 | 114566
  5 | 11245688
  6 | 17779
  7 | 3478
  8 | 
  9 | 09

과제 제출 여부에 따라서 줄기-잎 그림을 두 개 그려본 결과 흥미로운 점을 확인했다.

과제 미제출자에 경우 여전히 이봉분포를 띄고 있으나 과제 제출자의 경우 단봉분포를 띄고 있다.

이것은 과제물 미제출 그룹이 서로 이질적인 어떤 두 집단(50점대를 중심으로 하는 집단과 20점대를 중심으로 하는 집단)의 혼합임을 말하여 준다.

아마 전자는 학업습관이 불성실하나 학업능력은 우수한 집단이고 후자는 학업습관과 학업능력 모두 좋지 않은 학생들의 집단이 아닐까 생각해본다.

Tip :R에서 줄기 수를 줄이거나 늘이려면 stem() 함수 내 scale 파라미터를 조정하면 된다.

stem(exam1$score, scale = 0.5) # 줄기 수를 절반으로 줄인다.
  The decimal point is 1 digit(s) to the right of the |

  0 | 00058
  2 | 13334588890355789
  4 | 1113345667811122233344456688
  6 | 14777933478
  8 | 2909

이 줄기 그림은 단봉분포의 형태를 취한다. 이것은 너무 단순하여 이 자료의 주요 특성을 잃은 것으로 볼 수 있다.

즉 2개의 봉우리를 구분하지 못하고 1개만 본 것이다.

stem(exam1$score, scale = 2) # 줄기 수를 두 배로 늘인다.
  The decimal point is 1 digit(s) to the right of the |

  0 | 00
  0 | 
  1 | 0
  1 | 58
  2 | 13334
  2 | 58889
  3 | 03
  3 | 55789
  4 | 111334
  4 | 56678
  5 | 111222333444
  5 | 56688
  6 | 14
  6 | 7779
  7 | 334
  7 | 78
  8 | 2
  8 | 9
  9 | 0
  9 | 9

줄기 수를 늘였더니 더 많은 봉우리를 볼 수 있다.

일반적으로 줄기 수를 늘이면 늘일수록 많은 수의 봉우리를 보게 되고 그 반대로 줄기 수를 줄이면 줄일수록 적은 수의 봉우리를 보게 된다.

Compared with Histogram

hist(exam1$score)
줄기 - 잎 히스토그램
정보 손실 손실되지 않음 손실됨
줄기 수 변환 쉬움 어려움
구간의 폭 조정 불가능 조정 가능

Summary (3)

  • 줄기 그림은 히스토그램과 마찬가지로 자료 분포의 특성을 그래프화한 것이다. 줄기 그림은 히스토그램에 비하여 정보의 보전 면에서 우수하며 쉽게 구간(줄기) 수를 늘이거나 줄일 수 있다. 그러나 구간(줄기)의 선정시 제약이 따른다.

  • 적절한 줄기 그림을 그리기 위하여 여러 개의 그림을 그려보고 비교해 보아야 한다. 계획된 시행착오가 필요하다.

  • 줄기 그림에서는 다음과 같은 자료의 특성을 관찰할 수 있다.

    • 군집의 수
    • 집중도가 높은 구간
    • 대칭성 여부
    • 자료의 범위 및 산포
    • 특이점의 존재여부

Ch.4 Numerical Summary and Box Plot

Mean and Median

  • 한 쪽 꼬리가 긴 분포에서 평균값은 쉽게 휘둘리지만 중앙값은 쉽게 휘둘리지 않다. 따라서 중앙값이 대표값으로서 적합하다.

$\begin{cases} X_{\frac{N+1}{2}} \qquad if N = odd\\ \\ \dfrac{X_{\frac{N}{2}} + X_{\frac{N}{2} + 1}}{2} \qquad if N = even \end{cases}$

중간값의 깊이 $d(M)$은

$d(M) = \dfrac{(N+1)}{2}$

Five Number Summary

아래 4분위수 : $H_L$ 중간값 : $M$ 위 4분위수 : $H_U$

다섯 숫자 요약 = (min, $H_L, M, H_U$, max) = (최솟값, 제 1사분위수, 중앙값, 제 3사분위수, 최댓값)

summary(exam1$score)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   33.00   48.00   47.23   58.00   99.00 

Skewness

왜도 = $SKEW = \dfrac{(H_U - M) - (M - H_L)}{(H_U - M) + (M - H_L)}$

왜도 < 0 이면 왼쪽으로 기울어진 분포

왜도 > 0 이면 오른쪽으로 기울어진 분포

Quantiles

low = quantile(exam1$score, c(1/2, 1/4, 1/8, 1/16), type = 8) %>% as.numeric %>% round(2)# 중간값, 아래 4분위수, 아래 8분위수, 아래 16분위수
high = quantile(exam1$score, c(1/2, 3/4, 7/8, 15/16), type = 8) %>% as.numeric %>% round(2) # 중간값, 위 4분위수, 위 8분위수, 위 16분위수

values = cbind(low, high, (low+high)/2, high-low)
colnames(values) = c('low', 'high', 'mid', 'spr')
rownames(values) = c('M', 'H', 'E', 'D')

values
A matrix: 4 × 4 of type dbl
low high mid spr
M 48.00 48.00 48.00 0.00
H 32.00 58.00 45.00 26.00
E 23.00 73.00 48.00 50.00
D 16.25 80.33 48.29 64.08

KURTO

Ch.5 Data Re-Expression

멱승, 로그, 지수 변환에 의한 재표현

Standardization

  • 표준화 변환이란 통상적으로 한 자료묶음의 평균이 0, 표준편차가 1이 되도록 하는 선형변환을 말한다.

$x_1, x_2, \dots, x_n$을 자료 값이라고 할 때 이것의 표준화변환 $z_1, z_2, \dots, z_n$은 다음과 같이 정한다.

$z_i = \dfrac{x_i - \bar{x}}{s_x}, \, i = 1,2, \dots,n. \qquad(1)$

그런데 (1)은 로버스트하지 않은 $\bar{x}$와 $s_x$에 의존하므로 EDA의 관점에서는 믿고 사용하기 어렵다. [^1]

  • 왜냐하면 표본평균과 표본표준편차는 극단적인 이상점에 의해 크게 변동될 수 있기 때문이다.
  • 그러나 중앙값 또는 사분위수범위(IQR)은 비교적 로버스트하다.

즉, 평균 $\bar{x}$ 대신에 중앙값 $med_x$를, 표준편차 $s_x$ 대신에 사분위수범위 $IQR$을 보정한 $\tilde{\sigma_x} = \dfrac{IQR}{1.35}$을 쓰는 것이 좋을 것이다.

따라서 로버스트 표준화 변환은 다음과 같다.

$\bar{z_i} = \dfrac{x_i - med_x}{\tilde{\sigma_x}}\, i = 1,2, \dots,n. \qquad(1)$

표준화 변환을 사용하는 예시 상황은 다음과 같다.

[1] "A 그룹 학생 100명의 시험 X 점수는 N(40,10)으로부터 생성되었다."
[1] "B 그룹 학생 90명의 시험 Y 점수는 N(40,10)으로부터, 나머지 10명의 시험 Y 점수 N(80,5)으로부터 생성되었다."
par(mfrow = c(1,2))
X_group <- rnorm(100, 40, 10)
Y_group <- c(rnorm(90,40,10), rnorm(10,80,5))

z_X <- (X_group-mean(X_group))/sd(X_group)
z_Y <- (Y_group-mean(Y_group))/sd(Y_group)
hist(z_X, breaks = seq(-6, 6, 0.5), freq = F, ylim = c(0, 0.7), main = 'Standardized X')
hist(z_Y, breaks = seq(-6, 6, 0.5), freq = F, ylim = c(0, 0.7), main = 'Standardized Y')
par(mfrow = c(1,2))
robust_z_X <- (X_group-median(X_group))/(IQR(X_group)/1.35)
robust_z_Y <- (Y_group-median(Y_group))/(IQR(Y_group)/1.35)
hist(robust_z_X, breaks = seq(-6, 6, 0.5), freq = F, ylim = c(0, 0.7), main = 'Robust Standardized X')
hist(robust_z_Y, breaks = seq(-6, 6, 0.5), freq = F, ylim = c(0, 0.7), main = 'Robust Standardized Y')

Summary (5)

  • 선형변환 $ax+b\, (a > 0)$은 분포의 형태를 바꾸지 않는다. 그러나 비선형변환은 분포의 형태를 바꾼다.
  • 변환의 사다리는 $x^p$ 꼴의 파워(power, 멱승)형 변환을 일컫는데 변환의 사다리를 내려가면 $(p < 1)$ 오른쪽 꼬리가 짧아진다. $p=0$에 해당하는 변환은 로그변환이다.
  • 자료의 재표현은 분포의 대칭화를 위하여, 또는 자료묶음들의 산포를 균일화하기 위한 목적으로 실행된다.
  • 자료의 재표현은 자료 해석을 풍부하게 한다.

Ch.6 QQ-Plot

Various Patterns

Normal Distribution

  • 정규분포로부터의 모의생성 자료에 대한 정규확률 플롯
    • 대체로 직선적인 경향선을 확인할 수 있다.
    • 직선의 절편과 기울기가 각각 100과 15 근처임을 확인할 수 있다.
par(mfrow = c(1,2))
x1 <- rnorm(40, 100, 15)
qqnorm(x1)
qqline(x1)

x2 <- rnorm(4000, 100, 15)
qqnorm(x2)
qqline(x2)

Mixture Normal Distribution

  • 혼합 정규분포로부터의 모의생성 자료에 대한 정규확률 플롯
    • 중앙에서 밀도가 낮다.
    • 우상과 좌하 부분에서 강한 곡선성을 볼 수 있다.
par(mfrow = c(1,2))
x1 <- c(rnorm(20, 70, 15), rnorm(20, 130, 15))
qqnorm(x1)

x2 <- c(rnorm(2000, 70, 15), rnorm(2000, 130, 15))
qqnorm(x2)

Data with outliers

  • 특이값이 내재하는 모의생성 자료에 대한 정규확률 플롯
    • 25, 175가 이상점으로 존재한다.
    • 25는 주경향선보다 아래에 있다.
    • 175는 주경향선보다 위에 있다.
par(mfrow = c(1,2))
x1 <- rnorm(38, 100, 15)
outliers <- c(25, 175)
qqnorm(c(x1, outliers))

x2 <- rnorm(3800, 100, 15)
qqnorm(c(x2, outliers))

Short Tail

  • 꼬리가 짧은 분포로부터의 모의생성 자료에 대한 정규확률 플롯
    • 플롯의 전체적 모양이 비스듬한 S자 성장곡선의 형태를 취하고 있음을 볼 수 있다.
par(mfrow = c(1,2))
x1 <- runif(40, 80, 120)
qqnorm(x1)

x2 <- runif(4000, 80, 120)
qqnorm(x2)

Long Tail

  • 꼬리가 긴 분포로부터의 모의생성 자료에 대한 정규확률 플롯
    • 플롯의 전체적인 모양이 비스듬한 역 S자 성장곡선의 형태를 취하고 있음을 볼 수 있다.
par(mfrow = c(1,2))
x1 <- c(rexp(20,1), -rexp(20,1))
qqnorm(x1)

x2 <- c(rexp(2000,1), -rexp(2000,1))
qqnorm(x2)

Right Skewed

  • 큰 값 쪽으로 긴 꼬리를 뻗은 기울어진 분포의 경우
    • 비스듬히 기울어진 J자 곡선의 형태임을 볼 수 있다.
par(mfrow = c(1,2))
x1 <- exp(rnorm(40, 5, 1))
qqnorm(x1)

x2 <- exp(rnorm(4000, 5, 1))
qqnorm(x2)

Left Skewed

  • 작은 값 쪽으로 긴 꼬리를 뻗은 기울어진 분포의 경우
    • 비스듬히 기울어진 역 J자 곡선의 형태임을 볼 수 있다.
par(mfrow = c(1,2))
x1 <- 1500 - exp(rnorm(40,5,1))
qqnorm(x1)

x2 <- 1500 - exp(rnorm(40,5,1))
qqnorm(x2)

Example

  • 백혈병 환자 21명의 생존시간에 관한 다음의 자료를 지수분포에 적합하여 보자.
leukemia <- c(1,1,2,2,3,4,4,5,5,8,8,8,8,11,11,12,12,15,17,22,23)

leukemia_quant = ((1:length(leukemia)) - 1/3) / (length(leukemia) + 1/3)
x <- -log(1-leukemia_quant)
y <- sort(leukemia)

plot(y ~ x)
library(lattice)
qqmath(leukemia)

Ch.7 2원 자료, 빈도 표의 탐색

2원 자료 표의 분해

평균과 같은 추정치는 특이값에 의해 쉽게 영향을 받으므로 EDA적 관점에서 보면 바람직하지 않다.

따라서 평균을 중간값으로 대체하고 다듬을 필요가 있다.

R 함수

{r}
medpolish(world_temp)

7장 이원자료빈도표,

7.4절

8장 시계자료탐색 표 데이터주고 3할 구하기 등, 스필트해보기 등,

149페이지 표3에 대한거 스필트해보기 등,

147페이지

19.5 봉우리인지 골자기인지, 봉우리를 스필트해라,

8.5 자기 상관과 가중치? 여기서 그림이 의미하는 바, hf? 자기상관 교차상관,

9장

165 lms lts ,

167 lts,

10장 그림을 그려서 알수잇는게 뭐냐

182 밀감 추정? 데이터 주고 커널 밀도 추정해봐라 계산해서 그려봐라 계산기 필요! 도자기 플룻 한번 보기

11장 가변량 자료 여러가지 데이터를 주고 평행자료 같은거 주면 해석하기 그림을 그리고 해석하라 알수잇는게 뭐냐 정도

world_temp <- read.table('dataset/EDA/WorldTemperature_Mean.txt', header = TRUE)
world_temp
A data.frame: 21 × 12
Jan Feb March April May June July Aug Sep Oct Nov Dec
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
BAHRAIN 16.0 16.5 20.0 24.0 28.5 31.0 32.5 33.0 31.0 27.5 23.0 18.0
CALCUTTA 20.0 22.5 27.5 30.0 31.0 29.5 29.0 29.0 29.0 28.0 23.5 19.5
COLOMBO 26.0 26.0 27.0 27.5 28.0 27.5 27.0 27.0 27.5 26.5 31.0 26.0
CHENNAI 25.0 25.5 27.5 30.5 33.5 32.5 31.0 30.5 29.5 28.0 26.0 25.0
DUBAI 18.0 19.0 22.5 25.0 28.0 30.5 33.5 33.5 31.0 27.5 23.5 20.0
FRAKFURT -0.5 1.0 6.5 12.0 15.0 18.5 20.0 19.5 16.0 11.0 5.5 1.0
GENEVA 1.0 0.0 6.0 10.0 13.5 16.0 20.0 19.5 15.0 9.5 5.5 2.0
LONDON 4.0 4.5 6.5 9.0 12.5 15.5 17.5 17.0 15.0 11.0 7.5 5.0
MADRID 5.0 6.5 9.5 12.5 16.5 21.0 25.0 24.5 20.5 14.0 9.0 5.0
MANILA 24.0 24.5 26.5 27.5 28.0 28.0 26.0 26.0 26.5 26.5 25.0 24.5
MOSCOW -9.5 -8.5 -4.0 4.0 12.5 17.0 18.5 16.5 11.0 4.5 -2.5 -8.0
MEXICO_CITY 14.0 19.0 21.0 22.5 22.5 22.5 22.5 22.0 22.0 20.5 19.5 15.5
NEW_DELHI 13.5 17.0 21.5 28.0 33.0 33.5 31.0 30.0 29.0 26.0 19.5 15.0
NEW_YORK 1.0 0.5 5.0 10.5 17.0 22.0 25.0 24.0 20.0 15.0 8.5 2.0
PARIS 4.0 4.0 7.0 10.5 13.5 17.0 19.0 18.5 16.0 11.5 7.0 3.5
ROME 7.5 9.0 11.5 14.5 18.0 22.5 25.5 25.5 22.0 17.0 12.5 8.5
SAN_FRANCISCO 9.5 10.0 12.0 13.0 14.5 16.0 17.0 17.0 17.5 16.5 13.0 10.0
SINGAPORE 26.5 26.5 27.5 27.5 27.0 27.5 27.5 27.5 27.0 27.0 27.0 26.5
SYDNEY 25.0 25.0 22.0 19.5 16.0 11.0 12.0 13.0 15.5 17.5 21.0 25.0
TOKYO 4.5 5.0 8.0 13.5 18.5 21.5 25.5 27.0 23.5 17.0 12.0 7.0
TORONTO -4.5 -4.5 0.0 4.5 5.0 18.5 21.5 21.0 17.0 10.0 8.0 -2.0
polish <- medpolish(world_temp)
polish
1: 703.75
2: 686.375
Final: 685.75
Median Polish Results (Dataset: "world_temp")

Overall: 16.125

Row Effects:
      BAHRAIN      CALCUTTA       COLOMBO       CHENNAI         DUBAI 
       9.5000       11.2500       10.8750       14.0625       10.2500 
     FRAKFURT        GENEVA        LONDON        MADRID        MANILA 
      -5.1875       -6.0625       -5.7500       -2.5000       10.8750 
       MOSCOW   MEXICO_CITY     NEW_DELHI      NEW_YORK         PARIS 
     -11.8750        5.1875        8.0625       -2.8125       -4.9375 
         ROME SAN_FRANCISCO     SINGAPORE        SYDNEY         TOKYO 
       0.0000       -1.5000       11.1250        2.3750       -0.3125 
      TORONTO 
      -8.5000 

Column Effects:
    Jan     Feb   March   April     May    June    July     Aug     Sep     Oct 
-8.3750 -7.1250 -3.8750 -0.2500  2.3125  5.3750  7.1250  7.1250  4.8125  0.3750 
    Nov     Dec 
-3.6250 -7.6250 

Residuals:
                  Jan     Feb   March   April     May     June     July
BAHRAIN       -1.2500 -2.0000 -1.7500 -1.3750  0.5625   0.0000  -0.2500
CALCUTTA       1.0000  2.2500  4.0000  2.8750  1.3125  -3.2500  -5.5000
COLOMBO        7.3750  6.1250  3.8750  0.7500 -1.3125  -4.8750  -7.1250
CHENNAI        3.1875  2.4375  1.1875  0.5625  1.0000  -3.0625  -6.3125
DUBAI          0.0000 -0.2500  0.0000 -1.1250 -0.6875  -1.2500   0.0000
FRAKFURT      -3.0625 -2.8125 -0.5625  1.3125  1.7500   2.1875   1.9375
GENEVA        -0.6875 -2.9375 -0.1875  0.1875  1.1250   0.5625   2.8125
LONDON         2.0000  1.2500  0.0000 -1.1250 -0.1875  -0.2500   0.0000
MADRID        -0.2500  0.0000 -0.2500 -0.8750  0.5625   2.0000   4.2500
MANILA         5.3750  4.6250  3.3750  0.7500 -1.3125  -4.3750  -8.1250
MOSCOW        -5.3750 -5.6250 -4.3750  0.0000  5.9375   7.3750   7.1250
MEXICO_CITY    1.0625  4.8125  3.5625  1.4375 -1.1250  -4.1875  -5.9375
NEW_DELHI     -2.3125 -0.0625  1.1875  4.0625  6.5000   3.9375  -0.3125
NEW_YORK      -3.9375 -5.6875 -4.4375 -2.5625  1.3750   3.3125   4.5625
PARIS          1.1875 -0.0625 -0.3125 -0.4375  0.0000   0.4375   0.6875
ROME          -0.2500  0.0000 -0.7500 -1.3750 -0.4375   1.0000   2.2500
SAN_FRANCISCO  3.2500  2.5000  1.2500 -1.3750 -2.4375  -4.0000  -4.7500
SINGAPORE      7.6250  6.3750  4.1250  0.5000 -2.5625  -5.1250  -6.8750
SYDNEY        14.8750 13.6250  7.3750  1.2500 -4.8125 -12.8750 -13.6250
TOKYO         -2.9375 -3.6875 -3.9375 -2.0625  0.3750   0.3125   2.5625
TORONTO       -3.7500 -5.0000 -3.7500 -2.8750 -4.9375   5.5000   6.7500
                   Aug     Sep     Oct     Nov     Dec
BAHRAIN         0.2500  0.5625  1.5000  1.0000  0.0000
CALCUTTA       -5.5000 -3.1875  0.2500 -0.2500 -0.2500
COLOMBO        -7.1250 -4.3125 -0.8750  7.6250  6.6250
CHENNAI        -6.8125 -5.5000 -2.5625 -0.5625  2.4375
DUBAI           0.0000 -0.1875  0.7500  0.7500  1.2500
FRAKFURT        1.4375  0.2500 -0.3125 -1.8125 -2.3125
GENEVA          2.3125  0.1250 -0.9375 -0.9375 -0.4375
LONDON         -0.5000 -0.1875  0.2500  0.7500  2.2500
MADRID          3.7500  2.0625  0.0000 -1.0000 -1.0000
MANILA         -8.1250 -5.3125 -0.8750  1.6250  5.1250
MOSCOW          5.1250  1.9375 -0.1250 -3.1250 -4.6250
MEXICO_CITY    -6.4375 -4.1250 -1.1875  1.8125  1.8125
NEW_DELHI      -1.3125  0.0000  1.4375 -1.0625 -1.5625
NEW_YORK        3.5625  1.8750  1.3125 -1.1875 -3.6875
PARIS           0.1875  0.0000 -0.0625 -0.5625 -0.0625
ROME            2.2500  1.0625  0.5000  0.0000  0.0000
SAN_FRANCISCO  -4.7500 -1.9375  1.5000  2.0000  3.0000
SINGAPORE      -6.8750 -5.0625 -0.6250  3.3750  6.8750
SYDNEY        -12.6250 -7.8125 -1.3750  6.1250 14.1250
TOKYO           4.0625  2.8750  0.8125 -0.1875 -1.1875
TORONTO         6.2500  4.5625  2.0000  4.0000 -2.0000

적합 모형의 검토

comparison <- (matrix(polish$row, ncol = 1) %*% matrix(polish$col, nrow = 1))/polish$overall
comparison
A matrix: 21 × 12 of type dbl
-4.9341085 -4.1976744 -2.2829457 -0.147286822 1.36240310 3.1666667 4.1976744 4.1976744 2.8352713 0.220930233 -2.13565891 -4.4922481
-5.8430233 -4.9709302 -2.7034884 -0.174418605 1.61337209 3.7500000 4.9709302 4.9709302 3.3575581 0.261627907 -2.52906977 -5.3197674
-5.6482558 -4.8052326 -2.6133721 -0.168604651 1.55959302 3.6250000 4.8052326 4.8052326 3.2456395 0.252906977 -2.44476744 -5.1424419
-7.3037791 -6.2136628 -3.3793605 -0.218023256 2.01671512 4.6875000 6.2136628 6.2136628 4.1969477 0.327034884 -3.16133721 -6.6497093
-5.3236434 -4.5290698 -2.4631783 -0.158914729 1.46996124 3.4166667 4.5290698 4.5290698 3.0591085 0.238372093 -2.30426357 -4.8468992
2.6942829 2.2921512 1.2466085 0.080426357 -0.74394380 -1.7291667 -2.2921512 -2.2921512 -1.5482074 -0.120639535 1.16618217 2.4530039
3.1487403 2.6787791 1.4568798 0.093992248 -0.86942829 -2.0208333 -2.6787791 -2.6787791 -1.8093508 -0.140988372 1.36288760 2.8667636
2.9864341 2.5406977 1.3817829 0.089147287 -0.82461240 -1.9166667 -2.5406977 -2.5406977 -1.7160853 -0.133720930 1.29263566 2.7189922
1.2984496 1.1046512 0.6007752 0.038759690 -0.35852713 -0.8333333 -1.1046512 -1.1046512 -0.7461240 -0.058139535 0.56201550 1.1821705
-5.6482558 -4.8052326 -2.6133721 -0.168604651 1.55959302 3.6250000 4.8052326 4.8052326 3.2456395 0.252906977 -2.44476744 -5.1424419
6.1676357 5.2470930 2.8536822 0.184108527 -1.70300388 -3.9583333 -5.2470930 -5.2470930 -3.5440891 -0.276162791 2.66957364 5.6153101
-2.6942829 -2.2921512 -1.2466085 -0.080426357 0.74394380 1.7291667 2.2921512 2.2921512 1.5482074 0.120639535 -1.16618217 -2.4530039
-4.1875000 -3.5625000 -1.9375000 -0.125000000 1.15625000 2.6875000 3.5625000 3.5625000 2.4062500 0.187500000 -1.81250000 -3.8125000
1.4607558 1.2427326 0.6758721 0.043604651 -0.40334302 -0.9375000 -1.2427326 -1.2427326 -0.8393895 -0.065406977 0.63226744 1.3299419
2.5644380 2.1816860 1.1865310 0.076550388 -0.70809109 -1.6458333 -2.1816860 -2.1816860 -1.4735950 -0.114825581 1.10998062 2.3347868
0.0000000 0.0000000 0.0000000 0.000000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.000000000 0.00000000 0.0000000
0.7790698 0.6627907 0.3604651 0.023255814 -0.21511628 -0.5000000 -0.6627907 -0.6627907 -0.4476744 -0.034883721 0.33720930 0.7093023
-5.7781008 -4.9156977 -2.6734496 -0.172480620 1.59544574 3.7083333 4.9156977 4.9156977 3.3202519 0.258720930 -2.50096899 -5.2606589
-1.2335271 -1.0494186 -0.5707364 -0.036821705 0.34060078 0.7916667 1.0494186 1.0494186 0.7088178 0.055232558 -0.53391473 -1.1230620
0.1623062 0.1380814 0.0750969 0.004844961 -0.04481589 -0.1041667 -0.1380814 -0.1380814 -0.0932655 -0.007267442 0.07025194 0.1477713
4.4147287 3.7558140 2.0426357 0.131782946 -1.21899225 -2.8333333 -3.7558140 -3.7558140 -2.5368217 -0.197674419 1.91085271 4.0193798
plot(polish$residual ~ comparison, xlim = c(-15, 15), ylim = c(-15, 15))
round(polish$residuals[order(polish$row),],1)
A matrix: 21 × 12 of type dbl
Jan Feb March April May June July Aug Sep Oct Nov Dec
MOSCOW -5.4 -5.6 -4.4 0.0 5.9 7.4 7.1 5.1 1.9 -0.1 -3.1 -4.6
TORONTO -3.8 -5.0 -3.8 -2.9 -4.9 5.5 6.8 6.2 4.6 2.0 4.0 -2.0
GENEVA -0.7 -2.9 -0.2 0.2 1.1 0.6 2.8 2.3 0.1 -0.9 -0.9 -0.4
LONDON 2.0 1.2 0.0 -1.1 -0.2 -0.2 0.0 -0.5 -0.2 0.2 0.8 2.2
FRAKFURT -3.1 -2.8 -0.6 1.3 1.8 2.2 1.9 1.4 0.2 -0.3 -1.8 -2.3
PARIS 1.2 -0.1 -0.3 -0.4 0.0 0.4 0.7 0.2 0.0 -0.1 -0.6 -0.1
NEW_YORK -3.9 -5.7 -4.4 -2.6 1.4 3.3 4.6 3.6 1.9 1.3 -1.2 -3.7
MADRID -0.2 0.0 -0.2 -0.9 0.6 2.0 4.2 3.8 2.1 0.0 -1.0 -1.0
SAN_FRANCISCO 3.2 2.5 1.2 -1.4 -2.4 -4.0 -4.8 -4.8 -1.9 1.5 2.0 3.0
TOKYO -2.9 -3.7 -3.9 -2.1 0.4 0.3 2.6 4.1 2.9 0.8 -0.2 -1.2
ROME -0.2 0.0 -0.8 -1.4 -0.4 1.0 2.2 2.2 1.1 0.5 0.0 0.0
SYDNEY 14.9 13.6 7.4 1.2 -4.8 -12.9 -13.6 -12.6 -7.8 -1.4 6.1 14.1
MEXICO_CITY 1.1 4.8 3.6 1.4 -1.1 -4.2 -5.9 -6.4 -4.1 -1.2 1.8 1.8
NEW_DELHI -2.3 -0.1 1.2 4.1 6.5 3.9 -0.3 -1.3 0.0 1.4 -1.1 -1.6
BAHRAIN -1.2 -2.0 -1.8 -1.4 0.6 0.0 -0.2 0.2 0.6 1.5 1.0 0.0
DUBAI 0.0 -0.2 0.0 -1.1 -0.7 -1.2 0.0 0.0 -0.2 0.8 0.8 1.2
COLOMBO 7.4 6.1 3.9 0.8 -1.3 -4.9 -7.1 -7.1 -4.3 -0.9 7.6 6.6
MANILA 5.4 4.6 3.4 0.8 -1.3 -4.4 -8.1 -8.1 -5.3 -0.9 1.6 5.1
SINGAPORE 7.6 6.4 4.1 0.5 -2.6 -5.1 -6.9 -6.9 -5.1 -0.6 3.4 6.9
CALCUTTA 1.0 2.2 4.0 2.9 1.3 -3.2 -5.5 -5.5 -3.2 0.2 -0.2 -0.2
CHENNAI 3.2 2.4 1.2 0.6 1.0 -3.1 -6.3 -6.8 -5.5 -2.6 -0.6 2.4

가구 소비지출 사례

house <- read.table('dataset/EDA/household.txt', header = TRUE)
house
A data.frame: 12 × 10
식료품 주거비 광열수도 가구가사 피복신발 보건의료 교육 교양오락 교통통신 기타소비
<int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
1993 301675 45588 44341 51479 75672 50533 95654 51904 103564 200544
1994 341574 47389 45995 55698 85239 54408 106110 58551 129972 215496
1995 367080 48301 52271 59117 97474 59373 127027 66848 142972 245429
1996 409502 54037 60177 62996 104896 65592 149334 75746 167487 277086
1997 427458 54038 67972 63376 97824 66640 162403 77057 188192 284584
1998 365859 49785 74272 53147 69750 58652 151439 58589 183911 250820
1999 412056 54190 76172 55533 80223 67098 164242 71850 225085 272430
2000 447018 57026 86762 59539 91785 70606 182370 84481 261442 291272
2001 463582 68246 92527 70408 98140 74300 199407 86650 286626 322237
2002 481049 62394 93238 71424 101980 81057 206033 86705 309288 341645
2003 509649 65051 94395 72480 106861 89657 224005 93911 329453 337389
2004 544775 66631 97937 79384 105079 94494 235813 97981 346974 349143
house_mp <- medpolish(house)
house_mp
1: 2361220
2: 2199938
Final: 2191052
Median Polish Results (Dataset: "house")

Overall: 79769.58

Row Effects:
      1993       1994       1995       1996       1997       1998       1999 
-24674.047 -20523.547 -13960.984  -2377.453   1800.141 -14832.141  -1800.141 
      2000       2001       2002       2003       2004 
 11146.484  17513.016  18713.297  22243.016  26432.516 

Column Effects:
    식료품     주거비   광열수도   가구가사   피복신발   보건의료       교육 
339987.422 -25655.578  -7941.344 -20315.078   4830.484 -11754.109  86387.062 
  교양오락   교통통신   기타소비 
 -6233.938 133044.562 200024.906 

Residuals:
       식료품   주거비 광열수도 가구가사  피복신발   보건의료     교육 교양오락
1993 -93408.0  16148.0 -2813.19  16698.5 15745.984   7191.578 -45828.6  3042.41
1994 -57659.5  13798.5 -5309.69  16767.0 21162.484   6916.078 -39523.1  5538.91
1995 -38716.0   8148.0 -5596.25  13623.5 26834.922   5318.516 -25168.7  7273.34
1996  -7877.5   2300.5 -9273.78   5919.0 22673.391    -46.016 -14445.2  4587.81
1997   5900.9  -1876.1 -5656.38   2121.4 11423.797  -3175.609  -5553.8  1721.22
1998 -39065.9  10503.1 17275.91   8524.6   -17.922   5468.672    114.5  -114.50
1999  -5900.9   1876.1  6143.91  -2121.4 -2576.922    882.672   -114.5   114.50
2000  16114.5  -8234.5  3787.28 -11062.0 -3961.547  -8555.953   5066.9  -201.12
2001  26312.0  -3381.0  3185.75  -6559.5 -3973.078 -11228.484  15737.3 -4398.66
2002  42578.7 -10433.3  2696.47  -6743.8 -1333.359  -5671.766  21163.1 -5543.94
2003  67649.0 -11306.0   323.75  -9217.5    17.922   -601.484  35605.3 -1867.66
2004  98585.5 -13915.5  -323.75  -6503.0 -5953.578     46.016  43223.8 -1987.16
     교통통신  기타소비
1993   -84576 -54576.44
1994   -62319 -43774.94
1995   -55881 -20404.50
1996   -42950   -331.03
1997   -26422   2989.38
1998   -14071 -14142.34
1999    14071  -5564.34
2000    37481    331.03
2001    56299  24929.50
2002    77761  43137.22
2003    94396  35351.50
2004   107727  42916.00
house_mp$residual
A matrix: 12 × 10 of type dbl
식료품 주거비 광열수도 가구가사 피복신발 보건의료 교육 교양오락 교통통신 기타소비
1993 -93407.953 16148.047 -2813.188 16698.547 15745.98438 7191.57812 -45828.594 3042.406 -84576.09 -54576.4375
1994 -57659.453 13798.547 -5309.688 16767.047 21162.48438 6916.07812 -39523.094 5538.906 -62318.59 -43774.9375
1995 -38716.016 8147.984 -5596.250 13623.484 26834.92188 5318.51562 -25168.656 7273.344 -55881.16 -20404.5000
1996 -7877.547 2300.453 -9273.781 5918.953 22673.39062 -46.01562 -14445.188 4587.812 -42949.69 -331.0312
1997 5900.859 -1876.141 -5656.375 2121.359 11423.79688 -3175.60938 -5553.781 1721.219 -26422.28 2989.3750
1998 -39065.859 10503.141 17275.906 8524.641 -17.92188 5468.67188 114.500 -114.500 -14071.00 -14142.3438
1999 -5900.859 1876.141 6143.906 -2121.359 -2576.92188 882.67188 -114.500 114.500 14071.00 -5564.3438
2000 16114.516 -8234.484 3787.281 -11061.984 -3961.54688 -8555.95312 5066.875 -201.125 37481.38 331.0312
2001 26311.984 -3381.016 3185.750 -6559.516 -3973.07812 -11228.48438 15737.344 -4398.656 56298.84 24929.5000
2002 42578.703 -10433.297 2696.469 -6743.797 -1333.35938 -5671.76562 21163.062 -5543.938 77760.56 43137.2188
2003 67648.984 -11306.016 323.750 -9217.516 17.92188 -601.48438 35605.344 -1867.656 94395.84 35351.5000
2004 98585.484 -13915.516 -323.750 -6503.016 -5953.57812 46.01562 43223.844 -1987.156 107727.34 42916.0000
matrix(house_mp$row, ncol = 1) %*% matrix(house_mp$col, nrow = 1) / house_mp$overall
A matrix: 12 × 10 of type dbl
-105163.720 7935.6937 2456.3887 6283.7889 -1494.1485 3635.7400 -26720.944 1928.2597 -41152.879 -61871.004
-87473.796 6600.8054 2043.1917 5226.7728 -1242.8130 3024.1606 -22226.129 1603.9010 -34230.422 -51463.486
-59503.375 4490.1469 1389.8654 3555.4718 -845.4140 2057.1619 -15119.153 1091.0413 -23284.980 -35007.639
-10132.988 764.6390 236.6839 605.4707 -143.9678 350.3196 -2574.681 185.7963 -3965.261 -5961.544
7672.413 -578.9632 -179.2104 -458.4454 109.0084 -265.2521 1949.476 -140.6797 3002.384 4513.913
-63216.346 4770.3291 1476.5921 3777.3309 -898.1673 2185.5275 -16062.578 1159.1216 -24737.948 -37192.093
-7672.413 578.9632 179.2104 458.4454 -109.0084 265.2521 -1949.476 140.6797 -3002.384 -4513.913
47507.641 -3584.9444 -1109.6720 -2838.6975 674.9806 -1642.4431 12071.169 -871.0901 18590.786 27950.185
74642.554 -5632.5551 -1743.4827 -4460.0747 1060.5089 -2580.5565 18965.852 -1368.6301 29209.274 43914.477
79758.295 -6018.5908 -1862.9749 -4765.7528 1133.1925 -2757.4188 20265.705 -1462.4312 31211.177 46924.223
94802.376 -7153.8228 -2214.3709 -5664.6733 1346.9363 -3277.5257 24088.240 -1738.2763 37098.257 55775.112
112658.523 -8501.2543 -2631.4505 -6731.6217 1600.6334 -3894.8517 28625.291 -2065.6829 44085.760 66280.424
comparison <- matrix(house_mp$row, ncol = 1) %*% matrix(house_mp$col, nrow = 1) / house_mp$overall
plot(house_mp$residuals ~ comparison)

가법적이지 않다. (그렇다고 승법적인 것은 아니다.)

이제 어떻게 할 것인가? 로그 변환을 취한 뒤 다시 살펴보자

house_log_mp <- medpolish(log(house))
house_log_mp
1: 10.10955
2: 8.252357
Final: 8.19259
Median Polish Results (Dataset: "log(house)")

Overall: 11.30465

Row Effects:
       1993        1994        1995        1996        1997        1998 
-0.32175936 -0.22877213 -0.12265758 -0.01029705  0.01029705 -0.13095072 
       1999        2000        2001        2002        2003        2004 
-0.01268085  0.06165227  0.14900604  0.17342852  0.21261832  0.26830487 

Column Effects:
     식료품      주거비    광열수도    가구가사    피복신발    보건의료 
 1.63469862 -0.39685225 -0.07144553 -0.29124378  0.06146341 -0.18422407 
       교육    교양오락    교통통신    기타소비 
 0.73231337 -0.08222035  0.99039062  1.22733896 

Residuals:
          식료품      주거비   광열수도    가구가사    피복신발  보건의료
1993 -0.00047918  1.4137e-01 -0.2117756  0.15728690  0.18981396  0.031720
1994  0.03074766  8.7124e-02 -0.2681398  0.14306996  0.21587760  0.012617
1995 -0.00335143  7.1902e-05 -0.2463454  0.09652970  0.24388965 -0.006169
1996 -0.00634999 -7.1902e-05 -0.2178574  0.04772186  0.20491282 -0.018915
1997  0.01597017 -2.0647e-02 -0.1166459  0.03314178  0.11451929 -0.023658
1998  0.00160992  3.8627e-02  0.1132401 -0.00163403 -0.08248547 -0.010094
1999  0.00225130  5.1393e-03  0.0202301 -0.07598812 -0.06086250  0.006169
2000  0.00935777 -1.8183e-02  0.0760718 -0.08066713 -0.00055699 -0.017203
2001 -0.04161157  7.4075e-02  0.0530498 -0.00034556 -0.02096462 -0.053561
2002 -0.02904820 -3.9997e-02  0.0362822 -0.01044099 -0.00700541  0.009058
2003 -0.01048489 -3.7485e-02  0.0094251 -0.03495407  0.00055699  0.070707
2004  0.00047918 -6.9173e-02 -0.0094251  0.00034556 -0.07194603  0.067565
          교육   교양오락  교통통신   기타소비
1993 -0.246707 -0.0435146 -0.425332 -0.0014361
1994 -0.235955 -0.0159995 -0.291190 -0.0225147
1995 -0.162146  0.0104091 -0.301974  0.0014361
1996 -0.112721  0.0230128 -0.256078  0.0103958
1997 -0.049420  0.0195785 -0.160115  0.0165023
1998  0.021930 -0.1131722 -0.041878  0.0314571
1999 -0.015182 -0.0274084  0.041878 -0.0041666
2000  0.015182  0.0602045  0.117279 -0.0116239
2001  0.017138 -0.0017989  0.121891  0.0020521
2002  0.025404 -0.0255868  0.173564  0.0361145
2003  0.069846  0.0150594  0.197535 -0.0156109
2004  0.065531  0.0017989  0.193664 -0.0370524
comparison <- matrix(house_log_mp$row, ncol = 1) %*% matrix(house_log_mp$col, nrow = 1) / house_log_mp$overall
plot(house_log_mp$residuals ~ comparison)

이제는 경향선을 찾기 어렵다.

로그 변환 자료에 대한 중간값 다듬기 결과를 살펴보자.

round(house_log_mp$residuals, 2)
A matrix: 12 × 10 of type dbl
식료품 주거비 광열수도 가구가사 피복신발 보건의료 교육 교양오락 교통통신 기타소비
1993 0.00 0.14 -0.21 0.16 0.19 0.03 -0.25 -0.04 -0.43 0.00
1994 0.03 0.09 -0.27 0.14 0.22 0.01 -0.24 -0.02 -0.29 -0.02
1995 0.00 0.00 -0.25 0.10 0.24 -0.01 -0.16 0.01 -0.30 0.00
1996 -0.01 0.00 -0.22 0.05 0.20 -0.02 -0.11 0.02 -0.26 0.01
1997 0.02 -0.02 -0.12 0.03 0.11 -0.02 -0.05 0.02 -0.16 0.02
1998 0.00 0.04 0.11 0.00 -0.08 -0.01 0.02 -0.11 -0.04 0.03
1999 0.00 0.01 0.02 -0.08 -0.06 0.01 -0.02 -0.03 0.04 0.00
2000 0.01 -0.02 0.08 -0.08 0.00 -0.02 0.02 0.06 0.12 -0.01
2001 -0.04 0.07 0.05 0.00 -0.02 -0.05 0.02 0.00 0.12 0.00
2002 -0.03 -0.04 0.04 -0.01 -0.01 0.01 0.03 -0.03 0.17 0.04
2003 -0.01 -0.04 0.01 -0.03 0.00 0.07 0.07 0.02 0.20 -0.02
2004 0.00 -0.07 -0.01 0.00 -0.07 0.07 0.07 0.00 0.19 -0.04
house_log_mp
Median Polish Results (Dataset: "log(house)")

Overall: 11.30465

Row Effects:
       1993        1994        1995        1996        1997        1998 
-0.32175936 -0.22877213 -0.12265758 -0.01029705  0.01029705 -0.13095072 
       1999        2000        2001        2002        2003        2004 
-0.01268085  0.06165227  0.14900604  0.17342852  0.21261832  0.26830487 

Column Effects:
     식료품      주거비    광열수도    가구가사    피복신발    보건의료 
 1.63469862 -0.39685225 -0.07144553 -0.29124378  0.06146341 -0.18422407 
       교육    교양오락    교통통신    기타소비 
 0.73231337 -0.08222035  0.99039062  1.22733896 

Residuals:
          식료품      주거비   광열수도    가구가사    피복신발  보건의료
1993 -0.00047918  1.4137e-01 -0.2117756  0.15728690  0.18981396  0.031720
1994  0.03074766  8.7124e-02 -0.2681398  0.14306996  0.21587760  0.012617
1995 -0.00335143  7.1902e-05 -0.2463454  0.09652970  0.24388965 -0.006169
1996 -0.00634999 -7.1902e-05 -0.2178574  0.04772186  0.20491282 -0.018915
1997  0.01597017 -2.0647e-02 -0.1166459  0.03314178  0.11451929 -0.023658
1998  0.00160992  3.8627e-02  0.1132401 -0.00163403 -0.08248547 -0.010094
1999  0.00225130  5.1393e-03  0.0202301 -0.07598812 -0.06086250  0.006169
2000  0.00935777 -1.8183e-02  0.0760718 -0.08066713 -0.00055699 -0.017203
2001 -0.04161157  7.4075e-02  0.0530498 -0.00034556 -0.02096462 -0.053561
2002 -0.02904820 -3.9997e-02  0.0362822 -0.01044099 -0.00700541  0.009058
2003 -0.01048489 -3.7485e-02  0.0094251 -0.03495407  0.00055699  0.070707
2004  0.00047918 -6.9173e-02 -0.0094251  0.00034556 -0.07194603  0.067565
          교육   교양오락  교통통신   기타소비
1993 -0.246707 -0.0435146 -0.425332 -0.0014361
1994 -0.235955 -0.0159995 -0.291190 -0.0225147
1995 -0.162146  0.0104091 -0.301974  0.0014361
1996 -0.112721  0.0230128 -0.256078  0.0103958
1997 -0.049420  0.0195785 -0.160115  0.0165023
1998  0.021930 -0.1131722 -0.041878  0.0314571
1999 -0.015182 -0.0274084  0.041878 -0.0041666
2000  0.015182  0.0602045  0.117279 -0.0116239
2001  0.017138 -0.0017989  0.121891  0.0020521
2002  0.025404 -0.0255868  0.173564  0.0361145
2003  0.069846  0.0150594  0.197535 -0.0156109
2004  0.065531  0.0017989  0.193664 -0.0370524

2원 빈도 표 분석

UCBAdmissions
, , Dept = A

          Gender
Admit      Male Female
  Admitted  512     89
  Rejected  313     19

, , Dept = B

          Gender
Admit      Male Female
  Admitted  353     17
  Rejected  207      8

, , Dept = C

          Gender
Admit      Male Female
  Admitted  120    202
  Rejected  205    391

, , Dept = D

          Gender
Admit      Male Female
  Admitted  138    131
  Rejected  279    244

, , Dept = E

          Gender
Admit      Male Female
  Admitted   53     94
  Rejected  138    299

, , Dept = F

          Gender
Admit      Male Female
  Admitted   22     24
  Rejected  351    317
Tab1 <- UCBAdmissions[1,,]
Tab1
        Dept
Gender     A   B   C   D   E   F
  Male   512 353 120 138  53  22
  Female  89  17 202 131  94  24
Tab2 <- UCBAdmissions[2,,]
Tab2
        Dept
Gender     A   B   C   D   E   F
  Male   313 207 205 279 138 351
  Female  19   8 391 244 299 317
Tab <- Tab1 + Tab2
Tab
        Dept
Gender     A   B   C   D   E   F
  Male   825 560 325 417 191 373
  Female 108  25 593 375 393 341
barplot(Tab, legend = rownames(Tab))
Tab_col <- apply(Tab, 2, sum)
Tab_col
<dl class=dl-inline>
A
933
B
585
C
918
D
792
E
584
F
714
</dl>
Tab_c <- Tab %*% diag(1/Tab_col) * 100
Tab_c
A matrix: 2 × 6 of type dbl
Male 88.42444 95.726496 35.40305 52.65152 32.70548 52.2409
Female 11.57556 4.273504 64.59695 47.34848 67.29452 47.7591
colnames(Tab_c) <- c('A', 'B', 'C', 'D', 'E', 'F')
rownames(Tab_c) <- c('Male', 'Female')
Tab_c
A matrix: 2 × 6 of type dbl
A B C D E F
Male 88.42444 95.726496 35.40305 52.65152 32.70548 52.2409
Female 11.57556 4.273504 64.59695 47.34848 67.29452 47.7591
barplot(Tab_c, legend = rownames(Tab_c))
par(mfrow = c(1,2))
barplot(t(Tab), beside = T, legend = colnames(Tab))
Tab_row <- apply(Tab,1,sum)
Tab_r <- diag(1/Tab_row) %*% Tab * 100
colnames(Tab_r) <- colnames(Tab_c)
rownames(Tab_r) <- rownames(Tab_c)
barplot(t(Tab_r), beside = T, legend = colnames(Tab))
  • 남학생은 A, B에 50% 이상 집중되어 있는 것과 달리 여학생은 C, D, E, F에 90% 이상이 집중되어 있다.
Tab_M <- UCBAdmissions[,1,]
addmargins(Tab_M)
A table: 3 × 7 of type dbl
A B C D E F Sum
Admitted 512 353 120 138 53 22 1198
Rejected 313 207 205 279 138 351 1493
Sum 825 560 325 417 191 373 2691
Tab_F <- UCBAdmissions[,2,]
addmargins(Tab_F)
A table: 3 × 7 of type dbl
A B C D E F Sum
Admitted 89 17 202 131 94 24 557
Rejected 19 8 391 244 299 317 1278
Sum 108 25 593 375 393 341 1835

이제 남학생의 합격률과 여성의 합격률을 비교해보자.

par(mfrow = c(1,2))
Tab_M_col <- apply(Tab_M, 2, sum)
Tab_M_C <- Tab_M %*% diag(1/Tab_M_col) * 100
colnames(Tab_M_C) <- c('A', 'B', 'C', 'D', 'E', 'F')
barplot(Tab_M_C, legend = rownames(Tab_M_C), main = 'Male')
Tab_F_col <- apply(Tab_F, 2, sum)
Tab_F_C <- Tab_F %*% diag(1/Tab_F_col) * 100
colnames(Tab_F_C) <- colnames(Tab_M_C)
barplot(Tab_F_C, legend = rownames(Tab_F_C), main = 'Female')

C, D, E, F 학과에서 남학생과 여학생의 합격률은 비슷하고

A, B 학과에서는 여학생의 합격률이 더 높은 것으로 보인다.

par(mfrow = c(1,2))
mosaicplot(~Dept+Gender, data = UCBAdmissions, color = T)
mosaicplot(~Gender+Dept, data = UCBAdmissions, color = T)

Ch.8 시계열 자료의 탐색

시계열 평활이란?

par(mfrow = c(1,2))
t <- seq(1:60)
s <- sin(2*pi*t/12) + sin(2*pi*t/30)
a <- rnorm(60, 0, 1)
x <- s+a
plot(t, x, type = 'l', lty = 'dotted')
lines(t, s, col = 'red')
plot(t, smooth(x), type = 'l', lty = 'dotted')
lines(t, s, col = 'red')

평활방법

이동평균(이동중앙값)에서 $K$가 작으면 $smooth_t$ 계열이 평탄하게 된다. 반대로 $K$를 작게하면 $smooth_t$ 계열에 잦은 변동이 생긴다.

이동평균은 특이점에 취약하므로 평균을 중간값으로 대치한 이동중간값이 선호된다.

t <- 1:12
x <- c(2.1, 9.8, 19.5, 22.5, 16.6, 16.1, 18.5, -3.4, 8.9, -25.2, -14.0, -0.4)
runmed(x, k=3)
<ol class=list-inline>
  • 2.1
  • 9.8
  • 19.5
  • 19.5
  • 16.6
  • 16.6
  • 16.1
  • 8.9
  • -3.4
  • -14
  • -14
  • -14
  • </ol>
    par(mfrow = c(1,2))
    plot(t, x, type = 'l')
    plot(t, runmed(x, k = 3), type = 'l')
    
    smooth(x, kind = c("3RSS"), twiceit = T)
    
    3RSS Tukey smoother resulting from  smooth(x = x, kind = c("3RSS"), twiceit = T) 
     __twiced__  used 5 iterations
     [1]   2.1   9.8  19.5  16.6  16.6  16.6  16.1   8.9  -3.4 -14.0 -14.0 -14.0

    사례분석

    Telemetric <- read.table("dataset/EDA/Telemetric.txt", header = T)
    head(Telemetric)
    
    A data.frame: 6 × 2
    day temperature
    <int> <int>
    1 1 60
    2 2 70
    3 3 54
    4 4 56
    5 5 70
    6 6 66
    par(mfrow = c(2,2))
    plot(Telemetric$temperature, type = 'l', lty = 'dotted')
    plot(smooth(Telemetric$temperature), type = 'l', lty = 'dotted')
    plot(smooth(Telemetric$temperature, kind = c('3RS3R'), twiceit = TRUE), type = 'l', lty = 'dotted')
    plot(smooth(Telemetric$temperature, twiceit = TRUE), type = 'l', lty = 'dotted')
    

    계절형 시계열의 분해

    export <- read.table('dataset/EDA/Export_1988.txt', header = TRUE)
    series <- ts(export$Series/1000, start = c(1988,1), frequency = 12)
    
    par(mfrow = c(1,2))
    plot(series)
    plot(log(series))
    
    decomp_out <- decompose(log(series))
    
    decomp_out$season
    
    A Time Series: 18 × 12
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    1988 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1989 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1990 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1991 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1992 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1993 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1994 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1995 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1996 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1997 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1998 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    1999 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2000 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2001 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2002 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2003 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2004 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837 0.110627315
    2005 -0.138387108 -0.114503286 0.034690776 -0.001900557 0.012587202 0.054760266 -0.024138058 -0.039345242 0.005798168 0.045167687 0.054642837
    round(decomp_out$season[1:12], 4)
    
    <ol class=list-inline>
  • -0.1384
  • -0.1145
  • 0.0347
  • -0.0019
  • 0.0126
  • 0.0548
  • -0.0241
  • -0.0393
  • 0.0058
  • 0.0452
  • 0.0546
  • 0.1106
  • </ol>
    plot(decomp_out$trend)
    
    decomp_out$trend
    
    A Time Series: 18 × 12
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    1988 NA NA NA NA NA NA 8.524909 8.531449 8.538009 8.543836 8.546743 8.551241
    1989 8.554463 8.554375 8.554675 8.555680 8.554926 8.552561 8.546942 8.545727 8.548441 8.549405 8.552998 8.557128
    1990 8.561084 8.563496 8.568499 8.572934 8.575389 8.583094 8.594780 8.602987 8.608054 8.618382 8.632110 8.645528
    1991 8.652480 8.656182 8.656451 8.662890 8.676699 8.684838 8.694924 8.703511 8.710656 8.719050 8.723894 8.727557
    1992 8.735643 8.744232 8.753537 8.762913 8.765570 8.761348 8.756939 8.762407 8.771404 8.776919 8.781985 8.785710
    1993 8.788833 8.793225 8.799012 8.804420 8.810720 8.821024 8.832465 8.839711 8.845555 8.854876 8.866559 8.878594
    1994 8.889805 8.901593 8.913848 8.926946 8.943529 8.964617 8.986476 9.009531 9.033671 9.056742 9.081111 9.106401
    1995 9.132387 9.159646 9.185185 9.207737 9.227706 9.240700 9.254871 9.271723 9.284862 9.293293 9.297460 9.299917
    1996 9.297720 9.291511 9.283803 9.281053 9.281978 9.283356 9.281056 9.274890 9.271320 9.272877 9.277592 9.283272
    1997 9.294459 9.307260 9.317959 9.325326 9.328999 9.331261 9.331807 9.339199 9.349185 9.353986 9.354772 9.350116
    1998 9.340215 9.328039 9.320473 9.311639 9.304434 9.303823 9.304976 9.298497 9.289597 9.286373 9.284808 9.289721
    1999 9.300839 9.314044 9.325097 9.339359 9.357316 9.373227 9.392332 9.416432 9.438060 9.453700 9.470780 9.488347
    2000 9.504214 9.523792 9.544524 9.559536 9.567028 9.569349 9.571030 9.574822 9.576103 9.570657 9.562131 9.551290
    2001 9.534494 9.515050 9.497387 9.479562 9.461806 9.444202 9.430287 9.417909 9.407256 9.408100 9.414232 9.416737
    2002 9.423363 9.437233 9.448955 9.462791 9.480672 9.498986 9.518222 9.535730 9.549874 9.563409 9.572192 9.581732
    2003 9.595717 9.605641 9.618105 9.636003 9.653074 9.672030 9.695130 9.721929 9.750299 9.776638 9.804250 9.832368
    2004 9.858732 9.882113 9.901066 9.916983 9.934279 9.950823 9.964561 9.974221 9.982031 9.989783 9.996741 10.004872
    2005 10.012865 10.023942 10.037616 10.049119 10.058616 NA NA NA NA NA NA
    x_tilde <- log(series) - decomp_out$seasonal # x_tilde = x - S_5
    adjusted <- exp(x_tilde) # 변환
    
    adj_series <- ts(adjusted, start = c(1988,1), frequency = 12)
    adj_series
    
    A Time Series: 18 × 12
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    1988 4546.032 4621.058 4628.182 4635.268 4713.702 4783.146 5329.913 5522.953 5361.729 5024.112 5501.507 5730.333
    1989 5054.007 4862.924 5147.936 4792.822 4888.130 5138.230 5360.522 5479.749 5443.044 5069.931 5354.060 5563.241
    1990 4548.954 5247.636 5091.585 4959.266 5149.581 5385.584 5623.639 5534.706 6076.445 5051.467 5699.796 6287.357
    1991 5328.024 5455.744 5530.650 5849.841 6069.310 6305.439 5675.393 5993.823 5647.321 6343.622 6322.349 6891.019
    1992 6192.634 5768.236 6209.581 6373.047 6257.822 6677.496 6507.071 6424.417 6587.160 6811.010 6276.172 6272.825
    1993 6119.844 6655.342 6679.025 6763.548 6658.934 6862.103 6824.736 6806.393 7143.941 7150.435 6954.065 7249.763
    1994 6968.359 6955.015 7353.724 7682.968 7759.298 7861.148 7796.697 7906.040 8253.233 8475.501 8734.753 9574.575
    1995 8916.070 9452.755 9657.319 10177.701 10512.510 10646.272 10741.260 11039.106 10910.525 11015.478 10853.046 10525.803
    1996 11395.750 11082.590 11290.855 10657.439 11095.214 10699.891 10138.507 10076.117 9934.509 11325.111 10793.137 10940.250
    1997 10375.331 10498.131 10940.664 11417.296 11597.668 11731.271 12095.300 11483.532 11268.881 11914.799 11204.563 11126.363
    1998 10336.304 12583.285 11599.816 12083.593 11166.884 10895.630 10268.683 10098.754 10686.143 10164.054 11049.034 11118.538
    1999 10633.808 10469.968 11259.727 11521.657 11279.921 12136.241 12038.471 11826.267 11897.204 12855.674 13442.003 13389.032
    2000 13967.572 14213.853 13937.709 13547.764 14453.674 14438.249 14808.833 15380.270 15045.887 14574.670 14191.998 13408.095
    2001 14521.690 14974.141 13643.289 12144.169 13140.511 12242.825 11670.590 12238.364 12375.361 11552.275 11692.289 10666.697
    2002 13071.178 12360.311 12799.507 13209.616 13995.894 12206.989 13722.447 14519.282 13820.397 14418.478 14388.457 13452.556
    2003 16445.296 14955.158 14854.494 15750.498 14492.519 14822.034 15808.738 15992.270 16922.676 18093.678 17272.033 17662.549
    2004 21805.189 21458.595 20452.878 21524.226 20573.658 20503.049 21516.953 20593.492 20710.700 21662.414 21849.473 20767.817
    2005 25788.107 22878.681 23137.922 22916.943 22835.364 22452.638 23803.653 24284.127 24385.299 24247.685 24517.219
    plot(adj_series)
    

    자기상관과 다중 시계열

    geyser$waiting
    
    <ol class=list-inline>
  • 80
  • 71
  • 57
  • 80
  • 75
  • 77
  • 60
  • 86
  • 77
  • 56
  • 81
  • 50
  • 89
  • 54
  • 90
  • 73
  • 60
  • 83
  • 65
  • 82
  • 84
  • 54
  • 85
  • 58
  • 79
  • 57
  • 88
  • 68
  • 76
  • 78
  • 74
  • 85
  • 75
  • 65
  • 76
  • 58
  • 91
  • 50
  • 87
  • 48
  • 93
  • 54
  • 86
  • 53
  • 78
  • 52
  • 83
  • 60
  • 87
  • 49
  • 80
  • 60
  • 92
  • 43
  • 89
  • 60
  • 84
  • 69
  • 74
  • 71
  • 108
  • 50
  • 77
  • 57
  • 80
  • 61
  • 82
  • 48
  • 81
  • 73
  • 62
  • 79
  • 54
  • 80
  • 73
  • 81
  • 62
  • 81
  • 71
  • 79
  • 81
  • 74
  • 59
  • 81
  • 66
  • 87
  • 53
  • 80
  • 50
  • 87
  • 51
  • 82
  • 58
  • 81
  • 49
  • 92
  • 50
  • 88
  • 62
  • 93
  • 56
  • 89
  • 51
  • 79
  • 58
  • 82
  • 52
  • 88
  • 52
  • 78
  • 69
  • 75
  • 77
  • 53
  • 80
  • 55
  • 87
  • 53
  • 85
  • 61
  • 93
  • 54
  • 76
  • 80
  • 81
  • 59
  • 86
  • 78
  • 71
  • 77
  • 76
  • 94
  • 75
  • 50
  • 83
  • 82
  • 72
  • 77
  • 75
  • 65
  • 79
  • 72
  • 78
  • 77
  • 79
  • 75
  • 78
  • 64
  • 80
  • 49
  • 88
  • 54
  • 85
  • 51
  • 96
  • 50
  • 80
  • 78
  • 81
  • 72
  • 75
  • 78
  • 87
  • 69
  • 55
  • 83
  • 49
  • 82
  • 57
  • 84
  • 57
  • 84
  • 73
  • 78
  • 57
  • 79
  • 57
  • 90
  • 62
  • 87
  • 78
  • 52
  • 98
  • 48
  • 78
  • 79
  • 65
  • 84
  • 50
  • 83
  • 60
  • 80
  • 50
  • 88
  • 50
  • 84
  • 74
  • 76
  • 65
  • 89
  • 49
  • 88
  • 51
  • 78
  • 85
  • 65
  • 75
  • 77
  • 69
  • 92
  • 68
  • 87
  • 61
  • 81
  • 55
  • 93
  • 53
  • 84
  • 70
  • 73
  • 93
  • 50
  • 87
  • 77
  • 74
  • 72
  • 82
  • 74
  • 80
  • 49
  • 91
  • 53
  • 86
  • 49
  • 79
  • 89
  • 87
  • 76
  • 59
  • 80
  • 89
  • 45
  • 93
  • 72
  • 71
  • 54
  • 79
  • 74
  • 65
  • 78
  • 57
  • 87
  • 72
  • 84
  • 47
  • 84
  • 57
  • 87
  • 68
  • 86
  • 75
  • 73
  • 53
  • 82
  • 93
  • 77
  • 54
  • 96
  • 48
  • 89
  • 63
  • 84
  • 76
  • 62
  • 83
  • 50
  • 85
  • 78
  • 78
  • 81
  • 78
  • 76
  • 74
  • 81
  • 66
  • 84
  • 48
  • 93
  • 47
  • 87
  • 51
  • 78
  • 54
  • 87
  • 52
  • 85
  • 58
  • 88
  • 79
  • </ol>
    par(mfrow = c(2,2))
    library(MASS)
    plot(geyser$waiting)
    acf(geyser$waiting)
    plot(geyser$waiting)
    acf(geyser$duration)
    
    round(acf(geyser$waiting)$acf[1:5],3)
    round(acf(geyser$duration)$acf[1:5],3)
    
    <ol class=list-inline>
  • 1
  • -0.702
  • 0.547
  • -0.445
  • 0.386
  • </ol>
    <ol class=list-inline>
  • 1
  • -0.657
  • 0.553
  • -0.398
  • 0.346
  • </ol>

    waiting과 duration 사이의 관계는 어떨까? 이것은 다음과 같이 정의되는 교차상관함수(CCF)로 알 수 있다.

    ccf(geyser$waiting, geyser$duration)
    
    round(cbind(ccf(geyser$waiting, geyser$duration)$lag, ccf(geyser$waiting, geyser$duration)$acf), 3)
    
    A matrix: 43 × 2 of type dbl
    -21 0.038
    -20 -0.023
    -19 -0.005
    -18 0.009
    -17 0.000
    -16 0.009
    -15 0.046
    -14 -0.079
    -13 0.146
    -12 -0.166
    -11 0.190
    -10 -0.188
    -9 0.179
    -8 -0.192
    -7 0.189
    -6 -0.196
    -5 0.213
    -4 -0.270
    -3 0.365
    -2 -0.425
    -1 0.557
    0 -0.645
    1 0.886
    2 -0.664
    3 0.562
    4 -0.431
    5 0.368
    6 -0.308
    7 0.249
    8 -0.213
    9 0.201
    10 -0.188
    11 0.153
    12 -0.203
    13 0.227
    14 -0.194
    15 0.139
    16 -0.146
    17 0.115
    18 -0.045
    19 0.041
    20 -0.008
    21 0.038
    par(mfrow = c(1,2))
    plot(geyser$duration, geyser$waiting)
    waiting_1 <- c(geyser$waiting[2:299], NA)
    plot(waiting_1 ~ geyser$duration)
    

    주가 사례: 임의보행

    library(foreign)
    
    ee <- read.spss('dataset/EDA/EEstock2000.sav')
    x <- ee$change
    
    par(mfrow = c(1,2))
    plot(x, type = 'l', ylim = c(-15, 15))
    acf(x, ylim = c(-1, 1))
    
    par(mfrow = c(1,2))
    m <- mean(x)
    sd <- sd(x)
    hist(x, freq=F, nclass = 20, main = 'Daily Stock Change')
    curve(dnorm(x, m, sd), add = T)
    
    ms <- read.spss('dataset/EDA/MSstock2000.sav')
    x <- ms$change
    m <- mean(x)
    sd <- sd(x)
    hist(x, freq = F, nclass = 20, xlim = c(-15, 15), main = 'Daily Stock Change')
    curve(dnorm(x, m, sd), add = T)
    

    Ch.9 로버스트 선형회귀

    set.seed(1234567)
    x <- seq(1,10)
    y <- 2.5 + 0.5*x + rnorm(10,0,1)
    y[10] <- -10
    par(mfrow=c(1,2))
    plot(y~x)
    library(MASS)
    m0 <- lm(y ~ x)
    m1 <- rlm(y ~ x)
    m2 <- lqs(y ~ x)
    plot(y ~ x)
    abline(m0$coef)
    abline(m1$coef, lty = 'dotted', col = 'blue')
    abline(m2$coef, lty = 'dotted', col = 'red')
    

    Ch.10 이변량 자료 탐색

    par(mfrow = c(1,2))
    library(MASS)
    data(geyser)
    hist(geyser$duration)
    
    density(geyser$duration)
    
    Call:
    	density.default(x = geyser$duration)
    
    Data: geyser$duration (299 obs.);	Bandwidth 'bw' = 0.3304
    
           x                 y            
     Min.   :-0.1578   Min.   :0.0000454  
     1st Qu.: 1.4919   1st Qu.:0.0070880  
     Median : 3.1417   Median :0.0815875  
     Mean   : 3.1417   Mean   :0.1513899  
     3rd Qu.: 4.7914   3rd Qu.:0.2768205  
     Max.   : 6.4411   Max.   :0.5154276  
    hist(geyser$duration, freq = F)
    lines(density(geyser$duration), lty = 2)
    
    ker <- function(n
    
    geyser$duration %>% length()
    
    299
    1/299 * sum(
    
    d <- density(rnorm(10000))
    
    plot(d)
    
    approx(d$x, d$y, xout = c(-2, 0, 2))
    
    $x
    <ol class=list-inline>
  • -2
  • 0
  • 2
  • </ol>
    $y
    <ol class=list-inline>
  • 0.050900899026136
  • 0.402491511167809
  • 0.0592883888354947
  • </ol>
    d$x
    
    <ol class=list-inline>
  • -4.34657395650395
  • -4.32943776420608
  • -4.31230157190821
  • -4.29516537961034
  • -4.27802918731248
  • -4.26089299501461
  • -4.24375680271674
  • -4.22662061041888
  • -4.20948441812101
  • -4.19234822582314
  • -4.17521203352528
  • -4.15807584122741
  • -4.14093964892954
  • -4.12380345663167
  • -4.10666726433381
  • -4.08953107203594
  • -4.07239487973807
  • -4.05525868744021
  • -4.03812249514234
  • -4.02098630284447
  • -4.0038501105466
  • -3.98671391824874
  • -3.96957772595087
  • -3.952441533653
  • -3.93530534135514
  • -3.91816914905727
  • -3.9010329567594
  • -3.88389676446153
  • -3.86676057216367
  • -3.8496243798658
  • -3.83248818756793
  • -3.81535199527007
  • -3.7982158029722
  • -3.78107961067433
  • -3.76394341837646
  • -3.7468072260786
  • -3.72967103378073
  • -3.71253484148286
  • -3.695398649185
  • -3.67826245688713
  • -3.66112626458926
  • -3.64399007229139
  • -3.62685387999353
  • -3.60971768769566
  • -3.59258149539779
  • -3.57544530309993
  • -3.55830911080206
  • -3.54117291850419
  • -3.52403672620632
  • -3.50690053390846
  • -3.48976434161059
  • -3.47262814931272
  • -3.45549195701486
  • -3.43835576471699
  • -3.42121957241912
  • -3.40408338012125
  • -3.38694718782339
  • -3.36981099552552
  • -3.35267480322765
  • -3.33553861092979
  • -3.31840241863192
  • -3.30126622633405
  • -3.28413003403618
  • -3.26699384173832
  • -3.24985764944045
  • -3.23272145714258
  • -3.21558526484472
  • -3.19844907254685
  • -3.18131288024898
  • -3.16417668795111
  • -3.14704049565325
  • -3.12990430335538
  • -3.11276811105751
  • -3.09563191875965
  • -3.07849572646178
  • -3.06135953416391
  • -3.04422334186604
  • -3.02708714956818
  • -3.00995095727031
  • -2.99281476497244
  • -2.97567857267458
  • -2.95854238037671
  • -2.94140618807884
  • -2.92426999578097
  • -2.90713380348311
  • -2.88999761118524
  • -2.87286141888737
  • -2.85572522658951
  • -2.83858903429164
  • -2.82145284199377
  • -2.8043166496959
  • -2.78718045739804
  • -2.77004426510017
  • -2.7529080728023
  • -2.73577188050444
  • -2.71863568820657
  • -2.7014994959087
  • -2.68436330361083
  • -2.66722711131297
  • -2.6500909190151
  • -2.63295472671723
  • -2.61581853441937
  • -2.5986823421215
  • -2.58154614982363
  • -2.56440995752576
  • -2.5472737652279
  • -2.53013757293003
  • -2.51300138063216
  • -2.4958651883343
  • -2.47872899603643
  • -2.46159280373856
  • -2.44445661144069
  • -2.42732041914283
  • -2.41018422684496
  • -2.39304803454709
  • -2.37591184224923
  • -2.35877564995136
  • -2.34163945765349
  • -2.32450326535562
  • -2.30736707305776
  • -2.29023088075989
  • -2.27309468846202
  • -2.25595849616416
  • -2.23882230386629
  • -2.22168611156842
  • -2.20454991927055
  • -2.18741372697269
  • -2.17027753467482
  • -2.15314134237695
  • -2.13600515007909
  • -2.11886895778122
  • -2.10173276548335
  • -2.08459657318548
  • -2.06746038088762
  • -2.05032418858975
  • -2.03318799629188
  • -2.01605180399402
  • -1.99891561169615
  • -1.98177941939828
  • -1.96464322710041
  • -1.94750703480255
  • -1.93037084250468
  • -1.91323465020681
  • -1.89609845790895
  • -1.87896226561108
  • -1.86182607331321
  • -1.84468988101534
  • -1.82755368871748
  • -1.81041749641961
  • -1.79328130412174
  • -1.77614511182388
  • -1.75900891952601
  • -1.74187272722814
  • -1.72473653493027
  • -1.70760034263241
  • -1.69046415033454
  • -1.67332795803667
  • -1.65619176573881
  • -1.63905557344094
  • -1.62191938114307
  • -1.6047831888452
  • -1.58764699654734
  • -1.57051080424947
  • -1.5533746119516
  • -1.53623841965374
  • -1.51910222735587
  • -1.501966035058
  • -1.48482984276013
  • -1.46769365046227
  • -1.4505574581644
  • -1.43342126586653
  • -1.41628507356867
  • -1.3991488812708
  • -1.38201268897293
  • -1.36487649667506
  • -1.3477403043772
  • -1.33060411207933
  • -1.31346791978146
  • -1.2963317274836
  • -1.27919553518573
  • -1.26205934288786
  • -1.24492315058999
  • -1.22778695829213
  • -1.21065076599426
  • -1.19351457369639
  • -1.17637838139853
  • -1.15924218910066
  • -1.14210599680279
  • -1.12496980450492
  • -1.10783361220706
  • -1.09069741990919
  • -1.07356122761132
  • -1.05642503531346
  • -1.03928884301559
  • -1.02215265071772
  • -1.00501645841985
  • -0.987880266121987
  • -0.97074407382412
  • -0.953607881526253
  • -0.936471689228386
  • 0.999918040430601
  • 1.01705423272847
  • 1.03419042502633
  • 1.0513266173242
  • 1.06846280962207
  • 1.08559900191994
  • 1.1027351942178
  • 1.11987138651567
  • 1.13700757881354
  • 1.15414377111141
  • 1.17127996340927
  • 1.18841615570714
  • 1.20555234800501
  • 1.22268854030287
  • 1.23982473260074
  • 1.25696092489861
  • 1.27409711719648
  • 1.29123330949434
  • 1.30836950179221
  • 1.32550569409008
  • 1.34264188638794
  • 1.35977807868581
  • 1.37691427098368
  • 1.39405046328154
  • 1.41118665557941
  • 1.42832284787728
  • 1.44545904017515
  • 1.46259523247301
  • 1.47973142477088
  • 1.49686761706875
  • 1.51400380936662
  • 1.53114000166448
  • 1.54827619396235
  • 1.56541238626022
  • 1.58254857855808
  • 1.59968477085595
  • 1.61682096315382
  • 1.63395715545168
  • 1.65109334774955
  • 1.66822954004742
  • 1.68536573234529
  • 1.70250192464315
  • 1.71963811694102
  • 1.73677430923889
  • 1.75391050153675
  • 1.77104669383462
  • 1.78818288613249
  • 1.80531907843036
  • 1.82245527072822
  • 1.83959146302609
  • 1.85672765532396
  • 1.87386384762183
  • 1.89100003991969
  • 1.90813623221756
  • 1.92527242451543
  • 1.94240861681329
  • 1.95954480911116
  • 1.97668100140903
  • 1.99381719370689
  • 2.01095338600476
  • 2.02808957830263
  • 2.0452257706005
  • 2.06236196289836
  • 2.07949815519623
  • 2.0966343474941
  • 2.11377053979196
  • 2.13090673208983
  • 2.1480429243877
  • 2.16517911668557
  • 2.18231530898343
  • 2.1994515012813
  • 2.21658769357917
  • 2.23372388587703
  • 2.2508600781749
  • 2.26799627047277
  • 2.28513246277064
  • 2.3022686550685
  • 2.31940484736637
  • 2.33654103966424
  • 2.3536772319621
  • 2.37081342425997
  • 2.38794961655784
  • 2.40508580885571
  • 2.42222200115357
  • 2.43935819345144
  • 2.45649438574931
  • 2.47363057804717
  • 2.49076677034504
  • 2.50790296264291
  • 2.52503915494078
  • 2.54217534723864
  • 2.55931153953651
  • 2.57644773183438
  • 2.59358392413224
  • 2.61072011643011
  • 2.62785630872798
  • 2.64499250102585
  • 2.66212869332371
  • 2.67926488562158
  • 2.69640107791945
  • 2.71353727021731
  • 2.73067346251518
  • 2.74780965481305
  • 2.76494584711092
  • 2.78208203940878
  • 2.79921823170665
  • 2.81635442400452
  • 2.83349061630238
  • 2.85062680860025
  • 2.86776300089812
  • 2.88489919319599
  • 2.90203538549385
  • 2.91917157779172
  • 2.93630777008959
  • 2.95344396238745
  • 2.97058015468532
  • 2.98771634698319
  • 3.00485253928106
  • 3.02198873157892
  • 3.03912492387679
  • 3.05626111617466
  • 3.07339730847252
  • 3.09053350077039
  • 3.10766969306826
  • 3.12480588536613
  • 3.14194207766399
  • 3.15907826996186
  • 3.17621446225973
  • 3.19335065455759
  • 3.21048684685546
  • 3.22762303915333
  • 3.2447592314512
  • 3.26189542374906
  • 3.27903161604693
  • 3.2961678083448
  • 3.31330400064266
  • 3.33044019294053
  • 3.3475763852384
  • 3.36471257753627
  • 3.38184876983413
  • 3.398984962132
  • 3.41612115442987
  • 3.43325734672773
  • 3.4503935390256
  • 3.46752973132347
  • 3.48466592362134
  • 3.5018021159192
  • 3.51893830821707
  • 3.53607450051494
  • 3.5532106928128
  • 3.57034688511067
  • 3.58748307740854
  • 3.60461926970641
  • 3.62175546200427
  • 3.63889165430214
  • 3.65602784660001
  • 3.67316403889787
  • 3.69030023119574
  • 3.70743642349361
  • 3.72457261579148
  • 3.74170880808934
  • 3.75884500038721
  • 3.77598119268508
  • 3.79311738498294
  • 3.81025357728081
  • 3.82738976957868
  • 3.84452596187655
  • 3.86166215417441
  • 3.87879834647228
  • 3.89593453877015
  • 3.91307073106801
  • 3.93020692336588
  • 3.94734311566375
  • 3.96447930796162
  • 3.98161550025948
  • 3.99875169255735
  • 4.01588788485522
  • 4.03302407715308
  • 4.05016026945095
  • 4.06729646174882
  • 4.08443265404669
  • 4.10156884634455
  • 4.11870503864242
  • 4.13584123094029
  • 4.15297742323815
  • 4.17011361553602
  • 4.18724980783389
  • 4.20438600013176
  • 4.22152219242962
  • 4.23865838472749
  • 4.25579457702536
  • 4.27293076932322
  • 4.29006696162109
  • 4.30720315391896
  • 4.32433934621683
  • 4.34147553851469
  • 4.35861173081256
  • 4.37574792311043
  • 4.39288411540829
  • 4.41002030770616
  • </ol>

    [^1] 로버스트(robust) 한 통계량은 이상치/에러값으로 부터 영향을 크게 받지 않는 (건장한) 통계량