我是使用广义线性模型的新手,并且无法使用 ggplot 绘制 glm 调用的结果。我的数据只包含连续变量:一个响应变量(计数数据 - 连续)和两个解释变量(都是连续的)。所以,我正在进行泊松多元回归。我找到了一些关于如何绘制数据和拟合关于正态分布数据的曲线的例子。我还在这里 (ggplot GLM fitted curve without interaction) 找到了一个如何绘制和拟合泊松 ANCOVA 模型的示例。在这种情况下,解释变量是一个分类变量和一个连续变量,所以它对我不起作用。
我有这样的数据:
df<-data.frame(
p1=c(230.2, 110.1, 90.5, 100.3, 110.0, 380.4, 80.5, 60.7, 250.8, 350.2),
resp=c(31, 28, 12, 28, 18, 48, 19, 25, 28, 18),
p2=c(48, 36, 12, 168, 12, 60, 18, 39, 60, 12))
我按如下方式运行模型:
m <- glm(resp ~ p1*p2, family = poisson, data=df)
anova(m, test="Chi")
它返回给我:
Analysis of Deviance Table
Model: poisson, link: log
Response: resp
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 9 33.204
p1 1 9.9623 8 23.242 0.001598 **
p2 1 7.2787 7 15.963 0.006978 **
p1:p2 1 7.7652 6 8.198 0.005326 **
因此,解释变量(p1 和 p2)之间存在交互作用。我的问题是:如何在 ggplot 中使用 geom_smooth 绘制此 glm 调用的结果,以便我可以拟合曲线并显示两个连续解释变量之间的相互作用?此外,有没有更好的方法来绘制和可视化它?