R 使用因子变量时的组合效应和PLM包。

R 使用因子变量时的组合效应和PLM包。,r,effects,plm,R,Effects,Plm,我试图使用效果包来提取PLM模型的预测值。不幸的是,只要我包含一个因子变量,效果包就会随着错误消息而崩溃 Error in Summary.factor(c(2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, ‘range’ not meaningful for factors 有人找到解决这个问题的方法吗 下面是一个复制该问题的最低限度的工作示例 data("Produc", package = "plm") Produc$dummy1<-(rb

我试图使用效果包来提取PLM模型的预测值。不幸的是,只要我包含一个因子变量,效果包就会随着错误消息而崩溃

Error in Summary.factor(c(2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 
‘range’ not meaningful for factors
有人找到解决这个问题的方法吗

下面是一个复制该问题的最低限度的工作示例

data("Produc", package = "plm")

Produc$dummy1<-(rbinom(nrow(Produc), 1 , 0.4)) #Generate Random Dummy
Produc$dummy2<-as.factor(Produc$dummy1)


mod1 <- plm(gsp ~ pcap * dummy1,data = Produc, index = c("state","year"), model="fd")
mod2 <- plm(gsp ~ pcap * dummy2,data = Produc, index = c("state","year"), model="fd")

Effect(c("pcap","dummy1"),mod1) #This works 
Effect(c("pcap","dummy2"),mod2) #This does not
数据(“Produc”,package=“plm”)

Produc$dummy1Maybe,
effects
包无法处理
plm
-对象?作为一种解决方法,您始终可以使用
lm()
来“模拟”面板模型。您可以自己转换数据,或者使用
pmodel.response()
plm:::model.matrix()
(后者似乎没有导出,因此
plm:::
)来获取转换后的数据,您可以在其上运行
lm()
。另一方面,警告是有意义的:如果
dummy2
是一个因素,它只能是特定值,在本例中为0和1。因此,为0和1以外的值计算效果是没有意义的。请尝试
allEffects(mod2)
这就是您想要的吗?