Rを通じて統計学を学ぶ備忘録ブログ

SPSSからRに移行したい私のような人向けのR解説ブログ兼学習用備忘録。

第56回 時系列データの視覚化

第56回は時系列データの視覚化について書きます。よくウェブとか広告効果の分析をしていると、cvとかimpressionとか呼ばれる指標と出会います。現在の仕事では、統計と無関係なので、私は出会いませんが・・・・笑   

この指標は毎日のようにカウントされて具体的な数値として蓄積され続けていきます。その蓄積されたデータをうまく使うことができないでしょうか。こんなときは、データを視覚化することで、大まかな傾向を捉えることができるかもしれません。

■時系列データの視覚化

今回の内容はとても簡単です。数式も出ません。ただ、時系列の折れ線グラフを作成するだけです。以下のような、各広告のimpとcvが蓄積された1年分のデータがあったとします。では、これを図にしていきましょう。

ad.data <- read.csv("ad.data.csv",header=TRUE)

ad.data$date.for.r <- strptime(ad.data$date,"%Y/%m/%d”)

plot(date.for.r, pure.ad.imp,type="b",ylab="pure.ad.imp",xlab="date")

f:id:teruaki-sugiura:20150913005602p:plain

plot(date.for.r,pure.ad.cv,type="l",ylab="pure.ad.cv",xlab="date")

f:id:teruaki-sugiura:20150913005607p:plain

"ad.data$date.for.r <- strptime(ad.data$date,"%Y/%m/%d”) "は何をしているかというと、「date」をRで読み取れるように変換しています。つまり、strptime関数で文字型データを日時型データに変換して、元のデータの右端に追加しています。

さて、図に表すことができました。この図からはまず、以下のことが読み取れます。

・impは年間を通じて平均5000回あたりである

・cvは年間を通じて平均100回あたりである

・impは8月には急激に落ち込んでいる期間がある。 etc...

このように、数字だけを見ていてもわからないことは多々ありますので、とにかく図にすることでなんらかの情報を得ましょう。そして、それを基に仮説を構築し、広告効果が高まるようにしていくことが必要かもしれませんね。

今回は以上です。時系列解析とかは大学院のときにやってませんでしたので、多分ここに書かれることはないだろうなー今後はマルチレベルモデル(一般線形混合モデル)とか階層ベイズ、ブートストラップ、モンテカルロシュミレーションについて書いていこうと思います。

おまけ

data <- read.csv("dat0808.csv", header = TRUE)

#変数dateがfactor型だったので、date型に変換
data$date <- as.Date(data$date)

#基本的な折れ線グラフ
ggplot(data, aes(x = date, y = data.y)) + geom_line()

f:id:teruaki-sugiura:20160807205354p:plain

#1年間に期間を限定し、部分集合を作成
sub.data <- subset(data, date >= as.Date("1967-07-01") & date < as.Date("1969-07-01"))

#seq関数で期間と区切りを決定
datebreaks <- seq(as.Date("1967-07-01"), as.Date("1969-06-01"), by = "1 month")

#区切りをdatebreaksで渡す
g <- ggplot(sub.data, aes(x = date, y = data.y)) + geom_line()
g + scale_x_date(breaks = datebreaks, labels=date_format("%Y %b")) +theme(axis.text.x = element_text(angle = 45, hjust = 1))

f:id:teruaki-sugiura:20160807205356p:plain

広告を非表示にする