年次データがあります。データを分割し、各サブセットごとに個別の回帰を実行する必要があります。時系列回帰のデータを分割する
私の場合、Gov支出、経済成長と景気後退のダミー(膨張の場合は1、後退の場合は0)という変数があります。
私のデータの一部を以下に示します。
出力= L1(出力)+ GOV + L1(GOV)
:obs output gov recession <br/>
1 0.00882917 0.039961003 0 <br/>
2 0.015555371 0.229567089 1 <br/>
3 0.023108089 -0.032468535 1 <br/>
4 0.083470801 0.282564584 0 <br/>
5 0.181719693 1.523028403 1 <br/>
6 0.171951664 1.44379044 0 <br/>
7 0.124292839 -0.55404903 0 <br/>
8 0.138767158 -1.446050184 1 <br/>
9 -0.137507301 -0.276697354 1 <br/>
10 -0.07396658 -0.5196439 1 <br/>
11 0.026799992 -0.13379183 0 <br/>
12 0.000107547 -0.053192635 0 <br/>
13 0.017405451 -0.027499262 1 <br/>
14 0.004882142 -0.0077849 0 <br/>
15 -0.017568837 0.030565404 1 <br/>
は、私は、次のモデルを実行する必要があります
この回帰を2回実行する必要があります.recession = 1
と1回、recession = 0
となると1回実行します。問題は遅れです。私はサブセットrecession = 0
のためのモデルを実行すると、2000年recession = 1
にし、2001年recession = 0
で、私は遅れが必要な場合は、2000年
として取られるので、私は `dynlm」パッケージを使用しようとしました。このパッケージによれば、遅延は以下のように書かれる:
"d(x、k)がdiff(x、lag = k)であり、L (x、k)はlag(x、lag = -k)であり、符号の違いに注意する。kのデフォルトはどちらの場合も1である.L()の場合、ベクトル値、 (Y、1:4)」
私はデータフレームに私の変数を入れて、次のコードを実行してみました:
df <- data.frame(ts(output), ts(gov), recession)
model <- dynlm(output ~ lag(output,-1) + gov + lag(gov,-1), data=df, subset = df$recession==1)
summary(model)
をしかし、それは
を言って私にエラーを与えますマッチ(X、テーブル、NOMATCH = NOMATCH、...)でエラー: '試合は' 問題は、私はデータのサブセットとどうなるのベクトル引数
が必要です。データサブセットの最後のオプションを追加しないと、コードが実行され、正しい答えが返されます。 これを行うにはどうすればよいですか?
データのNA値を省略しようとしましたか? 'df < - na.omit(df)' – user5249203
私は欠損値がありません...欠損値は遅れが取られた場合にのみ生成されます! –
Rへの質問は再現可能でなければなりません。質問する方法の詳細については、[mcve]を参照してください。 –