decomposeの使い方が分からない

メッセージ

2ちゃんねるの数学板・「= 統計解析フリーソフト R =」スレッドでdecomposeの使い方についてご質問をいただきましたので、矢野から一般的な使い方について回答させていただきます。
http://science3.2ch.net/test/read.cgi/math/1062650510/420-434

回答の要約:decompose(x)とした時には、xはfrequencyを持った時系列データでなければならない(frequencyはtsコマンドで設定する)。そのfrequencyが設定されていない場合、 "Time series has no or less than 3 periods!" というエラーが発生する。対処法としてはtsコマンドを用いて、適切なfrequencyを設定してやればよい。

具体的な手順:
The R bookのCD-ROMに添付された以下のようなデータの場合の具体的な手順を述べる(データはカンマで区切られた、1998年1月から2003年12月までの月次データ)。

 "Date","TOPIX","JGB10Year","IndustrialProduct","EnterprisePrices"
 199801,1267.51,1.765,99.9,102.6
 199802,1272.45,1.66,97.4,102.3 
 199803,1251.7,1.58,95.4,101.9
 199804,1222.98,1.455,94.8,101.6
 199805,1221.49,1.21,94,101.5
 199806,1230.38,1.32,94.1,101.5
 199807,1262.04,1.24,93.9,101.5
 199808,1106.49,1.045,91.9,101.4
 199809,1043.57,0.76,93.3,101.4
 199810,1035.6,0.82,92.8,100.7
 199811,1143.5,1.055,92.4,100.5
 199812,1086.99,2.013,92.2,100.5
 (中略)
 200311,999.75,1.295,98.7,94.8
 200312,989.95,1.36,97.7,95

このデータからTOPIXだけを取り出して、decomposeで季節調整を実行する。

 data <- read.table("JPMacroEcon.csv", sep=",", header=T)
 topix <- data$TOPIX
 topixTs <- ts(topix, frequency=12, start=c(1998,1))
 plot(decompose(topixTs))

まず、1行目でJPMacroEcon.csvというファイルからデータを読み込む。ファイルの形式がカンマ区切りであるからsep=","を設定し、ファイルにヘッダがあるためheader=Tを設定する。2行目でdataからTOPIXだけを取り出し、topixに代入する(この時点ではtopixはただの配列)。3行目でtsコマンドを使ってただの配列であるtopixを時系列オブジェクト(tsオブジェクト)に変換する。この際にfrequencyを設定することが必要(月次データなのでfrequency=12。四半期ならfrequency=4などとなる)。

失敗する場合(frequencyが設定されていない場合):

 data <- read.table("JPMacroEcon.csv", sep=",", header=T)
 topix <- data$TOPIX
 topixTs <- ts(topix,  start=c(1998,1))
 plot(decompose(topixTs))
 Error in decompose(topixTs) : time series has no or less than 3 periods

日次データにおけるfrequencyの設定について:
未だにあまり良い方法が見つかっていません。もし、何か良い方法を見つけられた方がおられましたら、ぜひ教えてください!またとりあえずの方法に関しては以下が役に立つかもしれません。
frequencyについて in 初級Q&A アーカイブ(1)




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:16