連関比率法 Last modified: Aug 04, 2009
目的
連関比率法により,季節指数を計算し,季節調整済みデータを返す。
使用法
SeasonalIndex(x, xlab="", ylab="", main=NULL, lx="bottomright", ly=NULL,
lty1=2, lty2=1, pch1=1, pch2=19, label1="粗データ", label2="季節調整済みデータ")
引数
x 度数分布表
ymax 度数軸の最大値。デフォルトでは sum(x)
sort.flag 度数分布の大きい順に並べ替えるかどうか。デフォルトは TRUE
col 度数を表す矩形の描画色。デフォルトは NULL
density 度数を表す矩形のハッチ。デフォルトは NULL
lwd 累積度数曲線の描画線種。デフォルトは 1
las 軸のラベルの描き方。par 関数の las。デフォルトは 0
main グラフのタイトル
xlab 横軸のラベル
ylab 度数軸のラベル。デフォルトは "度数"
ylab2 累積度数軸のラベル。デフォルトは "累積%"
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/SeasonalIndex.R", encoding="euc-jp")
# 連関比率法
SeasonalIndex <- function( x, # 4 半期ごとのデータベクトル
xlab="", ylab="", main=NULL, # 軸,図のラベル
lx="bottomright", ly=NULL, # legend の位置
lty1=2, lty2=1, # 線種
pch1=1, pch2=19, # マーカー
label1="粗データ", label2="季節調整済みデータ") # ラベル
{
n <- length(x)
y <- matrix(x/c(x[1], x[-n]), 4)
mean1 <- rowMeans(y)
mean2 <- mean1/exp(mean(log(mean1)))
mean2[1] <- 1
chain.index <- cumprod(mean2) # 連鎖指数
seasonal.index <- chain.index/mean(chain.index) # 季節指数
z <- as.vector(x/seasonal.index) # 季節調整済みデータ
plot(1:n, x, type="l", lty=lty1, xlab=xlab, ylab=ylab, main=main)
points(1:n, x, pch=pch1)
lines(1:n, z, lty=lty2)
points(1:n, z, pch=pch2)
legend(lx, ly, legend=c(label1, label2), lty=c(lty1, lty2), pch=c(pch1, pch2))
return(list(seasonal.index=seasonal.index, corrected.data=z))
}
使用例・出力結果例
> AP <- colSums(matrix(t(AirPassengers), 3))
> SeasonalIndex(AP, lx="topleft", xlab="期", ylab="人数")
$seasonal.index
[1] 0.9341869 1.0232490 1.1693645 0.8731996
$corrected.data
[1] 387.5027 376.2525 369.4314 390.5178 408.9117 399.7072 425.8723
[8] 443.1977 506.3226 501.3443 497.7062 542.8312 582.3246 568.7765
[15] 582.3676 637.8840 672.2423 690.9364 661.0428 677.9664 671.1719
[22] 708.5275 730.3112 756.9862 794.2736 834.5965 874.8341 903.5735
[29] 939.8547 982.1657 1003.1089 1011.2236 1040.4770 1099.4392 1142.5009
[36] 1131.4710 1091.8586 1119.9620 1197.2314 1152.0849 1186.0581 1258.7357
[43] 1342.6095 1344.4808 1313.4416 1434.6460 1484.5670 1469.3090
直前のページへ戻る
E-mail to Shigenobu AOKI ( @si.gunma-u.ac.jp )