線性混合模型及R實現

原文鏈接:https://blog.csdn.net/sinat_26917383/article/details/51636011

一般統計模型中的橫截面迴歸模型中大致可以分爲兩個方向:一個是交互效應方向(調節、中介效應)、一個是隨機性方向(固定效應、隨機效應)。

兩個方向的選擇需要根據業務需求:

交互效應較多探究的是變量之間的網絡關係,可能會有很多變量,多變量之間的關係;

而隨機性探究的是變量自身的關聯,當需要着重顧及某變量存在太大的隨機因素時(這樣的變量就想是在尋在內生變量一樣,比如點擊量、不同人所在地區等)纔會使用。具體見: 

筆記︱橫截面迴歸模型中的兩大方向(交互效應+隨機性)

___________________________________________________________________________________

一、線性混合模型理論
普通的線性迴歸只包含兩項影響因素,即固定效應(fixed-effect)和噪聲(noise)。噪聲是我們模型中沒有考慮的隨機因素。而固定效應是那些可預測因素,而且能完整的劃分總體。例如模型中的性別變量,我們清楚只有兩種性別,而且理解這種變量的變化對結果的影響。

線性混合模型與普通的線性模型不同的地方是除了有固定效應外還有隨機效應。

    那麼爲什麼需要 Mixed-effect Model?因爲有些現實的複雜數據是普通線性迴歸是處理不了的。例如我們對一些人羣進行重複測量,此時存在兩種隨機因素會影響模型,一種是對某個人重複測試而形成的隨機噪聲,另一種是因爲人和人不同而形成的隨機效應(random effect)。如果將一個人的測量數據看作一個組,隨機因素就包括了組內隨機因素(noise)和組間隨機因素(random effect)。這種嵌套的隨機因素結構違反了普通線性迴歸的假設條件。

    你可能會把人員(組間的隨機效應)看作是一種分類變量放到普通線性迴歸模型中,但這樣作是得不償失的。有可能這個factor的level很多,可能會用去很多自由度。更重要的是,這樣作沒什麼意義。因爲人員ID和性別不一樣,我們不清楚它的意義,而且它也不能完整的劃分總體。也就是說樣本數據中的路人甲,路人乙不能完全代表總體的人員ID。因爲它是隨機的,我們並不關心它的作用,只是因爲它會影響到模型,所以不得不考慮它。因此對於隨機效應我們只估計其方差,不估計其迴歸係數。

    混合模型中包括了固定效應和隨機效應,而隨機效應有兩種方式來影響模型,一種是對截距影響,一種是對某個固定效應的斜率影響。前者稱爲 Random intercept model,後者稱爲 Random Intercept and Slope Model。Random intercept model的函數結構如下

        Yij = a0 + a1*Xij +  bi + eij 

a0: 固定截距
a1: 固定斜率
b: 隨機效應(隻影響截距)
X: 固定效應
e: 噪聲

      

混合線性模型有時又稱爲多水平線性模型或層次結構線性模型由兩個部分來決定,固定效應部分+隨機效應部分.

(以上內容來源於數據挖掘入門與實戰公衆號)


1、模型簡述


混合線性模型有時又稱爲多水平線性模型或層次結構線性模型由兩個部分來決定,固定效應部分+隨機效應部分。

2、協方差結構


來源於論文混合線性模型的應用(該論文涉及到兩個案例),爲了減少混合線性模型中方差協方差矩陣中參數的個數,統計學家提供了一些方差協方差矩陣(Y)的系統結構模式供實際工作應用。
常見的協方差結構有:

3、與普通線性迴歸模型以及廣義線性模型的區別(參考經管之家論壇帖子)

(1)線性迴歸模型,適用於自變量X和因變量Y爲線性關係,具體來說,畫出散點圖可以用一條直線來近似擬合。一般線性模型要求觀測值之間相互獨立、殘差(因變量)服從正態分佈、殘差(因變量)方差齊性

(2)線性混合模型,在線性模型中加入隨機效應項,消了觀測值之間相互獨立和殘差(因變量)方差齊性的要求。

