4

分析が必要な高頻度の商品価格データがあります。私の目的は、季節的な要素を想定せず、トレンドを特定することです。ここで R の問題に遭遇します。この時系列を分析するために私が知っている主な関数は 2 つあります。decompose() と stl() です。問題は、どちらも 2 以上の周波数パラメータを持つ ts オブジェクト型を取ることです。単位時間あたり 1 の周波数を想定し、R を使用してこの時系列を分析する方法はありますか? 残念ながら、頻度が単位時間あたり 1 を超えると仮定し、頻度パラメーターを使用して季節性を計算すると、私の予測はその仮定に依存することになります。

names(crude.data)=c('Date','Time','Price')
names(crude.data)
freq = 2
win.graph()
plot(crude.data$Time,crude.data$Price, type="l")
crude.data$Price = ts(crude.data$Price,frequency=freq) 

周波数を単位時間あたり 1 にしたいのですが、decompose() と stl() が機能しません!

dim(crude.data$Price)
decom = decompose(crude.data$Price)
win.graph()
plot(decom$random[2:200],type="line")
acf(decom$random[freq:length(decom$random-freq)])

ありがとうございました。

4

1 に答える 1

16

stl()decompose()はどちらも季節分解用であるため、季節成分が必要です。傾向を推定したいだけなら、ノンパラメトリック平滑化法で十分です。例えば:

fit <- loess(crude.data$Price ~ crude.data$Time)
plot(cbind(observed=crude.data$Price,trend=fit$fitted,random=fit$residuals),main="")
于 2010-03-29T06:10:37.027 に答える