2013-09-25 20 views
3

我使用R中的glmer命令(來自lme4包)估計了一個隨機係數危險模型。該命令看起來像下面這樣。控制lme4 1.0中的最大迭代次數*

(logit.full <- 
    glmer(event ~ 
    + V12 * I(V1 - 2) 
    + V13 
    + V9 * I(V5 - 2) 
    + V11 
    + V10 
    + V2 
    + V3 
    + V4 
    + V6 + V7 + V8 
    + (1 + V6 + V7 + V8 | V14), 
    family=binomial("logit"), data=dataset, 
    verbose=TRUE, control=list(maxIter=400))) 

該模型過去三個月一直工作正常。現在,更新包後1.0-4,似乎有與「控制」命令一個問題,我得到了以下錯誤消息:

Warning in glmer(event ~ a1+a2+a3 : 
    Use control=glmerControl(..) instead of passing a list of class 「list」 
Error in function (optimizer = c("bobyqa", "Nelder_Mead"), restart_edge = FALSE, : 
    unused argument(s) (maxIter = 400) 

有誰知道如何解決這個問題?

+0

嗯。也許你應該使用'control = glmerControl(..)'而不是傳遞一個「list」類的列表。 –

+0

感謝您的有益提示。我的問題是,我不知道如何限制迭代與控制= glmerControl(..)命令 – user2206985

回答

4

?glmerControl

optCtrl:一個的附加參數「列表」將被傳遞到所述 非線性優化器(見「Nelder_Mead」,「bobyqa」)。特別是,'Nelder_Mead'和'bobyqa'使用'maxfun'來指定 ,它們將在放棄之前嘗試的最大功能評估數量爲 - 與'optim'和 'optimx'-wrapped優化器相反,它們使用「麥克斯特」。

無可否認,這是一個相當長而複雜的幫助頁面的一小部分。因爲control=glmerControl(optCtrl=list(maxfun=...))應該這樣做。

我可以看到這很可能是一個常見問題,所以我們可能會增加一些特殊的代碼來檢測這種情況下(和/或添加更顯眼的字條,文檔)。

+0

好吧,非常感謝。然而,現在使用的包的新uptdate後,我得到第一警告「警告在rankMatrix(X): rankMatrix(<大稀疏矩陣>,方法=‘tolNorm2’)強制轉換到稠密矩陣 大概應而使用。 method ='qrLINPACK'!?「並且在計算模型之後,模型未能收斂的錯誤消息。但是,在該軟件包的以前版本中,該模型運行良好。是否有可能返回舊版本的軟件包? (當我現在嘗試安裝0.999999-2.tar.gz時,出現與R 2.15-3不兼容的錯誤) – user2206985

+0

您應該能夠安裝'lme4.0',一個向後兼容的版本'lme4 '。它位於'http:// lme4.r-forge.r-project.org/repos'的版本庫中,但版本爲2.15的版本可能有點舊。你有多種選擇,但是它們取決於你的操作系統,無論你是否安裝了編譯工具等等。我也會對看到你的數據感興趣;當你在'lme4'的舊版本中運行模型時,你會得到大的係數值(| beta |> 5)嗎? –

+0

我正在使用Windows 7的64位版本。當我嘗試安裝lme4版本0.99999911-1時,出現錯誤消息:「install.packages中的警告:package C /.../ lme4_0.99999911-1。 zip'不可用(對於R版本2.15.3)「。我有一個大於5的係數(5.16),20個係數的其餘部分在下面。 – user2206985