我正在尝试通过以下代码运行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
为方便起见,我正在与您共享数据。数据链接为
我想知道为什么同一数据帧中的变量不同时会发生这种情况。如果您能解决这个问题,我将不胜感激。
答案 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函数。