R 加速重叠加性模型(mgcv)的估计

R 加速重叠加性模型(mgcv)的估计,r,feature-selection,spline,gam,mgcv,R,Feature Selection,Spline,Gam,Mgcv,我有一些变量集,我正在拟合许多(数十万)加法模型,每个模型都包含所有变量的子集。因变量在每种情况下都是相同的,有些模型重叠或嵌套。并非所有自变量都必须以非参数方式进入模型。为了清楚起见,我可能有一组变量{x1,x2,x3,x4,x5}和估计值: a) y=c+f(x1)+f(x2), b) y=c+x1+f(x2), c) y=c+f(x1)+f(x2)+x3等 我想知道在这种情况下,我是否可以做些什么来加速gam估计?是否有任何经过反复计算的内容,我可以计算一次并提供给函数 我已经尝试过的:

我有一些变量集,我正在拟合许多(数十万)加法模型,每个模型都包含所有变量的子集。因变量在每种情况下都是相同的,有些模型重叠或嵌套。并非所有自变量都必须以非参数方式进入模型。为了清楚起见,我可能有一组变量
{x1,x2,x3,x4,x5}
和估计值:
a)
y=c+f(x1)+f(x2)

b)
y=c+x1+f(x2)

c)
y=c+f(x1)+f(x2)+x3等

我想知道在这种情况下,我是否可以做些什么来加速gam估计?是否有任何经过反复计算的内容,我可以计算一次并提供给函数

我已经尝试过的:

  • 记忆,因为模型会不时重复
  • 不情愿地从薄板回归样条切换到三次回归样条(相当显著的改进)
  • mgcv指南说:

    用户可以通过提供一组减少的协变量值来获得基础,从而保留t.p.r.s.方法的大部分优点-通常,使用的协变量值的数量将大大小于数据的数量,并且大大大于基础维度k

    这对较小的模型(例如5次平滑)产生了相当明显的改善,但对较大的模型(例如10次平滑)则没有。事实上,在后一种情况下,它通常会导致估计时间(可能要长得多)更长

我想尝试但不知道是否可能:

  • 在这两种情况下重复的一件明显的事情,例如,
    y=c+f(x1)+f(x2)
    y=c+x1+f(x2)
    ,是计算
    f(x2)
    的基础。如果每次都使用相同的结,如何(如果可能的话)预先计算每个变量的基础,然后将其提供给mgcv?您认为这会带来显著的时间改进吗

你还有什么建议吗?

我得问问你为什么要这样做?;这样做之后的任何合理推断都是无效的。你有[tag:featureselection]标签,这种方法让我感到恐惧。我假设你不能将所有协变量作为平滑来拟合模型,甚至不能用收缩平滑或
select=TRUE
来惩罚基的线性部分。假设您已经尝试了
bam()
并并行运行了多个模型?我正在研究一种为预测模型选择变量的方法(因此我不担心推理)-某种程度上是
select=TRUE
的替代方法。是的,在某些情况下,我不能用所有的协变量来拟合模型。是的,我试过
bam()
(比
gam()
花费的时间要长得多),我确实并行地估计了模型——这些一定是我之前忘记的。