予め、読み込み済みのデータを使います。
library(dplyr)
library(ggplot2)
ds %>% tail(n=3)
## date sinkann saisin zenkannjya jitukannjya
## 51 2015-02-01 97 948 1045 853
## 52 2015-03-01 104 1065 1169 910
## 53 2015-04-01 101 1028 1129 909
元データは、データフレーム型です。 teramonagi先生が、xtsが便利と申されていたので…
ここを参考に
http://www.slideshare.net/teramonagi/tokyo-r15-20110702
library(zoo)
library(xts)
ds1 <- as.xts(read.zoo(ds))
ds1 %>% class
## [1] "xts" "zoo"
ds1 %>% tail(n=3)
## sinkann saisin zenkannjya jitukannjya
## 2015-02-01 97 948 1045 853
## 2015-03-01 104 1065 1169 910
## 2015-04-01 101 1028 1129 909
xts変換後は、rownamesが日付になっています。
ds1["2014-04-01::2014-06-01"]
## sinkann saisin zenkannjya jitukannjya
## 2014-04-01 109 780 889 703
## 2014-05-01 90 896 986 776
## 2014-06-01 114 862 976 766
とか、
ds1["2014-04-01::"]
ds1["::2014-04-01"]
とか、日付を指定できます。
欠損値補間とか、年ごとに集計とかいろいろできるそうです。
次はプロットしてみましょう。
plot.zoo(ds1, col = c("red", "blue","green","yellow"), plot.type = "single")
ここから時系列解析。
元データの月毎の実患者数をts型に変更。
ds$jitukannjya
## [1] 183 187 211 206 195 238 251 235 235 325 342 439 409 475
## [15] 414 482 389 397 433 459 432 409 537 669 723 650 583 611
## [29] 621 672 613 589 574 624 738 873 872 845 785 870 703 776
## [43] 766 765 692 746 878 901 1171 861 853 910 909
test<-ts(ds$jitukannjya,start=c(2010,12),frequency=12)
test
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2010 183
## 2011 187 211 206 195 238 251 235 235 325 342 439 409
## 2012 475 414 482 389 397 433 459 432 409 537 669 723
## 2013 650 583 611 621 672 613 589 574 624 738 873 872
## 2014 845 785 870 703 776 766 765 692 746 878 901 1171
## 2015 861 853 910 909
library(forecast)
seasonplot(test,col=rainbow(12),season.labels = T, year.labels = T,year.labels.left = T,cex=0.8)
まだ開院して5年弱なので、増患傾向かな。
acf(test)
plot(decompose(test))
夏に減患する季節変動は、どこの施設も同じかな…
plot(forecast(test, level = c(95), h = 20))
forecast(test, level = c(95), h = 12)
## Point Forecast Lo 95 Hi 95
## May 2015 886.7542 763.3447 1010.1637
## Jun 2015 874.8864 748.0942 1001.6787
## Jul 2015 831.3220 705.0934 957.5506
## Aug 2015 748.7794 629.0570 868.5018
## Sep 2015 844.6148 701.8590 987.3705
## Oct 2015 964.7878 791.9377 1137.6380
## Nov 2015 1086.4250 879.7493 1293.1008
## Dec 2015 1167.6695 931.6017 1403.7373
## Jan 2016 1097.7165 861.8277 1333.6053
## Feb 2016 1018.1178 785.6546 1250.5810
## Mar 2016 1047.4981 793.5695 1301.4266
## Apr 2016 945.1933 702.1872 1188.1995
今年の冬は、1000人超が続きそうなので、看護師さん増やさないと…
時系列解析のお話は、
ここのサイトがわかりやすいので、参考に。
http://logics-of-blue.com/時系列解析_理論編/
もう少し勉強しないと…
わからないことが多すぎる。
でも、いろいろ使えそうです。