2016-07-22 5 views
1

私はいくつかのMAを計算しようとしていますR.には本当に新しいです[n]はR. での予測はここに私のコードは、ある入れて結果::行列と計算RMSEなどミリアンペア()

# simple reproducible example 
set.seed(0); factory <- round(rnorm(84), 1) 
library(forecast) 
factory.ts <- ts(factory, start = 1947, frequency = 12) 
fit_EMA <- ma(factory.ts, order=5) 

正常に動作します。以下は、Rコンソールでfit_EMAのようなものです。しかし、私はフォーマットを好きではないので、私はそれらのフィッティングされたポイントを引き続き使用する方法を見つけることができませんでした。たとえば、行や列を抽出するにはどうすればよいですか?

 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
1947 NA NA 0.80 0.24 0.12 -0.20 -0.46 -0.06 0.40 0.42 0.26 0.20 
1948 -0.34 -0.58 -0.36 -0.32 -0.18 -0.36 -0.32 -0.30 -0.10 -0.02 0.20 0.34 
1949 0.48 0.32 -0.10 -0.08 -0.22 -0.54 -0.48 -0.34 -0.20 0.08 0.38 0.38 
1950 0.74 0.54 0.66 0.58 0.56 0.16 -0.02 -0.60 -1.04 -0.70 -0.38 -0.18 
1951 0.10 0.34 0.58 0.26 0.28 0.28 0.48 -0.04 -0.32 -0.56 -0.54 -0.66 
1952 -0.80 -0.38 -0.28 -0.32 -0.60 -0.34 -0.28 -0.10 -0.14 0.20 0.00 -0.06 
1953 0.06 0.28 0.24 0.34 0.18 -0.24 -0.62 -0.38 -0.20 -0.06 NA NA 

また、RMSEやその他のエラーメソッドを計算するにはどうすればよいですか? forecast::maまたはTTR::SMATTR::EMAは、要約で計算されたエラー対策を示していません。あるいは、私はライブラリ関数を見逃しましたか?

+0

1. 'dput(factory)'を実行して結果を質問に追加できますか? 2.パッケージは 'ma'をもたらしますか? 3. 'factory.ts'または' fit_EMA'を表示しましたか? – Qaswed

答えて

1

forecast::ma()の結果は、常に"ts"オブジェクトです。 fit_EMAは、それをスクリーンに印刷するときに行列として表示されますが(frequence = 12なので、12個の列があります)、基本的にベクトルです。 str(fit_EMA)を使用して検査することができます。あなたは行うことができます

mat <- matrix(fit_EMA, ncol = 12, byrow = TRUE) 

マトリックスを取得する。その後、mat[1, ]は、最初の年(1947年)の適合値を返します。

RMSEの取得は非常に簡単で、関数/ライブラリルーチンは不要です。 Do:

MSE <- mean((fit_EMA - factory.ts)^2, na.rm = TRUE) 
# [1] 0.55876 
RMSE <- sqrt(MSE) 
# [1] 0.7475025