显示 plm 模型结果:边际效应、交互项的 p 值和图(固定效应法)

问题描述 投票:0回答:1

我正在使用 R 中的 plm 包处理面板数据来估计包含交互项的固定效应模型。我目前能够使用 plm 获取模型结果并使用 stargazer 显示它们,但我正在寻找一种更精致的方式来呈现这些结果,特别关注交互项。此外,我需要在同一个表中计算并显示这些交互项的边际效应,包括它们的 p 值。我也有兴趣绘制这些边际效应,以更好地了解它们的影响。

这是我的 plm 模型设置的示例:

fe_model_interaction <- plm(life_satisfaction ~ 
                                  employment_level_Full_Time*care_low +
                                  employment_level_Full_Time*care_high +

                                  employment_level_Part_Time*care_low +
                                  employment_level_Part_Time*care_high+
                             
                                  other_control_variables,
                                  data = data_analyse_mother, 
                                  index = c("pid", "syear"), 
                                  model = "within")

我的问题是:

  • 以比

    stargazer
    提供的更详细和可定制的格式显示 PLM 模型结果(尤其是交互术语)的最佳方式是什么?我正在寻找一种方法,将标准误差、系数和 p 值包含在一个干净、专业的表格中。

  • 如何计算这些交互项的边际效应及其 p 值并将其包含在结果表中?

  • R 中推荐的方法或包有哪些,用于绘制使用 plm 估计的固定效应模型中交互项的边际效应?

r stargazer plm modelsummary r-marginaleffects
1个回答
0
投票

marginaleffects
modelsummary
都支持
plm
对象。它们都有广泛的定制选项和详细的教程。请访问软件包网站以访问每个软件包的“入门”页面:

(免责声明:我是维护者。)

您的问题不够具体,我无法解决您的具体问题,但这是一个例子。首先,我们拟合模型并使用

modelsummary
:

在回归表中显示结果
library(plm)
library(modelsummary)
library(marginaleffects)

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

mod <- plm(log(gsp) ~ log(pcap) * log(pc) + log(emp) + unemp,
    data = Produc, index = c("state", "year"), model = "within")

modelsummary(mod)
(1)
日志(pcap) 0.033
(0.074)
日志(个人电脑) 0.348
(0.069)
日志(雇员) 0.763
(0.031)
失业人员 -0.005
(0.001)
log(pcap) × log(pc) -0.005
(0.006)
观察数。 816
R2 0.941
R2 调整。 0.937
AIC 14092.6
BIC 14120.8
均方根误差 0.04

现在,我们使用

marginaleffects
来计算感兴趣的数量。请注意,围绕“边际效应”的术语在各个领域之间高度不一致,因此我无法仅根据您的帖子确切地知道您想要的数量。无论如何,该软件包非常灵活,如果您阅读文档和教程,您应该能够计算出感兴趣的数量。以下是一些示例:平均坡度、平均对比度和按区域划分的平均预测:

avg_slopes(mod)
# 
#   Term  Estimate Std. Error      z Pr(>|z|)     S     2.5 %    97.5 %
#  emp    1.16e-03   4.66e-05 24.889   <0.001 451.8  1.07e-03  1.25e-03
#  pc     1.19e-05   1.05e-06 11.319   <0.001  96.3  9.81e-06  1.39e-05
#  pcap  -1.98e-06   2.77e-06 -0.712    0.476   1.1 -7.41e-06  3.46e-06
#  unemp -5.34e-03   9.89e-04 -5.393   <0.001  23.8 -7.27e-03 -3.40e-03
# 
# Columns: term, estimate, std.error, statistic, p.value, s.value, conf.low, conf.high 
# Type:  response

avg_comparisons(mod)
# 
#   Term Contrast  Estimate Std. Error      z Pr(>|z|)     S     2.5 %    97.5 %
#  emp         +1  1.16e-03   4.66e-05 24.890   <0.001 451.9  1.07e-03  1.25e-03
#  pc          +1  1.19e-05   1.05e-06 11.324   <0.001  96.3  9.81e-06  1.39e-05
#  pcap        +1 -1.98e-06   2.77e-06 -0.712    0.476   1.1 -7.41e-06  3.46e-06
#  unemp       +1 -5.34e-03   9.90e-04 -5.390   <0.001  23.8 -7.28e-03 -3.40e-03
# 
# Columns: term, contrast, estimate, std.error, statistic, p.value, s.value, conf.low, conf.high 
# Type:  response

avg_predictions(mod, by = "region")
# 
#  region Estimate Std. Error    z Pr(>|z|)   S 2.5 % 97.5 %
#       1     9.72    0.01720  565   <0.001 Inf  9.68   9.75
#       2    11.90    0.02465  483   <0.001 Inf 11.85  11.95
#       3    11.53    0.01413  816   <0.001 Inf 11.50  11.55
#       4    10.12    0.00863 1173   <0.001 Inf 10.10  10.14
#       5    10.65    0.00480 2217   <0.001 Inf 10.64  10.66
#       6    10.58    0.00502 2109   <0.001 Inf 10.57  10.59
#       7    10.97    0.01094 1003   <0.001 Inf 10.95  10.99
#       8     9.61    0.01582  607   <0.001 Inf  9.58   9.64
#       9    11.23    0.01623  692   <0.001 Inf 11.19  11.26
# 
# Columns: region, estimate, std.error, statistic, p.value, s.value, conf.low, conf.high 
# Type:  response

您可以将结果对象反馈给

modelsummary
以在回归表中显示结果。这是一个例子:

modelsummary(avg_slopes(mod))
(1)
员工 0.001
(0.000)
电脑 0.000
(0.000)
pcap 0.000
(0.000)
失业人员 -0.005
(0.001)
观察数。 816
R2 0.941
R2 调整。 0.937
AIC 14092.6
BIC 14120.8
均方根误差 0.04

您可以使用

modelsummary::modelplot()
函数或
marginaleffects
中的绘图函数之一轻松可视化结果。

modelplot(avg_slopes(mod))

plot_predictions(mod, condition = c("pcap", "pc"))

© www.soinside.com 2019 - 2024. All rights reserved.