如何用高维数据计算R中的BIC

如何用高维数据计算R中的BIC,r,log-likelihood,R,Log Likelihood,我有一个高维数据集,包含200个参数和50个观测值。 我试图计算R中的BIC。我知道BIC=log(n)*df-2*log(L),其中L是可能性。我只是想知道如何计算L。 我认为我需要计算MSE,但我不确定如何计算。也许更像是一个交叉验证的问题 要计算BIC,首先需要一个模型。有不同的估计模型的方法,但在频率统计中最常见的两种方法是普通最小二乘法(OLS)和最大似然估计法(MLE)。MLE的要点是,您可以通过拾取斜率值来查找模型中参数的斜率,这些斜率值可以最大化给定数据的模型的可能性(请参见以下

我有一个高维数据集,包含200个参数和50个观测值。 我试图计算R中的BIC。我知道BIC=log(n)*df-2*log(L),其中L是可能性。我只是想知道如何计算L。
我认为我需要计算MSE,但我不确定如何计算。

也许更像是一个交叉验证的问题

要计算BIC,首先需要一个模型。有不同的估计模型的方法,但在频率统计中最常见的两种方法是普通最小二乘法(OLS)和最大似然估计法(MLE)。MLE的要点是,您可以通过拾取斜率值来查找模型中参数的斜率,这些斜率值可以最大化给定数据的模型的可能性(请参见以下视频:)

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


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

谢谢你的提示:)我正在使用glmnet,并且在计算BIC时遇到了问题,不用担心!据我所知,
glmnet
使用梯度下降法,这是一种不同的机器学习方法来估计模型。然而,仍然应该有一种方法可以使用从
glmnet
获得的系数来获得似然估计,并使用它来获得BIC。不过,试图从
glmnet
拟合中获得BIC可能有点像白费力气。由于您使用机器学习来构建模型,因此使用机器学习方法来比较模型可能是一个更好的主意。例如,您可以进行交叉验证,以查看不同模型的RMSE如何进行比较。您好!我认为这个问题可能需要一些清理,以便获得更高的投票率-我想知道它是否被否决,因为不清楚你是否研究过L到底是什么以及它是如何工作的-而不仅仅是如何在R中使用它。统计不是我的强项,但我确实找到了一个在R中进行BIC计算的例子——也许这会对你有所帮助?