【问题标题】:How do you compute the BIC in R with high dimensional data您如何使用高维数据计算 R 中的 BIC
【发布时间】:2020-02-02 20:48:01
【问题描述】:

我有一个包含 200 个参数和 50 个观察值的高维数据集。 我正在尝试计算 R 中的 BIC。我知道 BIC=log(n)*df-2*log(L) 其中 L 是可能性。我只是想知道如何计算L。 我相信我需要计算 MSE,但我不知道该怎么做。

【问题讨论】:

  • 嗨!我认为这个问题可能需要一些清理才能被投票 - 我想知道它是否被低估了,因为不清楚你是否已经研究过 L 的真正含义以及它是如何工作的 - 而不仅仅是如何使用它R. 统计不是我的强项,但我确实找到了一个示例 here on YouTube 在 R 中进行 BIC 计算 - 也许它会对您有所帮助?

标签: r log-likelihood


【解决方案1】:

也许更多的是交叉验证问题?

要计算 BIC,您首先需要一个模型。有多种估计模型的方法,但常客统计中最常见的两种方法是普通最小二乘法 (OLS) 和最大似然估计 (MLE)。 MLE 的要点是,您可以通过选择在给定数据的情况下使模型的可能性最大化的斜率值来找到模型中参数的斜率(参见以下视频:https://www.youtube.com/watch?v=XepXtl9YKwc)。

要在拟合 MLE 模型后获得 BIC,您可以使用拟合 MLE 模型后获得的可能性。然后,您可以使用它来比较具有不同数量参数的两个不同模型。这就是 BIC 的用途。

如果您使用 MLE 在 R 中拟合模型,您应该能够从模型摘要中获得其可能性。我认为您可能不想编写程序来手动计算可能性,您可能需要相当高级的数学背景才能做到这一点(至少对于更复杂的模型)。

【讨论】:

  • 感谢您的提示 :) 我正在使用 glmnet,但在计算 BIC 时遇到了问题
  • 别担心!据我所知,glmnet 使用梯度下降,这是一种不同的机器学习估计模型的方法。但是,仍然应该有一种方法可以使用您从 glmnet 获得的系数来获得似然估计并使用它来获得 BIC。
  • 不过,这可能有点疯狂,试图从glmnet 匹配中获得 BIC。由于您使用机器学习来构建模型,因此使用机器学习方法来比较模型可能是一个更好的主意。例如,您可以进行交叉验证以查看不同模型的 RMSE 比较。
猜你喜欢
  • 1970-01-01
  • 2018-02-21
  • 2018-02-09
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多