家計調査時系列1

xts、TTR、gdata パッケージ

家計調査(家計収支編) 時系列データ(二人以上の世帯)

二人以上の世帯

http://www.stat.go.jp/data/kakei/longtime/zuhyou/zenh12-n.xls
http://www.stat.go.jp/data/kakei/longtime/zuhyou/zenh17-n.xls
http://www.stat.go.jp/data/kakei/longtime/zuhyou/zenh22-n.xls
http://www.stat.go.jp/data/kakei/longtime/zuhyou/zenh27-n.xls

をダウンロードする。

何度も行う手順を関数化

消費支出の抽出->コンマの削除->tsクラス->xtsクラス
y<-x[1,-c(1:15)]を編集することで抽出する項目を指定できる

1
2
3
4
5
6
7
8
9
10
11
xtscl<-function(x,start){
library(xts)
y<-x[1,-c(1:15)]
#コンマを取り除く
for (i in 1:ncol(y)) {
y[,i]<-as.numeric(gsub(",","",y[,i]))
}
#転置する
z<-as.xts(ts(na.omit(t(y)),start=start,freq=12))
return(z)
}

read.xls関数 1行目に消費支出がくるようにskipする行を調整。

1
2
3
4
5
6
7
8
9
10
11
12
library(xts)
library(gdata)
#支出金額はsheet=1
zenh2000<-read.xls("zenh12-n.xls",sheet=1,skip=23,header=F)
zenh2005<-read.xls("zenh17-n.xls",sheet=1,skip=23,header=F)
zenh2010<-read.xls("zenh22-n.xls",sheet=1,skip=23,header=F)
zenh2000.xts<-xtscl(zenh2000,2000)
zenh2005.xts<-xtscl(zenh2005,2005)
zenh2010.xts<-xtscl(zenh2010,2010)
#上の3つは連結して保存
#kakei2000_2014en.xts<-#rbind(zenh2000.xts,zenh2005.xts,zenh2010.xts)
#save("kakei2000_2014en.xts",file="kakei2000_2014en.dat")

kakei2000_2014en.dat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#load("kakei2000_2014en.dat")
zenh2015<-read.xls("zenh27-n.xls",sheet=1,skip=23,header=F)
#2015/1 のデータだけ上の関数はNG
y<-zenh2015[1,-c(1:15)]
y<-as.numeric(gsub(",","",y))
zenh2015.xts<-as.xts(ts(y,start=2015,freq=12))
kakei2000_2015en.xts<-rbind(kakei2000_2014en.xts,zenh2015.xts)
library(TTR)
#plot.zoo+linesではlinesの線がひけない。par(new=T)を使う
#今回はplot.xtsを使う。
#png("kakei2000_2015en.png",width=1000,height=800)
plot(kakei2000_2015en.xts[,1],main="家計調査時系列 2000-2015.1 消費支出")
lines(SMA(kakei2000_2015en.xts[,1],n=12),col="red",lwd=2)
#dev.off()

1世帯当たり1か月間の支出の対前年同月実質増減率(%)はsheet=3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
library(xts)
library(gdata)
#実質増減率はsheet=3
zenh2000<-read.xls("zenh12-n.xls",sheet=3,skip=23,header=F)
zenh2005<-read.xls("zenh17-n.xls",sheet=3,skip=23,header=F)
zenh2010<-read.xls("zenh22-n.xls",sheet=3,skip=23,header=F)
zenh2015<-read.xls("zenh27-n.xls",sheet=3,skip=23,header=F)
#zenh2000はstart=2001
zenh2000.xts<-xtscl(zenh2000,2001)
zenh2005.xts<-xtscl(zenh2005,2005)
zenh2010.xts<-xtscl(zenh2010,2010)
#データ数1つは上の関数はNG
y<-zenh2015[1,-c(1:15)]
y<-as.numeric(gsub(",","",y))
zenh2015.xts<-as.xts(ts(y,start=2015,freq=12))
zenh2000_2015.xts<-rbind(zenh2000.xts,zenh2005.xts,zenh2010.xts,zenh2015.xts)
#png("kakei2000_2015z.png",width=1000,height=800)
plot.zoo(zenh2000_2015.xts,type="h",lwd=3,main="1世帯当たり1か月間の支出の対前年同月実質増減率(%)2001-2015.1",xlab="",ylab="")
#dev.off()