最近我一直在嘗試將大量的隨機效應模型適用於相對較大的數據集。假設在多達25個時間點觀察約50,000人(或更多)。有了這麼大的樣本量,我們包含了很多我們正在調整的預測因子 - 可能有50個左右的固定效應。我使用R中的lme4::glmer
來擬合二元結果的模型,併爲每個主題隨機截取。我不能進入具體的數據,但是我用了glmer
命令的基本格式是:lme4 :: glmer與Stata的melogit命令
fit <- glmer(outcome ~ treatment + study_quarter + dd_quarter + (1|id),
family = "binomial", data = dat)
其中兩個study_quarter
和dd_quarter
與各約20個級別的因素。
當我嘗試在R中適合這個模型時,它運行了大約12-15個小時,並返回了一個無法收斂的錯誤。我做了一些故障排除(例如,遵循these準則),沒有任何改進。並且收斂甚至沒有結束(最大梯度在5-10左右,而我認爲收斂標準是0.001)。
然後我嘗試使用melogit命令在Stata中擬合模型。該模型適合在2分鐘內,沒有收斂問題。相應的Stata命令是
melogit outcome treatment i.study_quarter i.dd_quarter || id:
是什麼給出的? Stata是否具有更好的擬合算法,還是更適合大型模型和大型數據集?真正令人驚訝的是運行時間有多不同。
[這裏](https://www.statalist.org/forums/forum/general-stata-discussion/general/1371838-gsem-not-estimating)就是相反情況的一個例子--R很快就會處理完全相同的SEM模型無法在Stata中進行估計。 – radek
我不確定,但它可能是glome中的二項式系列的默認選項是probit而不是logit?也許你可以添加'family = binomial(link =「logit」)'然後嘗試一下嗎? – eborbath
@radek - 感謝您的分享,但我專指混合效果建模,而不是SEM。我知道有很多情況下R「擊敗」Stata。 –