对于神经影像学应用程序,我试图通过 R 中的最小二乘法拟合许多线性模型(标准调用lm
)。想象一下,我有一个设计矩阵 X。这个设计矩阵在所有模型中都是相同的。正在拟合的数据 (Y) 将发生变化,因此所有拟合参数(例如 beta、p 值、残差等)也会发生变化。
目前,我只是把它放在一个 for 循环中,所以它对lm
. 似乎必须有更好的方法。
我相信计算成本最高的部分是矩阵求逆。看起来这可以通过 lm.fit 中的 Fortran 调用来处理。
如果我手动进行此回归,我会进行矩阵求逆,然后将其乘以各种数据集。事实上,当我有良好的设计矩阵(例如,所有连续赋值的协变量)时,我已经编写了一个函数来做到这一点。但是,我真的很喜欢所做的所有工作lm
,比如适当地重新编码我的因素等,并且输出lm
也非常好。
无论如何,我的蛋糕也可以吃吗?即,为了获得 lm 的友好性,但使用这种能力在计算上有效地拟合许多具有相同设计矩阵的模型?