在R中高效地处理多个面板数据

在R中高效地处理多个面板数据,r,dataset,regression,panel-data,plm,R,Dataset,Regression,Panel Data,Plm,我试图在一个“不断变化”的面板数据集上进行几个池OLS回归。plm包中的汽油数据将非常适合作为示例 library(plm) data("Gasoline", package = "plm") head(Gasoline) country year lgaspcar lincomep lrpmg lcarpcap 1 AUSTRIA 1960 4.173244 -6.474277 -0.3345476 -9.766840 2 AUSTRIA 1961 4.100989 -6.

我试图在一个“不断变化”的面板数据集上进行几个池OLS回归。
plm
包中的
汽油
数据将非常适合作为示例

library(plm)
data("Gasoline", package = "plm")
head(Gasoline)

  country year lgaspcar  lincomep  lrpmg      lcarpcap
1 AUSTRIA 1960 4.173244 -6.474277 -0.3345476 -9.766840
2 AUSTRIA 1961 4.100989 -6.426006 -0.3513276 -9.608622
3 AUSTRIA 1962 4.073177 -6.407308 -0.3795177 -9.457257
4 AUSTRIA 1963 4.059509 -6.370679 -0.4142514 -9.343155
5 AUSTRIA 1964 4.037689 -6.322247 -0.4453354 -9.237739
6 AUSTRIA 1965 4.033983 -6.294668 -0.4970607 -9.123903
数据跨度从1960年到1978年,我想对1961年到1978年前几年的面板数据进行OLS汇总。也就是说,第一次回归只是1960年数据的横截面,第二次回归是1960年和1961年的面板回归,第三次回归是1960年、1961年和1962年数据的面板回归,等等

我知道如何进行单池OLS回归(请忽略具体回归是否合理-这只是一个示例):


我正在寻找一种聪明的方法,在不断变化的数据集上进行面板回归。有没有办法限制调用plm时数据集的年数?

好吧,你可以把它放在一个循环中,但我看不到一种优化方法,因为每次回归都必须重新进行

plm.results = lapply(1961:1978,
                     function(y) plm(lgaspcar ~ lcarpcap + lincomep,
                                 data = subset(Gasoline, year <= y),
                                 model='pooling'))
plm.results=lappy(1961:1978,
功能(y)plm(lgaspcar~lcarpcap+lincomep,

data=subset(汽油,谢谢,我在做一件类似的事情,用
for
循环
for(我在1961:1978年){
数据
plm.results = lapply(1961:1978,
                     function(y) plm(lgaspcar ~ lcarpcap + lincomep,
                                 data = subset(Gasoline, year <= y),
                                 model='pooling'))