(3)廣義線性模型,是爲了克服線性迴歸模型的缺點出現的,是線性迴歸模型的推廣。首先自變量可以是離散的,也可以是連續的。離散的可以是0-1變量,也可以是多種取值的變量。廣義線性模型又取消了對殘差(因變量)服從正態分佈的要求。殘差不一定要服從正態分佈,可以服從二項、泊松、負二項、正態、伽馬、逆高斯等分佈,這些分佈被統稱爲指數分佈族。

      關於分佈:因變量的分佈有放寬,但是自變量沒有分佈的要求

與線性迴歸模型相比較,有以下推廣:

a、隨機誤差項不一定服從正態分佈,可以服從二項、泊松、負二項、正態、伽馬、逆高斯等分佈,這些分佈被統稱爲指數分佈族。

b、引入聯接函數$g(\cdot )$。因變量和自變量通過聯接函數產生影響。根據不同的數據,可以自由選擇不同的模型。大家比較熟悉的Logit模型就是使用Logit聯接、隨機誤差項服從二項分佈得到模型。

(4)與分層線性模型(HLM)的區別。

介於線性模型與分層線性模型之間,線性混合模型平行地以加入解釋變量的形式加入了隨機效應,分層線性模型是以係數項爲二層迴歸引入了隨機效應。分層線性模型較之線性混合模型更具隨機性。

___________________________________________________________________________________

二、R語言中的線性混合模型


來自博客R中的線性混合模型介紹(翻譯博客)(來自科學網鄧飛博客)原來來自:http://www.r-bloggers.com/linear-mixed-models-in-r/

1、nlme lme4 Asreml包


R中有很多軟件包可以做混合線性模型,這裏我只介紹nlme、lme4和ASreml(對!ASreml是商業版,但是還有對應的R包),這些都是基於Reml的算法,當然還有一些包是基於貝葉斯的算法,這部分在其他章節介紹。

幾個包的介紹:

nlme

這是一個比較成熟的R包,是R語言安裝時默認的包,它除了可以分析分層的線性混合模型,也可以處理非線性模型。在優勢方面,個人認爲它可以處理相對複雜的線性和非線性模型,可以定義方差協方差結構,可以在廣義線性模型中定義幾種分佈函數和連接函數。

它的短板:
1、隨機效應的定義過於呆板
2、數據量大時速度很慢
3、默認情況下不能處理系譜數據
4、不能處理多元數據。

lme4

lme4包是由Douglas Bates開發,他也是nlme包的作者之一,相對於nlme包而言,它的運行速度快一點,對於睡覺效應·隨機效應的結構也可以更復雜一點,但是它的缺點也和nlme一樣

1、不能處理協方差和相關係數結構
2、它可以與構建係數的包連接,比如mmpedigree包,但是結合比較脆弱。

ASReml-R

ASReml-R是ASReml的R版本,它的優點:
1、可以處理複雜的隨機因子結構
2、可以處理多元數據
3、可以處理系譜數據
4、可以處理大批量的數據

主要的缺點:
1、它是收費的,當然它對於不發達國家的科研機構是免費的,不過需要申請和被審覈。
它的用戶主要是育種公司、科研機構等,它可以在各種平臺上運行,包括Windows、Linux、OS X等。


2、R語言案例


數據來源:一個傳統的裂區數據來說明不同軟件包的用法,這個數據oats是在MASS包中,是研究大麥品種和N肥處理的裂區試驗,其中品種爲主區,肥料爲裂區。

library(MASS)
data(oats)
names(oats) = c('block', 'variety', 'nitrogen', 'yield')


3、nlme包


用這個包很簡單,y-變量寫在左邊,然後是固定因子,然後是隨機因子,注意1|block/mainplot是裂區試驗殘差的寫法,因爲裏面有兩個殘差。代碼如下:

library(nlme)
m1.nlme = lme(yield ~ variety*nitrogen,
                     random = ~ 1|block/mainplot,
                     data = oats)
 
summary(m1.nlme)

方差分析結果爲:
anova(m1.nlme)
                numDF denDF   F-value p-value
