R

如何處理等於 1 或 -1 的隨機效應相關性?

  • January 15, 2018

在處理複雜的最大混合模型(估計給定數據和模型的所有可能隨機效應)時,這種情況並不罕見,在某些隨機效應之間是完美的(+1 或 -1)或幾乎完美的相關性。為了討論的目的,讓我們觀察以下模型和模型摘要

Model: Y ~ X*Cond + (X*Cond|subj)

# Y = logit variable 
# X = continuous variable 
# Condition = values A and B, dummy coded; the design is repeated 
# so all participants go through both Conditions 
# subject = random effects for different subjects 

Random effects:
Groups  Name             Variance Std.Dev. Corr             
subject (Intercept)      0.85052  0.9222                    
        X                0.08427  0.2903   -1.00            
        CondB            0.54367  0.7373   -0.37  0.37      
        X:CondB          0.14812  0.3849    0.26 -0.26 -0.56
Number of obs: 39401, groups:  subject, 219

Fixed effects:
                Estimate Std. Error z value Pr(>|z|)    
(Intercept)       2.49686    0.06909   36.14  < 2e-16 ***
X                -1.03854    0.03812  -27.24  < 2e-16 ***
CondB            -0.19707    0.06382   -3.09  0.00202 ** 
X:CondB           0.22809    0.05356    4.26 2.06e-05 ***

這些完美相關性背後的假定原因是我們創建了一個模型,對於我們擁有的數據來說太複雜了。在這些情況下給出的常見建議是(例如,Matuschek 等人,2017 年;論文)將過度參數化的係數固定為 0,因為這種退化模型往往會降低功效。如果我們在簡化模型中觀察到固定效應的顯著變化,我們應該接受那個;如果沒有變化,那麼接受原來的沒有問題。

但是,假設我們不僅對 RE 控制的固定效應(隨機效應)感興趣,而且對 RE 結構感興趣。在給定的情況下,理論上可以假設Intercept和斜率X具有非零負相關。幾個問題如下:

  1. 在這種情況下該怎麼辦?我們是否應該報告完美的相關性並說我們的數據“不夠好”來估計“真實”的相關性?還是我們應該報告 0 相關模型?或者我們是否應該嘗試將其他相關性設置為 0,以希望“重要”的相關性不再完美?我不認為這裡有任何 100% 正確的答案,我主要想听聽您的意見。
  2. 如何編寫將 2 個特定隨機效應的相關性固定為 0 的代碼,而不影響其他參數之間的相關性?

奇異隨機效應協方差矩陣

獲得+1或-1的隨機效應相關性估計意味著優化算法達到了“邊界”:相關性不能高於+1或低於-1。即使沒有明確的收斂錯誤或警告,這也可能表明收斂存在一些問題,因為我們不期望真正的相關性位於邊界上。正如您所說,這通常意味著沒有足夠的數據來可靠地估計所有參數。馬圖舍克等人。2017說,在這種情況下,權力可能會受到影響。

達到邊界的另一種方法是獲得 0 的方差估計:為什麼我的混合模型中隨機效應的方差為零,儘管數據有一些變化?

這兩種情況都可以看作是獲得隨機效應的退化協方差矩陣(在您的示例中,輸出協方差矩陣是); 零方差或完全相關意味著協方差矩陣不是滿秩的,並且[至少]其中一個特徵值為零。這一觀察立即表明,還有其他更複雜的方法來獲得退化協方差矩陣:可以有一個協方差矩陣沒有任何零點或完全相關,但仍然秩不足(奇異)。貝茨等人。2015 Parsimonious Mixed Models(未發表的預印本)推薦使用主成分分析(PCA)來檢查獲得的協方差矩陣是否是奇異的。如果是,他們建議以與上述單一情況相同的方式處理這種情況。

那麼該怎麼辦?

如果沒有足夠的數據來可靠地估計模型的所有參數,那麼我們應該考慮簡化模型。以您的示例模型為例X*Cond + (X*Cond|subj),有多種可能的方法可以簡化它:

  1. 去除其中一種隨機效應,通常是最高階相關:
X*Cond + (X+Cond|subj)

  1. 去掉所有相關參數:
X*Cond + (X*Cond||subj)

更新:正如@Henrik 所指出的,||只有在其左側的所有變量都是數字的情況下,該語法才會刪除相關性。如果涉及分類變量(例如Cond),則應該使用他方便的afex包(或繁瑣的手動解決方法)。有關更多詳細信息,請參閱他的答案。 3. 通過將術語分成幾個來擺脫一些相關參數,例如:

X*Cond + (X+Cond|subj) + (0+X:Cond|subj)

  1. 以某種特定方式約束協方差矩陣,例如,按照您的建議,將一個特定的相關性(觸及邊界的相關性)設置為零。沒有內置的方法lme4可以實現這一點。請參閱@BenBolker 對 SO 的回答,了解如何通過一些智能黑客來實現這一目標。

與你所說的相反,我不認為Matuschek 等人。2017特別推薦#4。Matuschek 等人的要點。2017 年和貝茨等人。2015 年似乎是從最大模型 a la Barr 等人開始的。2013然後降低複雜度,直到協方差矩陣滿秩。(此外,他們通常會建議進一步降低複雜性,以增加功率。)更新:相比之下,Barr 等人。建議僅在模型未收斂時降低複雜度;他們願意容忍奇異的協方差矩陣。請參閱@Henrik 的回答。

如果有人同意 Bates/Matuschek,那麼我認為可以嘗試不同的方法來降低複雜性,以便找到能夠在“損害最小”的同時完成工作的方法。看我上面的列表,原來的協方差矩陣有 10 個參數;#1 有 6 個參數,#2 有 4 個參數,#3 有 7 個參數。如果不擬合它們,就不可能說哪種模型會擺脫完美的相關性。

但是如果你對這個參數感興趣怎麼辦?

上述討論將隨機效應協方差矩陣視為令人討厭的參數。如果您對必須“放棄”以獲得有意義的全等級解決方案的相關參數特別感興趣,您會提出一個有趣的問題。

請注意,將相關參數固定為零不一定會產生ranef不相關的 BLUP ( );實際上,它們甚至可能根本不會受到太大影響(請參閱@Placidia 的演示答案)。因此,一種選擇是查看 BLUP 的相關性並進行報告。

另一個可能不太有吸引力的選擇是使用treat subjectas a fixed effect Y~X*cond*subj,獲取每個主題的估計值併計算它們之間的相關性。這相當於Y~X*cond對每個主題分別運行單獨的回歸併從中獲得相關估計。


另請參閱Ben Bolker 的混合模型常見問題解答中關於奇異模型的部分:

過度擬合的混合模型導致奇異擬合是很常見的。從技術上講,奇點意味著一些(方差-協方差Cholesky分解)Cholesky因子的對角元素對應的參數正好為零,是可行空間的邊緣,或者等價於方差-協方差矩陣有一些零特徵值(即是半正定而不是正定),或(幾乎等價地)一些方差估計為零或一些相關性估計為 +/-1。

引用自:https://stats.stackexchange.com/questions/323273

comments powered by Disqus