2013-09-25 81 views
3

我正在嘗試使用lmer函數運行混合效果模型。我的實驗包括使用一些相同的個體(一些缺失的數據)在不同溫度下的代謝率。文本文件的結構是這樣的:lmer模型中無效的分組因子規範

> str(data.by.animal) 
'data.frame': 18 obs. of 17 variables: 
$ animal: Factor w/ 18 levels "08_03","08_07",..: 17 6 5 10 15 14 11 12 16 9 ... 
$ temp : int 2 0 -2 -4 -6 -8 -10 -12 -14 -16 ... 
$ X2 : num 0.0129 0.0176 0.0132 NA 0.0144 0.0133 0.0101 

當我運行該腳本[model_1 <- lmer(X2 + X0 + X.2 + X.4 + X.6 + X.8 + X.10 + X.12 + X.14 + X.16 + X.18 + X.20 + X.22 + X.24 + X.26 ~ temp + (1 | animal), data.by.animal)]我得到如下:[Error in FUN(X[[1L]], ...) : Invalid grouping factor specification, animal]儘管諮詢「將R書」和這裏其他的答案,我仍處於虧損爲我要去哪裏錯了。

+0

我很抱歉,但這種模式規範沒有任何意義,我,如果這真的是你用過的。 'lmer'在'〜'的左邊需要一個* single *響應變量......這真的是你試過的嗎? –

+0

對@dhd的評論,已將其問題/評論發佈爲答案已刪除。您可以將其作爲新問題發佈。我可以看到,在你的公式或數據集中看起來唯一可疑的是,我們可以看到'time2'的所有值都是'NA' ...當你重新發布時,你是否也可以顯示'summary ()'(它會統計'NA'的數量)?或者「小滴(na.omit(test))」的結構? –

回答

0

在句法上,這是正確的。你想要爲隨機效應適合動物的隨機攔截模型。你有18個觀測值,動物是17個等級的因子,所以基本上最多隻有1個重複測量值。混合模型在這種情況下不會收斂。我敦促你重新考慮你在這裏的分析。

至於錯誤,lme4包源拋出此錯誤:

## convert grouping variables to factors as necessary 
    for (i in all.vars(x[[3]])) { 
     frloc[[i]] <- factor(frloc[[i]]) 
    } 
    ff <- eval(substitute(factor(fac), list(fac = x[[3]])), frloc) 
    if (all(is.na(ff))) 
     stop("Invalid grouping factor specification, ", 
      deparse(x[[3]])) 
你可能要考慮如何 animal編碼

。嘗試重新編碼爲其他值。

在shell引發錯誤後,能否打印traceback()的輸出?

+1

我認爲它在語法上不正確...... –

2

正如我的評論所述,這個模型規範沒有意義 - lmer需要在~的左側單個響應變量。它沒有經過測試,因爲這不是我們認爲有人做出的錯誤...(你想做什麼?你想爲每個變量分別運行分析嗎?)

我可以更多或者少轉載本文,只要在左側的要素之一是一個因素...

library(lme4) 

這確實東西,但我不知道是什麼......

lmer(Reaction + Days ~ (1| Subject), sleepstudy) 

它接近lmer(Reaction ~ (1|Subject), sleepstudy)(我可能已經預料到了 - 默默地忽視了LHS的第二個任期?),但不完全相同...

LHS上的因素是允許的,雖然他們沒有太大的意義(他們可能只是被轉換爲數字):

lmer(factor(Days) ~ (1| Subject), sleepstudy) 

如果我把他們兩個在我能得到的錯誤:

lmer(Reaction + factor(Days) ~ (1| Subject), sleepstudy) 
## Error in FUN(X[[1L]], ...) : 
## Invalid grouping factor specification, Subject 
## In addition: Warning message: 
## In Ops.factor(Reaction, factor(Days)) : + not meaningful for factors 
+1

除非OP隱瞞了關於如何編碼X.is的信息,否則公式中的LHS沒有任何因素。雖然錯誤是一樣的,但我們需要知道X.is是否是在我們確定這是問題之前的因素。 無論出於何種原因,R將解釋在公式對象的LHS上添加變量作爲單一和。用一個簡單的lm對象來試試這個,你會發現I(y1 + y2)〜x1給出了和y1 + y2〜x1相同的輸出。 與RHS中添加變量的對比,R將其解析爲設計矩陣的唯一列。 – AdamO