(Intercept)          1    45 245.14333  <.0001
variety              2    10   1.48534  0.2724
nitrogen             3    45  37.68561  <.0001
variety:nitrogen     6    45   0.30282  0.9322


如果假設認爲這些調查對象是同質的,也就是個體間沒有差異性,那麼可以將數據完全彙集(complete pooling)到一起,直接利用lm函數進行迴歸。但這個混合效應模型的同質假設往往不成立,數據彙集導致過度簡化。另一種思路是假設研究的異質性,將不同的個體分別進行迴歸,從而得到針對特定個體的估計值,這稱爲不彙集(no pooling)。但這種方法導致每個迴歸所用到的樣本減少,從而難以估計統計量的標準差。

       多層迴歸模型的思路是前兩者的折中,所以又稱爲部分彙集(partial pooling)。在R語言中我們使用mgcv包中的lmer函數來完成這項工作。首先載入faraway包以便讀取psid數據集,然後加載mgcv包,再將年份數據中心化以方便解釋模型,最後用lmer函數進行建模。


4、lme4包


lme4包的語法也相似,隨機效應有着和nlme相同的語法,不同的是lme4包它的結果給出了隨機效應的標準差,而不是方差。

library(lme4)
m1.lme4 = lmer(yield ~ variety*nitrogen + (1|block/mainplot),
                      data = oats)
 
summary(m1.lme4)
anova(m1.lme4)

lmer函數使用和lm是類似的,一般變量表示固定效應,括號內豎線右側的person表示它是一個隨機效應,它與模型中其它變量相加,而且與年份cyear變量相乘,影響其斜率。這就是一個隨機效應模型。如果認爲隨機效應隻影響模型截距,那麼固定效應迴歸模型可以用下面的公式
5、ASReml-R包


它的功能很強大,用在這裏有些殺雞用牛刀的感覺。代碼如下:
library(asreml)
m1.asreml = asreml(yield ~ variety*nitrogen,
                  random = ~ block/mainplot,
                  data = oats)
summary(m1.asreml)$varcomp
wald(m1.asreml)


___________________________________________________________________________________

三、線性混合模型解讀


1、難點


建模前提:數據服從正態分佈的假設;

固定、隨機效應變量選擇:哪些變量歸類到隨機效應(相關性比較強,而且不是主要研究對象,同時自身存在一定隨機性,比如搜索點擊數據,自身就不受控制,存在很多隨機因素);固定效應(主要研究的解釋變量)。

協方差結構的選擇:可以利用AIC、BIC指標來判斷,常見的有8個協方差結構。

2、案例一:論文《混合線性模型的應用》的案例解讀


模型爲:成績(被解釋變量)=性別(固定效應)+地區(隨機效應)

協方差結構的選擇:將隨機參數向量的方差協方差矩陣設置爲無結構型。

剩餘誤差ε的方差估計值爲105.06,地區隨機效應的方差估計值g=25.95,但無統計學意義,表示地區間的變異不大( 由於樣本含量較小之故)。比較這 2 個值的大小反映考試成績在同一地區內學生間的變異大於地區間的變異。爲了更好地解釋模型,仍將地區隨機效應保留在模型中。

一個學生的考試成績的總方差爲105.06+25.95,可以估計出組內相關係ρ=25.95/(105.06+25.95)=0.1980,這表示同一
地區學生考試成績的聚集性達到近,20%。


固定效應變量性別對學生考試影響的參數估計值爲9.911,具有統計學意義。男生的平均成績預報值爲69.4分,女生的平均成績預報值爲69.4+9.91=79.31分。這一預報值是控制地區變異後的結果,不同於模型中的條件平均預報值。


3、案例二:分析不同手術方案病人的前蛋白含量在手術前後變化情況(論文《混合線性模型的應用》的案例解讀)


協方差結構的選擇:在分析協變量的效應前,先要選擇一個合適的方差協方差矩陣。 在配合的8種協方差結構中, 綜合考慮協方差參數個數及信息量指標值,特別是BIC以具有2個參數AR(1)的 ,AR(1)效果最好。 故選用AR(1)作爲本例的方差協方差結構。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章