【发布时间】:2019-04-28 08:08:57
【问题描述】:
所以我有一个统计模型,我在其中使用逐个因子的曲线,即为某些类别拟合单独的平滑曲线,如下所示。 (我不太关注数据/模型的含义,只是将其用作一个最小示例。)
library(dplyr)
library(qgam)
library(mgcv)
data(UKload)
test <- gam(
NetDemand ~ te(wM, Posan, by = Year),
data = UKload %>% mutate(Year = as.factor(Year))
)
当我只是通过s 而不是张量来平滑曲线时,我很高兴使用visreg 包,如下所示:
library(visreg)
test2 <- gam(
NetDemand ~ s(wM, by = Year),
data = UKload %>% mutate(Year = as.factor(Year))
)
visreg(test2, xvar = "wM", by = "Year")
然而,当我包含一个张量时,我似乎无法做类似的事情——它只会用完整的数据绘制一个等高线图,而不是让它被感兴趣的因子变量分区:
visreg2d(test, xvar = "wM", yvar = "Posan", by = "Year")
警告信息: 在 title(...) 中:“by”不是图形参数
我可以在一个条件下执行mgcv::vis.gam:
vis.gam(test, plot.type = "contour", cond = list(Year = 2011))
然后通过Rmisc::multiplot 或基础plot 聚合图,但我对这些解决方案不太满意,无论是在美学方面还是在工作流程方面。关于使用逐个曲线为张量积平滑绘制漂亮图的任何方便技巧?
【问题讨论】: