2013-03-28 66 views
2

我正在運行分段線性隨機係數模型,測試協變量對第二部分的影響。因此,我想測試第二條在協變量(第二條+第二條:協變量)影響下的係數是否與第一條(第一條)的係數不同,因此增長率是否不同。測試係數差異包括來自分段線性模型的相互作用

我設置一些示例性數據:

set.seed(100) 

# set up dependent variable 
temp <- rep(seq(0,23),50) 
y <- c(rep(seq(0,23),50)+rnorm(24*50), ifelse(temp <= 11, temp + runif(1200), temp + rnorm(1200) + (temp/sqrt(temp)))) 

# set up ID variable, variables indicating pieces and the covariate 
id <- sort(rep(seq(1,100),24)) 
piece1 <- rep(c(seq(0,11), rep(11,12)),100) 
piece2 <- rep(c(rep(0,12), seq(1,12)),100) 
covariate <- c(rep(0,24*50), rep(c(rep(0,12), rep(1,12)), 50)) 

# data frame 
example.data <- data.frame(id, y, piece1, piece2, covariate) 

# run piecewise linear random effects model and show results 
library(lme4) 
lmer.results <- lmer(y ~ piece1 + piece2*covariate + (1|id) , example.data) 
summary(lmer.results) 

我橫跨linearHypothesis從汽車包()命令來測試在係數的差異。但是,在包含交互時,我找不到如何使用它的示例。

我甚至可以使用linearHypothesis()來測試這個還是我瞄準了錯誤的測試?

我感謝您的幫助。 非常感謝提前! 的Mac

回答

1

假設你的輸出看起來像這樣

    Estimate Std. Error t value 
(Intercept)  0.26293 0.04997  5.3 
piece1   0.99582 0.00677 147.2 
piece2   0.98083 0.00716 137.0 
covariate   2.98265 0.09042 33.0 
piece2:covariate 0.15287 0.01286 11.9 

如果我理解正確的話,你想要什麼,你正在尋找的對比: piece1-(piece2 + piece2:協)

c(0,1,-1,0,-1) 

我的首選工具是功能estimable in gmodels;你也可以通過手工或Frank Harrel的軟件包中的一個功能來完成。

library(gmodels) 
estimable(lmer.results,c(0,1,-1,0,-1),conf.int=TRUE) 

   Estimate Std. Error p value Lower.CI Upper.CI 
(0 1 -1 0 -1) -0.138  0.0127  0 -0.182 -0.0928 
+0

非常感謝您有用的答案。對比似乎可以解決我的問題。 如果我理解正確,用c(0,1,-1,0,-1)指定對比度是指將相應的權重分配給來自lmer模型的係數,因此1代表piece1,-1代表piece2和piece2 :協變量,0代表截距和協變量,因爲它們不是對比度的一部分。然而,閱讀關於對比和看其他例子,我發現對比度的權重必須總和爲零。在這個例子中,它們將總和爲-1。是否正確對比了對比度? – Mac

+0

這取決於您開始使用的對比類型;在R(除S-Plus外),默認情況下,這些已經是治療對比。請注意,接受答案被認爲是禮貌的。 –

+0

@DieterMenne - 讓我做到這一榮耀! –