R:通过改变建模函数来更新模型

R: Update model by changing modeling function

我在 R 中有一个 gls 模型。我想通过两种方式更新它:

  1. 添加预测变量

  2. 将函数从 gls 更改为 lm

update() 函数显然与 #1 一起工作得很好,但是 有没有办法更新模型来改变拟合函数本身???

例如: 我想将 gls(y ~ x) 更改为 lm(y ~ x + z)

注意: update 方法是必要的 b/c 这个过程将进入一个函数,该函数将具有非常不同的输入模型,因此简单地复制模型参数似乎很难实现。

有可能,但不能使用 update 函数的任何当前形式。这将需要一些更高级的编程,因此可能不适合 R 的新用户。

如果您熟悉 R 编程和一些内部原理,请继续阅读,否则您可能需要 consult/hire R 程序员的帮助。

您可以通过查看 update.default 的代码了解 update 函数的作用。但这只会改变选项和公式,不会改变将要调用的实际函数。查看 lm 代码的第一部分,您可以看到当 lm 使用 match.call 获取 lm 调用时更改调用函数的示例,然后将第一个元素更改为 model.fram 然后调用 eval 。您将需要编写自己的 update 函数(将其命名为其他名称以免混淆),该函数与 lm 的功能相同,即从 gls 更改为 lm 并且然后执行与 update.default 相同的操作来更改公式以添加额外的预测变量。然后 eval 结果,你就有了你想要的基础。