【发布时间】:2020-07-19 17:08:43
【问题描述】:
有没有办法让plm() 为我计算 R2 和总体 R2 之间的值并将它们包含在 summary() 输出中?
要澄清我在 R2 之间、整体和内部的意思,请参阅StackExchange 上的此答案。
我的理解是 plm 只在 R2 内计算。 我正在模型中运行双向效果。
一个随机的例子(改编自here):
library(plm)
# Create some random data
set.seed(1)
x=rnorm(100); fe=rep(rnorm(10),each=10); id=rep(1:10,each=10); ti=rep(1:10,10); e=rnorm(100)
y=x+fe+e
data=data.frame(y,x,id,ti)
# Get plm within R2
reg=plm(y~x,model="within",index=c("id","ti"), effect = "twoways", data=data)
summary(reg)$r.squared
我现在也想得到整体和R2之间的:
# Pooled Version (overall R2)
reg1=lm(y~x)
summary(reg1)$r.squared
# Between R2
y.means=tapply(y,id,mean)[id]
x.means=tapply(x,id,mean)[id]
reg2=lm(y.means~x.means)
summary(reg3)$r.squared
【问题讨论】:
标签: r regression panel plm