【问题标题】:Doing several panel data efficiently in R在 R 中有效地处理多个面板数据
【发布时间】:2013-04-15 18:45:16
【问题描述】:

我正在尝试对“不断变化的”面板数据集进行几次池化 OLS 回归。 plm 包中的 Gasoline 数据非常适合作为示例

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(lgaspcar ~ lcarpcap + lincomep, data = Gasoline, model='pooling')

我正在寻找一种智能方法来对不断变化的数据集进行此面板回归。有什么方法可以将调用中的数据集的年份限制为plm

【问题讨论】:

    标签: r dataset regression panel-data plm


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我正在使用 for 循环 for(i in 1961:1978){ Data &lt;- Gasoline[(Gasoline$year &lt; i), ] Results &lt;- plm(lgaspcar ~ lcarpcap + lincomep, data = Data, model='pooling') } 做类似的事情,但你的解决方案更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多