我正在尝试研究专门针对大量协变量 p 和高维状态的最大似然估计的分布(这意味着 p/n,样本大小为 n,约为 1/5)。我正在生成数据,然后使用statsmodels.api.Logit
将参数拟合到我的模型中。
问题是,这似乎只适用于低维状态(如 300 个协变量和 40000 个观察值)。具体来说,我知道已经达到最大迭代次数,对数似然是 inf 即已经发散,并且出现“奇异矩阵”错误。
我不知道如何解决这个问题。最初,当我仍在使用较小的值(比如 80 个协变量,4000 个观察值)时,我偶尔会遇到这个错误,我设置了最多 70 次迭代而不是 35 次。这似乎有帮助。
然而,它现在显然无济于事,因为我的对数似然函数正在发散。这不仅仅是在最大迭代次数内不收敛的问题。
很容易回答这些包根本不打算处理这些数字,但是已经有专门研究这种高维机制的论文,比如在这里使用p=800
协变量和n=4000
观察值。
当然,本文使用的是 R 而不是 python。不幸的是,我不知道 R。但是我应该认为 python 优化应该具有可比的“质量”?
我的问题:
R 是否比 python statsmodels 更适合处理这种高 p/n 机制中的数据?如果是这样,为什么以及可以使用 R 的技术来修改 python statsmodels 代码?
如何修改我的代码以适用于 p=800 和 n=4000 左右的数字?