2013-01-09 127 views
2

我正在嘗試在重複測量的數據集上開發混合效果模型。重複測量的混合效果模型

Met上提交給3個處理24個樣品的一系列隨機選擇的天測量(Treat,具有水平cucga)。

Met由於日間天氣條件的差異而導致的水平變化(Date)。日期因此成爲模型的第二個隨機效應(以及取樣項目(ID))。

我的主要興趣是看看Treat在幾天內對Met是否有顯着影響。

一些樣本數據:

# create example data frame 
ID  <- factor(rep(c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x"), 6)) 
Treat <- factor(rep(c(rep("c",8), rep("uc",8), rep("ga",8)), 6)) 
Date <- factor(rep(c(rep("10/06/2007",24), rep("19/06/2007",24), rep("12/07/2007",24), rep("21/07/2007",24), rep("11/08/2007",24), rep("12/08/2007",24)), 1)) 
Met <- as.numeric(c(rnorm(8,5,2), rnorm(8,7,2), rnorm(8,9,2), 
         rnorm(8,15,2), rnorm(8,17,2), rnorm(8,19,2), 
         rnorm(8,9,2), rnorm(8,11,2), rnorm(8,13,2), 
         rnorm(8,8,2), rnorm(8,10,2), rnorm(8,12,2), 
         rnorm(8,2,2), rnorm(8,4,2), rnorm(8,6,2), 
         rnorm(8,3,2), rnorm(8,5,2), rnorm(8,7,2))) 
ww  <- gl(1,1,144) 

lys.data <- data.frame(ID, Treat, Date, Met, ww) 
head(lys.data) 

# set contrasts of data frame 
lys.data$Treat <- factor(lys.data$Treat,  levels=c("c", "uc", "ga")) 

然後分析:

library(nlme) 
lme.001 <- lme(Met ~ Treat, data = lys.data, 
       random=list(ww=pdBlocked(list(pdIdent(~Date-1), 
          pdIdent(~ID-1))))) 
summary(lme.001) 

從結果我得到它似乎我沒有做我認爲我做的自由度似乎不正確(太高)。實驗執行的重複次數(日期)會增加分母自由度的數量是否正確?

誰能幫助我,或指引我走向正確的方向? 我是不是在用我代表數據嵌套的方式出錯? (我認爲沒有)。

+0

這個問題可能是在家裏更多的stackoverflow,因爲它只是一個關於如何使用'lme'的問題。 – Macro

+2

我認爲這是非常特別的,沒有人會在SO有任何線索,除了可能whuber,如果他在那裏:)。 – StasK

+1

網站http://stats.stackexchange.com是這個問題更好的地方。 –

回答

2

lme用於計算分母自由度的規則在p。 Pinheiro和Bates的91(2000) - 這個頁恰好是可利用的on Google Books。 (該鏈接也可在GLMM faq page。)

更新:因爲這似乎不再是在谷歌圖書有用的形式提供,這裏的關鍵段落中的文字:

這些固定效應術語的條件測試需要分母自由度。在有條件的$ F $ - 測試的情況下,分子的自由度也是需要的,由該項本身決定。分母的自由度取決於該術語估計的分組級別。如果一個術語的值在分組因子的給定水平內可以改變,則該術語相對於一個因子被稱爲inner。如果一個術語的值在分組因子水平內沒有變化,則術語是外部到分組因子。如果一個術語在$ i-1 $ st分組因子的內部,並且在$ i $ th分組因子的外部,則據說估計爲$ i $的水平。例如,fm2Machine模型中的術語Machine位於Machine %in% Worker的外部,因此位於Worker的位置,因此估計爲2級(Machine %in% Worker)。如果一個術語對於模型中的所有$ Q $分組因子都是內在的,則它是在組內誤差水平下估計的,我們將其表示爲$ Q + 1 $ st水平。

截距是模型矩陣$ X_i $中所有1的列對應的參數,當它存在時,將與其他所有參數不同。作爲參數,它被認爲是在0級估計的,因爲它在所有分組因子中都是外部的。然而,它的分母自由度被計算爲好像它估計在$ Q + 1 $的水平。這是因爲即使$ X_i $中的相應列與級別沒有變化,截距也是彙集來自所有觀察值的信息的一個參數。

讓$ m_i $表示等級$ i $中的組的總數(當固定效應模型包含截距時約定爲$ m_0 = 1 $,否則爲0,$ m_ {Q + 1} = N $)和$ p_i $表示對應於估計在$ i $水平的項的自由度的總和,$ i $ th水平分母自由度被定義爲

$$ denDF_i = m_i - (m_ {i-1} + p_i),i = 1,\ dots,Q $$

該定義與平衡多級方差分析設計中的經典自由度分解一致,並給出了更合理的近似值一般混合效應模型。

我沒有檢查出你的例子很詳細,但我強烈懷疑,問題是你有一個隨機區組設計,而不是嚴格的嵌套設計,讓你的自由度比你高認爲。通常,殘差/分母df是(塊數-1)*(每塊數量1),而不是(正如您可能期待的那樣)嵌套設計的典型值(塊數-1):參見here , 例如。

在另一方面,它可能是lme聽錯了,如果設計十分複雜 - 在這種情況下,你可能要工作,自己出來,一個簡單的解決方案可能不存在。再次請參閱GLMM faq以獲取建議。