从R中的汇总OLS估计中提取所有单个斜率系数

r plm coefficients

375 观看

2回复

3 作者的声誉

我遇到了一个问题,我想在合并回归中提取特定变量的所有单个系数。

我的数据看起来像这样,我在X上回归Y。

Observation name date Y  X
1           A    1    Y1 X1
2           A    2    Y2 X2
3           B    1    Y3 X3
4           B    2    Y4 X4

使用plm软件包和摘要,R只给我一个X系数。但是,我希望每个回归中都有X变量系数。谁能帮我这个?

为了澄清,我想要的是与下图中的X_n,1相关的所有beta。对困惑感到抱歉。 图片说明

作者: Xinrong Lin 的来源 发布者: 2017 年 9 月 15 日

回应 2


0

5088 作者的声誉

您可以使用broom包中的tidyand augment从broom包中获取结果plm并将其放入数据框。

library(plm)
library(broom)

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

p <- plm(inv ~ value + capital, data = Grunfeld, model = "pooling")

df <- tidy(p)

#          term    estimate  std.error statistic      p.value
# 1 (Intercept) -42.7143694 9.51167603 -4.490730 1.207357e-05
# 2       value   0.1155622 0.00583571 19.802589 9.542703e-49
# 3     capital   0.2306785 0.02547580  9.054808 1.347370e-16

df$estimate

# [1] -42.7143694   0.1155622   0.2306785

augment(p)

#         inv   value capital     .fitted      .resid
# 1    317.60 3078.50    2.80  313.689629    3.910371
# 2    391.80 4661.70   52.60  508.135423 -116.335423
# 3    410.60 5387.10  156.90  616.023978 -205.423978
# 4    257.70 2792.20  209.20  328.216223  -70.516223
# 5    330.80 4313.20  203.40  502.648328 -171.848328
# 6    461.20 4643.90  207.20  541.741311  -80.541311
# 7    512.00 4551.20  255.20  542.101267  -30.101267
# 8    448.00 3244.10  303.70  402.237879   45.762121
# 9    499.60 4053.70  264.10  486.662133   12.937867
# 10   547.50 4379.30  201.60  509.871765   37.628235
作者: Kevin Arseneau 发布者: 2017 年 9 月 15 日

0

1871 作者的声誉

决定

如果要为实体使用不同的系数(name在示例中以分隔),则可以使用pvcm()包中的函数来plm单独拟合OLS模型,也可以手动执行,请参见下面的代码示例。

以帮助页面(?pvcm)中的示例为基础:

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

form <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp

pvcm(form, data = Produc, model = "within") # individual coefficients
## Coefficients:
##                (Intercept)  log(pcap)    log(pc)  log(emp)       unemp
## ALABAMA            8.49604 -1.4426440  0.2795010  1.835250  0.00735450
## ARIZONA            4.66528 -0.1627084 -0.0052207  1.075828 -0.00365798
## ARKANSAS           3.24565 -0.5056503  0.3212473  1.234017  0.00149221
## CALIFORNIA         0.27935  0.2639377  0.2484033  0.699135 -0.01074510
## [...]

###### same using OLS on splitted data for first entity (ALABAMA):
l <- split(Produc, Produc$state)
plm(form, data = l[[1]], model = "pooling")
## Coefficients:
## (Intercept)   log(pcap)     log(pc)    log(emp)       unemp 
##   8.4960384  -1.4426440   0.2795010   1.8352498   0.0073545 
作者: Helix123 发布者: 2017 年 9 月 15 日
32x32