編集:以下の回答で提供されているソリューションを実装しようとしています。
私のデータに非常によく適合するため、新しいサンプルデータを提供しています。
> head(Grunfeld, 25)
firm year inv value capital
1 1 1935 317.6 3078.5 2.8
2 1 1936 391.8 4661.7 52.6
3 1 1937 410.6 5387.1 156.9
4 1 1938 257.7 2792.2 209.2
5 1 1939 330.8 4313.2 203.4
6 1 1940 461.2 4643.9 207.2
7 1 1941 512.0 4551.2 255.2
8 1 1942 448.0 3244.1 303.7
9 1 1943 499.6 4053.7 264.1
10 1 1944 547.5 4379.3 201.6
11 1 1945 561.2 4840.9 265.0
12 1 1946 688.1 4900.9 402.2
13 1 1947 568.9 3526.5 761.5
14 1 1948 529.2 3254.7 922.4
15 1 1949 555.1 3700.2 1020.1
16 1 1950 642.9 3755.6 1099.0
17 1 1951 755.9 4833.0 1207.7
18 1 1952 891.2 4924.9 1430.5
19 1 1953 1304.4 6241.7 1777.3
20 1 1954 1486.7 5593.6 2226.3
21 2 1935 209.9 1362.4 53.8
22 2 1936 355.3 1807.1 50.5
23 2 1937 469.9 2676.3 118.1
24 2 1938 262.3 1801.9 260.2
25 2 1939 230.4 1957.3 312.7
library(plm)
data("Grunfeld", package="plm")
Grunfeld$firm <- as.factor(Grunfeld$firm)
#adding lagged variable (+1)
Grunfeld$inv.plus1 <- NA
for (f in levels(Grunfeld$firm)) {
Grunfeld[which(Grunfeld$firm == f),]$inv.plus1 <- c(Grunfeld[which(Grunfeld$firm == f),]$inv[-1],NA)
}
#adding lagged variable (+2)
Grunfeld$inv.plus2 <- NA
for (f in levels(Grunfeld$firm)) {
Grunfeld[which(Grunfeld$firm == f),]$inv.plus2 <- c(Grunfeld[which(Grunfeld$firm == f),]$inv[-c(1,2)],NA)
}
#adding lagged variable (-1)
Grunfeld$inv.minus1 <- NA
for (f in levels(Grunfeld$firm)) {
Grunfeld[which(Grunfeld$firm == f),]$inv.minus1 <- c(Grunfeld[which(Grunfeld$firm == f),]NA,$inv[-1],)
}
(+1) 変数では機能しますが、(+2) または (-1) の正しいコードを導き出すことができません。私は何を間違っていますか?
私はplmパッケージを使用していますが、次のように回帰したいと思います: lm(inv(t+1) ~ inv(t) + other variables(t)) と lm("inv(t+2)" ~ inv(t) + その他の変数(t)) および lm("inv(t+3)" ~ inv(t) + その他の変数(t))
ラグ変数を両方向 (つまり、inv(t+1)、inv(t-1)) に最長 3 年間追加する便利な方法はありますか? 私のデータはバランスのとれた形式ですが、多くの「NA」. それがまだバランスの取れたパネルと見なされているかどうかはわかりません. パッケージや数式はありますか? よろしくお願いします.
編集:以下の回答と同じことを試みました:
dd$earnings.plus1 <- c(dd$earnings[-1], NA)
dd$earnings.plus2 <- c(dd$earnings[-c(1:2)], NA, NA)
しかし、代わりに dd$earnings.minus1 を定義しようとしています
z<- nrows(set)
dd$earnings.minus1 <- c(NA, dd$earnings[-z])
しかし、会社 1 の最後の値が会社 2 に移動されるため、適切に機能していません。これは、上記のソリューションでは発生しないようです。ここの違いは何ですか?