【问题标题】:CRAN package with Bayesian logistic regression via Polya-Gamma scheme通过 Polya-Gamma 方案进行贝叶斯逻辑回归的 CRAN 包
【发布时间】:2019-07-07 10:25:42
【问题描述】:

我正在维护一个包,该包使用 BayesLogit 进行贝叶斯逻辑回归,使用 Polya-Gamma 潜变量技术并从马尔可夫链-蒙特卡洛 (MCMC) 返回样本。 BayesLogit 不再在 CRAN 上,我可以使用

安装以前的版本
install_version("BayesLogit", version = "0.6")

但是这个 hack 会阻止我的包裹提交给 CRAN。 source code 上次更新是一年前,所以我认为它不会回到 CRAN。

我发现another package 用类似的语法做同样的事情。但是这个包也不在 CRAN 上,并且安装在

devtools::install_github("kasparmartens/PolyaGamma")

CRAN 包是否使用 Polya-Gamma 方案实现贝叶斯逻辑回归并返回 MCMC 样本?

【问题讨论】:

  • 我找不到任何其他人正在浏览 CRAN's list of packages。您在 GitHub 上讨论的 PolyaGamma package 最近更新得更少——它看起来像 2015 年。CRAN 上 BayesLogit 面临的问题是它试图调用它在 src/ 中没有提供的 C 函数;例如,在R/FFBS.R 中,它尝试调用.C("ffbs", ...),但在包中的任何位置都没有定义ffbs() C 函数。您最终可能需要在这里推出自己的产品。
  • 您找到解决方案了吗?我也在寻找实施贝叶斯逻辑回归。
  • @RegisteredUser 我找不到包,不。如果您不需要 Polya-Gamma 采样方案,几个包在没有它的情况下进行贝叶斯逻辑回归。我没有尝试过。

标签: r logistic-regression bayesian


【解决方案1】:

我自己和一个同事也有类似的情况(一个我们依赖于 BayesLogit 的包,最终被归档),所以我们决定将我们为 MATLAB 开发的 C++ Polya-Gamma 采样器实现打包到一个 R 包中.它目前在 CRAN 上作为包 pgdraw。从我们的测试来看,它实际上甚至比原来的 BayesLogit 包还要快。

【讨论】:

  • 我在包示例中看到了函数sample_simple_logreg <- function(y, nsamples),但它不需要特征来返回回归系数。我的数学时代已经过去了:你能提供一个例子来说明如何使用你的包来执行贝叶斯逻辑回归吗?
【解决方案2】:

我们决定使用 RStan,因为它已经在 CRAN 上,而且我们已经在包的另一部分中使用了它。与 Polya-Gamma 方案相比,我们更倾向于在 CRAN 上实现贝叶斯回归的东西。

Stan 文件包含:

// Code for 0-1 loss Bayes Logistic Regression model
data {
  int<lower=0> n; // number of observations
  int<lower=0> p; // number of covariates
  matrix[n,p] x; // Matrix of covariates
  int<lower=0,upper=1> y[n]; // Responses
  real<lower=0> beta_sd; // Stdev of beta
}
parameters {
  vector[p] beta;
}
model {
  beta ~ normal(0,beta_sd);
  y ~ bernoulli_logit(x * beta); // Logistic regression
}

我们称之为:

bayes_log_reg <- rstan::stan(stan_file, data = data, seed = seed,
                      iter = n_bootstrap * 2, chains = 1)
stan_bayes_sample <- rstan::extract(bayes_log_reg)$beta

查看the package vignette了解完整详情。

我意识到许多其他包在一般情况下实现了贝叶斯逻辑回归。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 2019-04-19
    相关资源
    最近更新 更多