【问题标题】:How to visualize natural cubic spline (ns) in the GAM如何在 GAME 中可视化自然三次样条 (is)
【发布时间】:2018-09-25 16:15:45
【问题描述】:
> # simulate some data... 
> dat <- gamSim(1,n=400,dist="normal",scale=2)
> # fit model&plot
> library(mgcv)
> library(splines)
> b0 <- gam(y~s(x1),data=dat)
> plot(b0) 

按照上面的代码,我可以得到这样的情节:enter image description here

现在,我想使用 GAM 中的 ns() 函数获得类似的绘图:

> b1 <- gam(y ~ ns(x1), data=dat)
> plot(b1)

但是当我在R中运行代码时,它显示“No term to plot”,所以我想知道如何绘制这张图片?谢谢!

【问题讨论】:

    标签: plot spline gam cubic-spline s


    【解决方案1】:

    因为ns() 不是s()te()t2()ti() 指示的(惩罚)样条曲线,所以它不是"mgcv.smooth" 类的成员。当您绘制拟合的 GAM 对象时,代码会查看是否有任何 mgcv 平滑要绘制。模型中的所有其他项都是参数项,包括您的自然样条。如果您执行summary(b1),您将在输出的参数效果部分看到ns() 术语。

    基本上,gam() 只是将您的模型视为一堆线性参数项。它不知道模型矩阵中的这些项映射到基函数,因此映射到自然样条。

    可视化并不容易; plot(b1, all.terms = TRUE) 将绘制每个基函数的线性效应,所以至少你看到了一些东西,但通常这不是你想要的。您必须在协变量 x1 的范围内从模型中进行预测,然后根据 x1 值的网格绘制预测值。

    这就引出了问题;您希望 gam()ns() 基做什么?

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多