定义 gam 函数类型

Defining gam function type

我想在数据集上应用 gam 模型并指定要使用的函数类型。

它会是这样的: y ~ cst1 * (s(var1)-s(var2)) * (1 - exp(var3*cst2))

s 必须是 var1var2 的相同函数。我对 s 函数族没有先入为主的想法。如果我继续,模型会找到常量(cst1cst2)加上函数 s.

可能吗?如果没有,有什么方法(另一种类型的模型)可以用来做我正在寻找的事情吗?

预先感谢您的回复。

该模型可以与非线性最小二乘包 nls 拟合。这将允许您直接对您想要的公式进行建模。不过,样条曲线需要手动完成。 This question gets at what you would be trying to do.

至于让 var1var2 的样条相同,您可以通过减去基矩阵来实现。基本上你想计算系数向量 A,其中项是 A * s(var1) + A * s(var2) = A * (s(var1) - s(var2))。你不想只做 s(var1 - var2);一般来说,f(x) - f(y) != f(x - y)。要在 R 中执行此操作,您需要

  1. ns()计算var1var2的样条基矩阵,给它们相同的节点。您需要同时指定 knotsBoundary.knots 参数,以便两条样条曲线共享相同的基础。

  2. 将两个样条基矩阵相减(ns()函数的输出)。

  3. nls 公式调整生成的相减样条基矩阵,就像他们在我之前链接的问题中所做的那样。