2016-11-19 47 views
1

我對某些數據運行LMEM(線性混合效應模型),並將模型(成對)與anova函數進行比較。但是,在特定的數據子集上,我收到了無意義的結果。LMEM:卡方= 0,問題= 1 - 我的代碼出了什麼問題?

這是我的全部型號:

m3_full <- lmer(totfix ~ psource + cond + psource:cond + 
    1 + cond | subj) + (1 + psource + cond | object), data, REML=FALSE) 

這是我比較它的模型:(基本上輟學的主要影響之一)

m3_psource <- lmer (totfix ~ psource + cond + psource:cond - 
psource + (1 + cond | subj) + (1 + psource + cond | object), 
    data, REML=FALSE) 

運行anova()功能(anova(m3_full, m3_psource) returns Chisq = 0,pr>(Chisq)= 1

我對其他一些LMEMs也是這樣做的,一切看起來都很好,只是這個特殊的resp這個值給我奇怪的卡方和概率值。任何人都有一個想法,爲什麼以及如何修復它?任何幫助都感激不盡!

回答

1

這實際上並不是一個混合模型特有的問題,而是與R從公式(以及可能與模型比較的邏輯)構建模型矩陣的方式有關。

讓我們縮小它

form1 <- ~ psource + cond + psource:cond 

form2 <- ~ psource + cond + psource:cond - psource 

(其等同於~cond + psource:cond)之間的比較。這兩個公式給出了等價的模型矩陣,即具有相同列數的模型矩陣,跨越相同的設計空間,並給出相同的整體擬合優度。

製作了一個最小數據集探索:

dd <- expand.grid(psource=c("A","B"),cond=c("a","b")) 

什麼構造變量,我們會得到每個公式?

colnames(model.matrix(form1,data=dd)) 
## [1] "(Intercept)" "psourceB"  "condb"   "psourceB:condb" 

colnames(model.matrix(form2,data=dd)) 
## [1] "(Intercept)" "condb"   "psourceB:conda" "psourceB:condb" 

我們得到相同數量的對比。

對此問題有兩種可能的答案。

  1. 有思想的一所學校(由內爾德,維納布爾斯等:如看到代表維納布爾斯著名的(?),但是未公佈exegeses on linear models,在principle of marginality部分5,或維基百科),指出它不」在交互條件的存在下嘗試測試主效應是有意義的,這就是你想要做的。

  2. 偶爾情況下(例如,在前後對照控制影響力的設計,其中「前」的控制和影響之間的差異被稱爲是零由於實驗協議),您真的想這樣做這個比較。在這種情況下,您必須製作自己的虛擬變量並將其添加到數據中,例如

## set up model matrix and drop intercept and "psourceB" column 
dummies <- model.matrix(form1,data=dd)[,-(1:2)] 
## d='dummy': avoid colons in column names 
colnames(dummies) <- c("d_cond","d_source_by_cond") 
colnames(model.matrix(~d_cond+d_source_by_cond,data.frame(dd,dummies))) 
## [1] "(Intercept)"  "d_cond"   "d_source_by_cond" 

這是一個麻煩。我猜測這很困難的原因是,R和S的原作者之前是來自思想學派#1,並認爲通常當人們試圖這樣做時,這是一個錯誤;他們並沒有做到不可能,但他們並沒有竭盡全力讓事情變得容易。

+0

謝謝!當我比較兩個其他模型(沒有一個主效應vs完整一個),來自同一個數據集的不同響應變量時,我沒有得到同樣的問題(chisq和概率是正常的)。當我取出任何主效應時,以及與只有隨機效應的模型進行比較時,我只得到了chisq = 0和prob = 1,並且只對響應變量'totfix'進行了比較。我還應該補充說我已經對'psource'和'cond'因素做了偏差編碼(不知道這有多相關)。任何想法,爲什麼這可能是?不過,我會嘗試虛擬編碼,希望它能解決問題! – Liritha

+0

嗯,不知道沒有進入更多的細節。儘管......根據我的觀點,你的評論的第一句話有點令人驚訝,應該僅僅依賴於預測變量(數字與因素,主要與交互)。 *如果*你手動編寫你的交互,或者根據數字輸入變量,我認爲它應該工作。 (但請記住上面第1點中概括的想法......) –

相關問題