3

x12パッケージで季節調整を自動化しようとしています。これを行うには、tsオブジェクトが必要です。ただし、単純なtsオブジェクトではなく、開始日と頻度が設定されているオブジェクトが必要です。任意のシリーズについて入力できますが、月次または週次のデータを組み合わせて入力します。 からデータをオブジェクトとして取得できますが、quantmodからxta頻度を抽出する方法がわかりませんxtsxts全体を通して機能するサンプル コードを次に示しますが、明示的に設定するのではなく、から周波数情報を取得したいと考えています。

getSymbols("WILACR3URN",src="FRED", from="2000-01-01") # get data as an XTS
lax <- WILACR3URN #shorten name
laxts <- ts(lax$WILACR3URN, start=c(2000,1), frequency=12) #explicitly it works
plot.ts(laxts)
x12out <- x12(laxts,x12path="c:\\x12arima\\x12a.exe",transform="auto", automdl=TRUE)
laxadj  <- as.ts(x12out$d11) # extract seasonally adjusted series

助言がありますか?または、それは不可能であり、頻度を明示的に決定/供給する必要がありますか?

ありがとう

4

2 に答える 2

4

これは、この特定のケースではテストされていませんがxts::periodicity、頻度に使用してみてください。

freq <- switch(periodicity(lax)$scale,
  daily=365,
  weekly=52,
  monthly=12,
  quarterly=4,
  yearly=1)

yearオブジェクトの 要素とmon要素を使用してPOSIXlt、開始年と月を計算します。

pltStart <- as.POSIXlt(start(lax))
Start <- c(pltStart$year+1900,pltStart$mon+1)
laxts <- ts(lax$WILACR3URN, start=Start, frequency=freq)
plot.ts(laxts)
于 2013-03-13T18:45:49.587 に答える
0

xts::periodicity の提案は役に立ちました。また、xts::convertIndex を使用した次のアプローチが、月次および四半期ごとのデータに適していることもわかりました。週次データではテストされていません。

require("quantmod")
require("dplyr")
getSymbols("WILACR3URN",src="FRED", from="2000-01-01") # get data as an XTS
lax <- WILACR3URN #shorten name
laxts <- lax %>%
  convertIndex("yearmon") %>% # change index of xts object
  as.ts(start = start(.), end = end(.)) # convert to ts
plot.ts(laxts)
于 2015-11-06T14:01:21.623 に答える