私はデータフレームに基本的な回帰と統計解析のためのいくつかの変数をインポートして格納しました。これらの変数の時系列から、私は自分のDFを構築し、プロット時の明確な参照時間を持つDate変数も付けました。今、私は動的なlm推定のためにDFを時系列に変換する
reg1<-lm(df, ffr ~ cpi + gap)
のような簡単な回帰を実行すると、すべてが期待される結果と正常に動作します
time ffr cpi gap
266 2013-04-01 0.12 0.75 -4.17
267 2013-07-01 0.09 1.90 -3.85
268 2013-10-01 0.09 1.28 -3.34
269 2014-01-01 0.07 1.32 -3.94
270 2014-04-01 0.09 1.98 -3.24
271 2014-07-01 0.09 1.31 -2.60
272 2014-10-01 0.10 -0.02 -2.47
273 2015-01-01 0.11 -0.06 -2.68
274 2015-04-01 0.12 2.02 -2.10
275 2015-07-01 0.13 1.24 -1.98
276 2015-10-01 0.16 0.78 -2.11
:DFは、この(私はランダムな部分を取る)のように広く見えます。しかし、私は、自己回帰的な部分、遅れ、前進を伴って、より滑らかで洗練されたモデルを試してみると、物事がかなり乱雑になり、ウェブ上で見つけた解決策は私の場合はうまくいかないようです。以下にいくつかのexemplesです:どのような実際に起こることは、FFRが遅れずにiteselfに回帰していることであるので、
reg2<-lm(df, ffr ~ cpi + gap + lag(ffr))
これは、完璧なフィット感を提供します。 はその後、私はそれが表示されますので、私は、
df<-xts(df, order.by=df$time)
、その後、実際にスーパー奇妙な結果を与える
reg3<-lm(df, ffr ~ cpi + gap + lag(ffr))
により、他の場所を見つけると、時系列形式のデータフレームを回すものをフォロー - 私の理解で - cpi、gap、ffrのすべての観測値が変数として使用されていること。 zoo
代わりにxts
を使用するときにここ 回帰
Call:
lm(formula = ffr ~ cpi + gap + lag(ffr), data = small2)
Residuals:
ALL 11 residuals are 0: no residual degrees of freedom!
Coefficients: (16 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3 NA NA NA
cpi-0.06 1 NA NA NA
cpi 0.75 2 NA NA NA
cpi 0.78 4 NA NA NA
cpi 1.24 3 NA NA NA
cpi 1.28 -1 NA NA NA
cpi 1.31 -1 NA NA NA
cpi 1.32 -2 NA NA NA
cpi 1.90 -1 NA NA NA
cpi 1.98 -1 NA NA NA
cpi 2.02 2 NA NA NA
gap-2.10 NA NA NA NA
gap-2.11 NA NA NA NA
gap-2.47 NA NA NA NA
gap-2.60 NA NA NA NA
gap-2.68 NA NA NA NA
gap-3.24 NA NA NA NA
gap-3.34 NA NA NA NA
gap-3.85 NA NA NA NA
gap-3.94 NA NA NA NA
gap-4.17 NA NA NA NA
lag(ffr)0.09 NA NA NA NA
lag(ffr)0.10 NA NA NA NA
lag(ffr)0.11 NA NA NA NA
lag(ffr)0.12 NA NA NA NA
lag(ffr)0.13 NA NA NA NA
lag(ffr)0.16 NA NA NA NA
Residual standard error: NA on 0 degrees of freedom
Multiple R-squared: NA, Adjusted R-squared: NA
F-statistic: NA on 10 and 0 DF, p-value: NA
のouputを、次の警告
Warning messages:
1: In model.response(mf, "numeric") :
using type = "numeric" with a factor response will be ignored
2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors
3: In Ops.factor(r, 2) : ‘^’ not meaningful for factors
同じことが当てはまります。次に、データフレームとxts/zooオブジェクトの両方の形式のデータを使用して、dyn
パッケージを試してみましょう。何も動作せず、完璧なフィット感と通常のエラーがそれぞれ得られます。パッケージdynlm
を使用しても何も変わりません。何が起こっているかについてのヒントやアイデアはありますか?
ああ、XTSでorginalデータフレームを変換した後、それは全体の問題は、変換がDFを変換するのに失敗したということであるのであれば、私は疑問に思う。この
time ffr cpi gap
2013-04-01 "2013-04-01" "0.12" " 0.75" "-4.17"
2013-07-01 "2013-07-01" "0.09" " 1.90" "-3.85"
2013-10-01 "2013-10-01" "0.09" " 1.28" "-3.34"
2014-01-01 "2014-01-01" "0.07" " 1.32" "-3.94"
2014-04-01 "2014-04-01" "0.09" " 1.98" "-3.24"
2014-07-01 "2014-07-01" "0.09" " 1.31" "-2.60"
2014-10-01 "2014-10-01" "0.10" "-0.02" "-2.47"
2015-01-01 "2015-01-01" "0.11" "-0.06" "-2.68"
2015-04-01 "2015-04-01" "0.12" " 2.02" "-2.10"
2015-07-01 "2015-07-01" "0.13" " 1.24" "-1.98"
2015-10-01 "2015-10-01" "0.16" " 0.78" "-2.11"
のように見えます。
'dynlm'を使うとうまくいくようです!さまざまな遅れをもって自由に作業することの利便性を保ち、「遅れ」や「L」の式に直接入れるのに対し、「シフト」は柔軟性がありません。最後の1つが私を困惑させる: 'dynlm'では、lag()やL()で遅れているときの出力が異なっています。 – Ceschi
明確にしようとする回答を更新しました。乾杯。 – lrnzcig
ありがとう!ああ、最後の質問: 'シフト'はパッケージの一部でもRで構築されていないのですか? – Ceschi