【发布时间】:2010-06-25 16:16:18
【问题描述】:
我一直在阅读 R 使用的 code 来拟合 广义线性模型 (GLM),因为 R 的源代码是免费提供的。所使用的算法称为迭代重加权最小二乘法 (IRLS),这是一种有据可查的算法。对于每次迭代,都会调用一个 Fortran 函数来解决加权最小二乘问题。
从最终用户的角度来看,例如,对于逻辑回归,R 中的调用如下所示:
y <- rbinom(100, 1, 0.5)
x <- rnorm(100)
glm(y~x, family=binomial)$coefficients
如果您不想使用 intercept,则这些调用中的任何一个都可以:
glm(y~x-1, family=binomial)$coefficients
glm(y~x+0, family=binomial)$coefficients
但是,我无法理解公式(即y~x 或y~x-1)在代码中的意义以及是否被理解为是否使用拦截。我正在寻找代码的一部分,其中一列将绑定到x,但似乎没有。
据我所知,出现在名为glm.fit 的函数中的布尔截距与我所指的截距不同。 偏移量也是一样。
关于glm 和glm.fit 的文档是here。
【问题讨论】: