wordpressより楽だ・・・.
いつもの呪文
library(dplyr)
library(tidyr)
library(magrittr)
library(ggvis)
現実に取得するデータに可逆な変換を施して,分析上’都合のいい’ 形に変換する処理.
比率や確率,0と1に漸近線を持つ時系列データは下記の変換で歪みを 除去できる. \[ z_n = \log \left( \frac{y_n}{1-y_n} \right) \] これをロジット変換という.
* 失業率
* 離職率
などなど
y <- read.table('shitsugyo.txt', header=T, sep='\t')
y <- y/100
y %>%
ggvis(~1:nrow(y),~shitsugyo) %>%
layer_paths()
ロジット変換を行うと0,1付近の歪みを取り除くことができる
logit <- function(y){
return(log(y/(1-y)))
}
y %>%
logit %>%
ggvis(~1:nrow(y),~shitsugyo) %>%
layer_paths()
比率が変化する系列データは対数をとると差の系列に変換できる. 0に漸近するようなデータも変換するかもしれない.
* 物の価格
* 生物の個体数
などなど
data(EuStockMarkets)
head(EuStockMarkets)
## DAX SMI CAC FTSE
## [1,] 1628.75 1678.1 1772.8 2443.6
## [2,] 1613.63 1688.5 1750.5 2460.2
## [3,] 1606.51 1678.6 1718.0 2448.2
## [4,] 1621.04 1684.1 1708.1 2470.4
## [5,] 1618.16 1686.6 1723.1 2484.7
## [6,] 1610.61 1671.6 1714.3 2466.8
EuStockMarkets %>%
as.data.frame %>%
select(DAX) %>%
mutate(x = 1:length(DAX)) -> df
df %>%
ggvis(~x, ~DAX) %>%
layer_paths() %>%
layer_smooths(stroke:='red')
対数変換すると
df %>%
mutate(DAX=log(DAX)) %>%
ggvis(~x, ~DAX) %>%
layer_paths() %>%
layer_smooths(stroke:='red')
傾きを除去することができる.後の章出てくる定常性と関係がある.
df <- df %>%
mutate(logDAX=log(DAX)) %>%
mutate(difflogDAX=c(0,diff(logDAX)))
df %>%
ggvis() %>%
layer_paths(~x,~difflogDAX)
前年同期比を取ることで周期成分が除去できる.
data(UKgas)
UKgas %>%
as.data.frame %>%
ggvis(~1:length(UKgas), ~x) %>%
layer_paths()
y <- c()
for(i in 5:length(UKgas)){
y <- c(y,UKgas[i]/UKgas[i-4])
}
y %>%
data.frame(x=1:length(y)) %>%
ggvis(~x, ~y) %>%
layer_paths() %>%
layer_smooths(stroke := 'red')
ということで今回は前処理の部分を一部抜粋でお送りしました.