gpt4 book ai didi

r - 有没有一种方法可以为glm函数中的优化算法的每个步骤获取系数?

转载 作者:行者123 更新时间:2023-12-04 04:04:26 24 4
gpt4 key购买 nike

当在R中执行logit回归时,可以通过coefficients()函数将优化算法收敛(或不收敛)后获得系数:

library(MASS)
data(menarche)
glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age,
family=binomial(logit), data=menarche)
coefficients(glm.out)
## (Intercept) Age
## -21.226395 1.631968

有没有一种方法可以获取优化算法每个步骤的系数以跟踪其步骤?

最佳答案

带有显示值的control=参数将导致打印偏差,而trace语句将导致显示系数值:

trace(glm.fit, quote(print(coefold)), at = list(c(22, 4, 8, 4, 19, 3)))
glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age,
family=binomial(logit), data=menarche,
control = glm.control(trace = TRUE))

输出将如下所示:
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  .... step 22,4,8,4,19,3 
NULL
Deviance = 27.23412 Iterations - 1
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3
[1] -20.673652 1.589536
Deviance = 26.7041 Iterations - 2
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3
[1] -21.206854 1.630468
Deviance = 26.70345 Iterations - 3
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3
[1] -21.226370 1.631966
Deviance = 26.70345 Iterations - 4

要删除跟踪,请使用:
untrace(glm.fit)

请注意,在 trace调用中, coefoldglm.fit源代码内部使用的变量的名称,并且所使用的数字表示源代码中的语句编号,因此,如果 glm.fit源发生更改,则可能需要更改其中任何一个。我正在使用“R版本3.2.2已修补(2015-10-19 r69550)”。

关于r - 有没有一种方法可以为glm函数中的优化算法的每个步骤获取系数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com