不同自变量r时面板回归的误差

时间:2019-01-04 09:29:10

标签: r regression

我正在尝试通过以下代码运行Fama Macbeth回归:

require(foreign)
require(plm)
require(lmtest)
fpmg <- pmg(return~max_1,df_all_11, index=c("yearmonth","firms" )) 
Fama<-fpmg
coeftest(Fama)

当我使用名为'max_1'的自变量对数据进行回归时,它正在工作。但是,当我更改它并使用另一个名为'ivol_1'的自变量时,结果显示错误。代码是

require(foreign)
require(plm)
require(lmtest)
fpmg <- pmg(return~ivol_1,df_all_11, index=c("yearmonth","firms" )) 
Fama<-fpmg
coeftest(Fama)

错误消息是这样的:

Error in pmg(return ~ ivol_1, df_all_11, index = c("yearmonth", "firms")) : 
  Insufficient number of time periods

有时甚至是这样的错误

Error in model.frame.default(terms(formula, lhs = lhs, rhs = rhs, data = data,  : 
  object is not a matrix

为方便起见,我正在与您共享数据。数据链接为

data frame

我想知道为什么同一数据帧中的变量不同时会发生这种情况。如果您能解决这个问题,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

这个问题可以通过鼠标功能来解决

library(mice)
library(dplyr)
require(foreign)
require(plm)
require(lmtest)
df_all_11<-read.csv("df_all_11.csv.part",sep = ",",header = TRUE,stringsAsFactor = F)

x<-data.frame(ivol_1=df_all_11$ivol_1,month=df_all_11$Month)
imputed_Data <- mice(x, m=3, maxit =5, method = 'pmm', seed = 500)
completeData <- complete(imputed_Data, 3)
df_all_11<-mutate(df_all_11,ivol_1=completeData$ivol_1)
fpmg2 <- pmg(return~ivol_1,df_all_11, index=c("yearmonth","firms"))
coeftest(fpmg2)

答案 1 :(得分:0)

此问题是因为变量ivol_1具有很多NA,因此您应该首先估算NA,然后运行pmg函数。