【问题标题】:Panel regression error in RR中的面板回归误差
【发布时间】:2016-03-22 04:31:05
【问题描述】:

我正在运行不平衡面板回归。

自变量为毛 因变量是 DEX、GRW、债务和人寿。 时间是年 分组是国家

我已经成功执行了以下命令:

tino=read.delim("clipboard")
tino
summary(tino)
Dep<- with(tino, cbind(Gross, index=c("Country, Year"))            
Ind<- tino[ , c('DEX', 'GRW' , 'Debt', 'Life')] 
install.packages("plm")
library('plm')          
pandata<-plm.data(tino)
tino          
summary(pandata)  
summary(Dep)
summary(Ind)

但是,当我运行下面的命令以获得结果时,我得到了一个错误。

pooling<- plm(Dep~Ind, data = pandata, model= "pooling") 

在下面给出错误

Error in model.frame.default(terms(formula, lhs = lhs, rhs = rhs, data = data,: invalid type (list) for variable 'Ind'

请帮忙。

谢谢

【问题讨论】:

标签: r plm


【解决方案1】:

如果无法访问您的数据,则无法确认这是否有效,但我将尝试指出您的代码中可能导致错误的几个问题。

这条线很好:

tino=read.delim("clipboard")

这里是你开始犯错误的地方:

Dep<- with(tino, cbind(Gross, index=c("Country, Year"))            
Ind<- tino[ , c('DEX', 'GRW' , 'Debt', 'Life')] 

with() 通常用于从 data.frame 中创建新向量。它所做的只是允许您删除 $ 符号以引用 data.frame 中的变量,仅此而已。通过阅读您的代码,您可能会认为 with() 实际上是在修改 tino 对象,但事实并非如此。

此外,当您想要构建用于回归模型的 data.frame 时,您希望将所有右侧和左侧变量都放在一个 data.frame 或矩阵中,而不是将它们分开。这是因为大多数建模函数使用“公式”和data 参数进行操作,这些参数被传递给model.frame() 以在建模之前对数据进行预处理。

这意味着您可能想要执行以下操作,跳过以上所有内容:

pandata <- plm.data(tino, index = c("Country", "Year"))
pooling <- plm(Gross ~ DEX + GRW + Debt + Life, data = pandata, model = "pooling")
summary(pooling)

如果您有很多右侧变量,您可以将 data.frame 子集化,例如:

pandata2 <- plm.data(tino[ , c('Gross', 'DEX', 'GRW' , 'Debt', 'Life')], index = c("Country", "Year"))
pooling2 <- plm(Gross ~ ., data = pandata2, model = "pooling")

使用. 表示法作为“数据中所有其他列”的简写。

【讨论】:

  • 我的语法仍然有些困难。我怎样才能得到这个平台上的数据。谢谢。
  • @Tino 用您面临的任何新问题更新您的问题。您可能想尝试使用 plm 包中可用的数据制作一个可重复的小示例。
猜你喜欢
  • 2020-08-22
  • 2014-05-02
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2021-08-05
  • 1970-01-01
  • 2019-05-01
相关资源
最近更新 更多