R plm封装中的三维
这是一个有关的后续问题,我认为这并没有解决这个问题 所以我重复数据R plm封装中的三维,r,panel-data,plm,R,Panel Data,Plm,这是一个有关的后续问题,我认为这并没有解决这个问题 所以我重复数据 ============================================ year | comp | count | value.x | value.y ------+------+-------+----------+----------- 2000 | A | USA | 1029.0 | 239481 ------+------+-------+----------+-----
============================================
year | comp | count | value.x | value.y
------+------+-------+----------+-----------
2000 | A | USA | 1029.0 | 239481
------+------+-------+----------+-----------
2000 | A | CAN | 2341.4 | 129333
------+------+-------+----------+-----------
2000 | B | USA | 2847.7 | 187319
------+------+-------+----------+-----------
2000 | B | CAN | 4820.5 | 392039
------+------+-------+----------+-----------
2001 | A | USA | 7289.9 | 429481
------+------+-------+----------+-----------
2001 | A | CAN | 5067.3 | 589143
------+------+-------+----------+-----------
2001 | B | USA | 7847.8 | 958234
------+------+-------+----------+-----------
2001 | B | CAN | 9820.0 | 1029385
============================================
虽然从编程的角度来看,那篇文章中的一些答案可以解决这个问题,但还远远没有完成
我的问题更具体
我想根据上面显示的数据运行一个固定效果和一个随机效果模型。我要研究的是value.x
对value.y
在comp
和年
之间的影响,无需重新调整(或控制计数
)
中提供的处理ID中重复项的建议答案如下:
fakedata$id <- fakedata %>% group_indices(comp, count)
虽然将comp
和count
分组,然后运行固定效应或随机效应模型,但此策略假定每个comp
在每个cou
中的处理方式不同。这不一定是某些人想要从这种倒退中得到的
如前所述,在我的例子中,我想知道value.x
对value.y
在comp
和year
之间的影响,无需重新调整(或控制计数
)
我认为这适合以下形式的模型:
plm(value.y ~ value.x + factor(cou), model = "within", data=fakedata, index=c(as.numeric(comp),year))
正如一些答复中所建议的那样。但是,这对我不起作用,plm packadge通常会显示错误消息:
Error in pdim.default(index[[1]], index[[2]]) :
duplicate couples (id-time)
In addition: Warning messages:
1: In pdata.frame(data, index) :
duplicate couples (id-time) in resulting pdata.frame
to find out which, use e.g. table(index(your_pdataframe), useNA = "ifany")
2: In is.pbalanced.default(index[[1]], index[[2]]) :
duplicate couples (id-time)
那么,我如何在不与
comp
和cou
交互的情况下建立固定效应模型呢 对于固定效应,您可以运行一个简单的回归,将年份和公司作为虚拟变量。在这种情况下,你将获得固定效果,不受国家的影响
lm(value.y ~ value.x + factor(year) + factor(comp)
你甚至可以把国家作为因素。在这种情况下,您将获得与使用id索引运行plm相同的结果(为了获得完全相同的结果,您可能必须手动选择假人,因此它们在两个回归中是相同的)。这是LSDV(最小二乘虚拟变量)模型
如果你想选择哪一个因素是基本因素,你可以手工创建你的假人。有上千个软件包可以做到这一点。两个例子:
#with base R
dummies <- model.matrix(~cate, fakedata)
#or using the fastDummies package
dummies <- dummy_columns(fakedata$cate)
对于固定效应,您可以运行一个简单的回归,将年份和公司作为虚拟变量。随机效应是一个GLS模型(系数与OLS相同,您需要调整协方差矩阵),然后可以根据您的需要进行调整,但是在RE效应模型假设下,各个国家的特征应该是无关的,否则您的模型是有偏差的。谢谢,有代码的示例吗?我如何在有限元模型中引入你说的虚拟变量?这和我在帖子里写的有多大不同<代码>plm(value.y~value.x+系数(cou),model=“in”,data=fakedata,index=c(作为数字(comp),年份))
lm(value.y ~ value.x + factor(year) + factor(comp) + factor(count)
plm(value.y ~ value.x, model = "within", data=fakedata, index=c(id,year))
#with base R
dummies <- model.matrix(~cate, fakedata)
#or using the fastDummies package
dummies <- dummy_columns(fakedata$cate)
plm(value.y ~ value.x + factor(cou), model = "within", data=fakedata, index=c(as.numeric(comp),year))