You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GAM绘图基函数叠加(第二部分):随机效应GAMM实现疑问

问题:在含交叉随机效应的GAMM中叠加基函数的实现验证

背景

之前我在Stack Overflow上提问过如何在GAM绘图上叠加基函数,该方案对固定效应模型建模帮助很大。但尝试给带交叉随机效应的GAMM执行相同操作时遇到了阻碍,我参照原思路模拟了包含subject和item交叉随机效应的数据并拟合模型,以下是具体操作,想请大家帮忙判断实现是否正确,若有误该怎么修正。

代码与操作步骤

加载包与设置主题

library(mgcv)
library(tidyverse)
library(gratia)
theme_set(theme_bw())

模拟数据

dat <- data_sim("eg2", seed = 123, n = 1000)
cross.dat <- dat %>% 
  mutate(subject = factor(rbinom(n=1000,size=100,prob=.5)),
         item = factor(rbinom(n=1000,size=50,prob=.5)))
cross.dat

数据结构如下:

# A tibble: 1,000 × 6
         y      f      x      z subject item 
     <dbl>  <dbl>  <dbl>  <dbl> <fct>   <fct>
 1 -1.36   0.631  0.288  0.274  49      24   
 2 -1.75   0.326  0.788  0.594  55      30   
 3  0.346  0.382  0.409  0.160  55      23   
 4  0.0416 0.306  0.883  0.853  42      26   
 5 -4.86   0.234  0.940  0.848  55      18   
 6  2.51   0.428  0.0456 0.478  55      26   
 7  0.873  0.374  0.528  0.774  50      26   
 8  4.90   0.0642 0.892  0.295  52      30   
 9  1.50   0.134  0.551  0.0656 44      27   
10 -0.502  0.392  0.457  0.441  53      26   
# … with 990 more rows
# ℹ Use `print(n = ...)` to see more rows

拟合GAMM模型

m <- gam(
  y 
  ~ s(x, bs = "cr")
  + s(z, bs = "cr")
  + ti(x, z, bs = "cr")
  + s(subject, bs = "re")
  + s(item, bs = "re"),
  data = cross.dat,
  method = "REML"
)
plot(m, select = 2)

生成数据切片与基函数

ds <- data_slice(m, z = evenly(z, n = 200))
bs <- basis(m, term = "s(z)", data = ds)

计算基函数总和

spl <- bs |>
  group_by(z) |>
  summarise(spline = sum(value))

绘图

bs |>
  ggplot(aes(x = z,
             y = value, 
             colour = bf, 
             group = bf)) +
  geom_line(show.legend = FALSE) +
  geom_line(aes(x = z, 
                y = spline), 
            data = spl,
            linewidth = 1.5,
            inherit.aes = FALSE) +
  labs(y = expression(f(z)), 
       x = "z",
       title = "Simulated Basis Functions")

疑问

最终生成的绘图看起来接近预期,但我感觉存在问题。请问这个实现是否正确?如果不正确,应该如何修正?


内容的提问来源于stack exchange,提问作者Shawn Hemelstrand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:55