総称的プロット関数
plot()
は以下のように,時系列オブジェクトに関する多くのメ ソッド関数を持つ.通常これらは総称的関数plot()
に隠されており,特に特殊な指定を 必要としない限り,ユーザーが個別に使う必要は無い.したがって,ここでは個別の紹介 はしないことにする.> methods(plot)
[1] plot.HoltWinters* plot.POSIXct plot.POSIXlt [4] plot.TukeyHSD plot.acf* plot.data.frame [7] plot.decomposed.ts* plot.default plot.dendrogram*
[10] plot.density plot.factor plot.formula [13] plot.function plot.hclust* plot.histogram
[16] plot.isoreg* plot.lm plot.mlm
[19] plot.ppr* plot.prcomp* plot.princomp*
[22] plot.profile.nls* plot.spec plot.spec.coherency [25] plot.spec.phase plot.spec1* plot.stl*
[28] plot.table plot.ts plot.tskernel*
Non-visible functions are asterisked
4.9.1 時系列のラグプロット lag.plot()
時系列をそのラグ版に対してプロットする.自己相関が低い場合でも,「自己従属性を」
を可視化するのに役立つ.
書式:
lag.plot(x, lags = 1, layout = NULL, set.lags = 1:lags, main = NULL, asp = 1,
font.main=par("font.main"), cex.main=par("cex.main"), diag = TRUE, diag.col="gray", type="p", oma =NULL, ask = NULL, do.lines = n <= 150, labels = do.lines, ...)
引数:
x
一(
多)
変量時系列lags
必要とするラグプロットの数.引数set.lags
を参照layout
多重プロットのレイアウト.典型的にはpar()
のmfrow
引数.既定では全てのプロットが一枚に収まる正方形レイアウト
(
関数n2mfrow()
を利用)
set.lags
正整数のベクトルで,使われるラグの集まりの指定を可能にする.既定値は
1:lags
main
各図表のトップに置かれる主ヘッダータイトルの文字列asp
縦横比( plot.default()
を見よ)
font.main,cex.main
タイトルに対する属性( par()
を見よ) diag
論理値.対角線x=y
を引くか?diag.col
対角線を引く場合のその色指定type
使われるプロットの種類.意味に付いてはplot.ts()
を参照oma
周辺余白( par()
を参照)
ask
論理値.もし真なら,新しい画面を始める前に問い合わせがあるdo.lines
論理値で,線を引くかどうかを指定するlabels
論理値で,ラベルを描くかどうかを指定する... plot.ts()
に対する追加引数これは
S
版よりもより柔軟で,異なった既定動作を持つ.内部的な一貫性からhead =
の代わりにmain =
を使う.実際の作業を行うplot.ts()
関数も参考にしよう.# New Havenの平均気温データnhtempを使用(以下の図を参照)
> lag.plot(nhtemp, 8, diag.col = "forest green")
> lag.plot(nhtemp, 5, main="Average Temperatures in New Haven")
# 複数画面の場合は切替える前に問い合わせをする(以下の図を参照)
> lag.plot(nhtemp, 6, layout = c(2,1), asp = NA,
main = "New Haven Temperatures", col.main = "blue")
# 四半期毎の歳入時系列(4変量時系列)freenyを使用(以下の図を参照)
> lag.plot(freeny.x, lag = 3) # 多変量時系列(しかし非定常)
# 太陽黒点数データsunspotsを使用.長いので線を引かない(以下の図を参照)
> lag.plot(sunspots,set=1:4,pch=".",col="gold") # 原データ
> lag.plot(sqrt(sunspots),set=1:4,pch=".",col="gold") # 平方根を取る
# 対数を取る(0データがあるので1を加えておく)
> lag.plot(log(sunspots+1), set = 1:4, pch = ".", col = "gold")
lag 1
lag quarterly revenue
12345 6 78 9
101112 13 1415
16 17 181920212223
242526 272829
3031 32 33
3536343738 8.8 9.0 9.2 9.4 9.6 9.8
8.89.09.29.49.69.8
lag 2
lag quarterly revenue
1234 5 6 789
10111213 1415
1617 18192021
2223 242526
27 28293031
32 33 34353637
lag 3
lag quarterly revenue
12345 6 78 9
10111213 1415
1617 18192021
2223 242526
272829 3031 32 33 343536 8.8 9.0 9.2 9.4 9.6 9.8
lag 1
price index
21 3 4 5 9678 1110 121314 1615 17 1918 2120 22 23 2524 2627 2928 30 31 3332 34 35 36 37
38 4.34.44.54.64.7
lag 2
price index
21 3 4 5 867 109 11 1312 1514 1716 1918 2120 22 23 2524 2726 2928 30 31 3233 34 35 36 37
lag 3
price index
21 34 5 76 8 10119 1312 1514 1716 1918 2120 22 23 2425 2726 2928 30 31 3332 34 35 36
4.34.44.54.64.7
lag 1
income level
123 4567
8 9 101112
13 14 151617
181920 21222324252627282930313233
34 35 36 3738
5.96.06.16.2
lag 2
income level
123 4567
8 9 101112
13 14 151617
181920 212223242526272829
3031323334 35 3637
lag 3
income level
1 234567 8 9 101112
13 14 15 1617 181920
212223242526272829303132 33 34 35 36
lag 1
market potential
123456 78 910
1112 1314
1516171819 202122
23 2425 26
2728 2930
3132333435 363738
13.0013.0513.1013.15
lag 2
market potential
123456 78
910 1112
1314 1516171819
202122 2324 2526
2728 2930
31323335343637
12.9513.0013.0513.10 13.15
lag 3
market potential
123456 78
910 1112
1314 1516171819
20212223242526 2728
2930 313233
343536
13.0013.0513.1013.15
lag 1
sunspots050100150200250
0 50 100 150 200 250
lag 2
sunspots
lag 3
sunspots
lag 4
sunspots 050100150200250
0 50 100 150 200 250
ラグプロット.四半期毎の歳入データ(左,4系列毎にラグ3まで).太陽黒点数データ (右,原データ,ラグ4まで).
lag 1
sqrt(sunspots)
051015
0 5 10 15
lag 2
sqrt(sunspots)
lag 3
sqrt(sunspots)
lag 4
sqrt(sunspots) 051015
0 5 10 15
lag 1
log(sunspots + 1)0123456
0 1 2 3 4 5
lag 2
log(sunspots + 1)
lag 3
log(sunspots + 1)
lag 4
log(sunspots + 1) 0123456
0 1 2 3 4 5
ラグプロット.太陽黒点数データ(左,平方根変換,ラグ4まで).太陽黒点数データ(右,
対数変換,ラグ4まで)
4.9.2 時系列の季節成分等をプロットする monthplot()
時系列の季節成分
(
または,他の副系列)
をプロットする.各季節(
もしくは他のカテゴ リ)
毎に時系列がプロットされる.現在の作図デバイスにプロットが行われるが,返り値 は無い.書式:
monthplot(x, labels=NULL, times, phase, base, choice, ...)
引数:x
時系列,または関連するオブジェクトlabels
各「季節」に対するラベルtimes
各観測値に対する時間phase
各「季節」に対する指示base
副系列の参考線に対して使われる関数choice stl
またはStructTS
オブジェクトのどの副系列か?...
作図パラメータこの関数は時系列から副系列を取り出し,それを一つの画面にプロットする.
ts(),
stl()
そしてStructTS()
用のメソッドは内部に記録された周波数,開始,終了時間をスケールと季節を設定するために使う.既定のメソッドは,観測値が
12
個毎のグループ になっていると仮定するが,これは変更可能である.labels
が与えられないが,phase
が与えられていると,labels
の既定値はphase
中 のユニークな値となる.もし双方が与えられると,phase
値はlabels
配列中の添字と 仮定される.つまり,それらは1
からlength(labels)
の範囲中にあるべきである.# 炭酸ガス濃度データco2を使用.対数値系列のstl()関数による分解
> fit <- stl(log(co2), s.window = 20, t.window = 20)
> par(mfrow = c(2,2)) # 画面を2x2分割
# 原データ,季節,傾向,残差系列を月別にプロット
> monthplot(co2, ylab = "data", cex.axis = 0.8)
> monthplot(fit, choice = "seasonal", cex.axis = 0.8)
> monthplot(fit, choice = "trend", cex.axis = 0.8)
> monthplot(fit, choice = "remainder", type = "h", cex.axis = 0.8)
> (quarter <- (cycle(co2) - 1) %/% 3) # 12ヵ月を四半期毎にラベル付け Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1959 0 0 0 1 1 1 2 2 2 3 3 3
1960 0 0 0 1 1 1 2 2 2 3 3 3
(以下省略)
> monthplot(co2, phase = quarter) # 四半期毎にプロット
data
JFMA MJ JA SOND
320330340350360 seasonal
J FMAM JJ AS OND
−0.010−0.0050.0000.005
trend
JFMA MJ JA SOND
5.755.805.855.90 remainder
J FMAM JJ AS OND
−0.002−0.0010.0000.0010.002 co2
0 1 2 3
320330340350360
炭酸ガス濃度の対数値系列の副系列のプロッ ト.原データ(左上),季節系列(右上),傾向 系列(左下),残差系列(右下).四半期毎の系 列.横線は副系列の平均値位置を示す
原データ(左上),季節系列(右上),傾向系列 (左下),残差系列(右下).四半期毎の系列.
横線は副系列の平均値位置を示す
4.9.3 複数の時系列を一つの画面にプロット ts.plot()
複数の時系列を一つの画面にプロットする.
plot.ts()
とは異なり,各系列は異なっ た時間情報を持っても良いが,周波数は同じでなければならない.一つの時系列に対して も使えるがplot()
の使用が簡単で好ましい.書式:
ts.plot(..., gpars = list())
引数:...
一つ以上の一変量時系列,もしくは多変量時系列gpars
プロット関数に渡される名前付きの作図パラメータ.普通使われるものを直接...
に置くことができる# 英国の呼吸器疾患死亡者数UKLungDeathsを使用(以下の図を参照)
> ts.plot(ldeaths, mdeaths, fdeaths, # 両性,男性,女性死亡者数を同時プロット gpars=list(xlab="year", ylab="deaths", lty=c(1:3)))
year
deaths
1974 1975 1976 1977 1978 1979 1980
5001000150020002500300035004000
英国の呼吸器疾患死亡者数 上から,両性,男性,女性死亡者数