【问题标题】:How do I find out about the standards for writing regression packages in R?如何了解在 R 中编写回归包的标准?
【发布时间】:2020-04-16 15:52:41
【问题描述】:

作为我工作的一部分,我需要拟合一堆“广义逻辑”(GL)* 回归模型(有一些与该问题无关的特殊限制)。目前没有允许我这样做的包,所以我编写了自己的函数来优化可能性。它很混乱,目前还不是很笼统,因为它是针对我需要它完成的特定工作量身定制的。

我正在考虑把它变成一个更通用的包,这将是我写的第一个。

我的问题是:

1) 我是否遗漏了一个技巧,是否可以将我自己的链接功能固定到 GLM 而不是从头开始编写它?

2) 他们的信息是否符合回归包的预期标准,例如预期的“摘要”输出、输出的标准化名称、标准公式输入等?

3) 有没有什么好的“如何在 R 中编写包”资源可以推荐

如果需要,我很乐意提供更具体的信息。非常感谢您的回复。

最好的。

【问题讨论】:

  • 我可能遗漏了什么,但stats::glm()glmnet::glmnet()caret::train(..., method = "glm") 有什么问题?
  • 我也可能遗漏了一些东西,但我认为这些包不适合我所追求的模型,即“广义逻辑”回归模型。它是逻辑回归,具有更多参数来做更多事情。如果您有兴趣,我想根据潜在条件对通过儿童发展项目的概率进行建模。在这种情况下,其中一些具有条件的孩子可能永远不会通过一个项目,所以我需要估计一个上渐近线,而不是像在逻辑模型中那样将其指定为 1。
  • 我认为您已经找到了问题的答案,但回答您的第三个问题:R Packages by Hadley Wickham 和 Jennifer Bryan 是一个非常好的(免费)关于包编写的资源。

标签: r package regression logistic-regression


【解决方案1】:

应该可以创建自己的 GLM 链接函数。您可以执行以下操作:

my_link_function <- function(mu) 
{
  # Body of your link function
}

my_inverse_link_function <- function(eta) 
{
  # Body of your inverse link function
}

my_derivative_function <- function(eta)
{
  # function describing dmu / delta
}

my_valid_eta_function <- function(eta)
{
  # return TRUE if eta is in domain of inverse_link_function, otherwise FALSE
}

my_link <- list(linkfun  = my_link_function,
                linkinv  = my_inverse_link_function,
                mu.eta   = my_derivative_function,
                valideta = my_valid_eta_function,,
                name     = "my_link")
class(my_link) <- "link-glm"

现在你可以这样做了:

glm(my_var1 ~ my_var2, family = binomial(my_link))

【讨论】:

  • 您好,这看起来不错,感谢您的帮助!如果我在 GLM 函数中进行挖掘,我是否能够为逻辑回归模型找到这个,只是用作模板?你不知道我应该先从哪里开始寻找吗?
  • 如果你只是想做一个逻辑回归,你不需要自己写链接函数。已经有一个很好的内置了。你只需要写 glm(var_y ~ var_x, family = binomial("logit")) 。你不能直接在R中看logit链接函数源码,因为这个函数好像是用C写的,你确定要自己写链接函数吗?
  • 您好,感谢您的回复。是的,我肯定需要编写自己的链接函数,因为我想要一个广义的逻辑回归模型,具体来说,我需要能够估计上渐近线,而不是假设它是 1。不过别担心,你有让我走上正轨,我相信我会从这里解决问题。
猜你喜欢
  • 2017-03-16
  • 2023-01-20
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
相关资源
最近更新 更多