在本文中,咱們將用R語言對數據進行線性混合效應模型的擬合,而後可視化你的結果。ide
線性混合效應模型是在有隨機效應時使用的,隨機效應發生在對隨機抽樣的單位進行屢次測量時。來自同一天然組的測量結果自己並非獨立的隨機樣本。所以,這些單位或羣體被假定爲從一個羣體的 "人口 "中隨機抽取的。示例狀況包括測試
混合效應的線性模型在R命令lme4和lmerTest包中實現。另外一個選擇是使用nmle包中的lme方法。lme4中用於計算近似自由度的方法比nmle包中的方法更準確一些,特別是在樣本量不大的時候。優化
這第一個數據集是從Griffith和Sheldon(2001年,《動物行爲學》61:987-993)的一篇論文中提取的,他們在兩年內對瑞典哥特蘭島上的30只雄性領頭鶲的白色額斑進行了測量。該斑塊在吸引配偶方面很重要,但其大小每一年都有變化。咱們在這裏的目標是估計斑塊長度(毫米)。lua
讀取並檢查數據。設計
head(fly)
# 點陣圖 chart(patch ~ bird)
# 但顯示成對數據的更好方法是用成對的交互圖來顯示 plot(res=patch, x = year)
# 優化版本 plot(y = patch, x = factor(year), theme_classic)
擬合一個線性混合效應模型。summary()的輸出將顯示兩個隨機變異的來源:單個鳥類之間的變異(鳥類截距),以及對同一鳥類進行的重複測量之間的變異(殘差)。每一個來源都有一個估計的方差和標準差。固定效應只是全部鳥類的平均值--另外一個 "截距"。 3d
# 1.混合效應模型 # 2. 參數估計 summary(z)
# 5. 方差份量 VarCorr(z)
# 可重複性 1.11504^2/(1.11504^2 + 0.59833^2)
## [1] 0.7764342
# 7.殘差與擬合值的關係圖 plot(z)
Cronly-Dillon和Muntz(1965; J. Exp. Biol 42: 481-493)用視運動反應來測量金魚的色覺。在這裏,咱們將對數據進行擬合,包括測試的所有波長。5條魚中的每一條都以隨機的順序在全部的波長下被測試。敏感度的值大代表魚能夠檢測到低的光強度。視運動反應的一個重要特色是,魚不習慣,在一個波長下的視覺敏感度的測量不太可能對後來在另外一個波長下的測量產生影響。rest
*這是一個 "按實驗對象 "的重複測量設計,由於每條魚在每一個實驗下被測量一次。它本質上與隨機徹底區塊設計相同(把每條魚看做是 "區塊")。code
*可視化是首選,由於數據和擬合值都被繪製出來。請注意魚與魚之間的預測值是多麼的類似。這代表在這項研究中,個體魚之間的估計差別很是小。對象
***通常來講,在方差分析表中只測試固定效應。使用測試隨機效應中沒有方差的無效假設是可能的。blog
讀取並檢查數據。
x <- read.csv("fish.csv", stringsAsFactors = FALSE) head(x)
擬合一個線性混合效應模型。
該模型假設全部擬合值的殘差爲正態分佈,方差相等。該方法還假設個體魚之間的隨機截距爲正態分佈。該方法還假設組(魚)的隨機抽樣,對同一魚的測量之間沒有影響。
# # 1. 擬合混合效應模型。
## boundary (singular) fit: see ?isSingular
# 2. 這就爲每條魚分別繪製了擬合值。 vis(z)
# 3.測試假設 plot(z)
# 4. 提取參數估計值 summary(z)
# 6. 基於模型的平均敏感度估計 means(z)
# 7. ANOVA方差分析
項目實驗性地調查了國家公園的北方森林生態系統中施肥和食草的影響(Krebs, C.J., Boutin, S. & Boonstra, R., eds (2001a) Ecosystem dynamics of the Boreal Forest.Kluane項目. 牛津大學出版社,紐約)) ,目前的數據來自於一項關於植物資源和食草動物對底層植物物種防護性化學的影響的研究。
16個5x5米的小區中的每個都被隨機分配到四個實驗之一。1)用柵欄圍起來排除食草動物;2)用N-P-K肥料施肥;3)用柵欄和施肥;4)未實驗的對照。而後,16塊地中的每一塊被分紅兩塊。每塊地的一側(隨機選擇)在20年的研究中持續接受實驗。每塊地的另外一半在頭十年接受實驗,以後讓它恢復到未實驗的狀態。這裏要分析的數據記錄了歐蓍草(Achillea millefolium)中酚類物質的濃度(對植物防護化合物的粗略測量),歐蓍草是地塊中常見的草本植物。測量單位是每克乾重毫克丹寧酸當量。
*實驗採用了分塊設計,即整個塊被隨機分配到不一樣的實驗,而後將第二種實驗(持續時間)的不一樣水平分配到塊的一半。
*應該沒有差異,由於設計是徹底平衡的。
閱讀並檢查數據。
一個好的策略是對實驗類別進行排序,把對照組放在前面。這將使線性模型的輸出更加有用。
# 1. 讀取數據 # 2. 檢查 head(x)
# 3. 分組帶狀圖 # 首先,從新排列實驗類別 factor(treat,levels=c("cont","exc","fer","bo")) plot(data = x, y = log(phe), x = treat, fill = dura, color = dura)
# 4. 在多個面板上分別繪製成對的數據 plot(data = x,y = log(ach, x = dur, fill = dur, col = dur)
擬合一個線性混合效應模型。固定效應是 "實驗 "和 "持續時間",而 "塊"是隨機效應。擬合交互做用時,實驗水平之間的差別大小在持續時間水平之間會有所不一樣。
因爲隨機效應也存在(塊),係數表將顯示兩個隨機變化來源的方差估計。一個是擬合模型的殘差的方差。第二個是(隨機)塊截距之間的方差。
# 2. 擬合混合效應模型-無交互做用
# 3. 可視化 vis(z)
# 4. 包括交互項和再次視覺化 z.int <- lmer(log(phen.ach) ~ treatment * duration + (1|plot), data=x) vis(z.int, overlay = TRUE)
# 5. 繪製圖表以檢驗方差齊性(以及正態性) plot(z)
# 6. 係數 summary(z)
# 8. 模型擬合平均值 means(z, data = x)
# 9. 方差分析表 anova(z) # lmerTest中默認爲3類平方和。
# 10. 改成1類 anova(z, type = 1)