我正在使用 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 估计的固定效应模型中交互项的边际效应?
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"))