我以前在軟件包lme4中使用glmer()運行混合模型分析。我現在想在包nlme中使用lme()運行相同的分析。這是因爲隨後使用的函數需要輸出或調用lme()混合模型。如何將glmer()調用轉換爲lme();幷包括用於隨機效應的列表()
隨後使用的函數嘗試使用函數segmented.lme()在數據中查找斷點。這個函數的代碼可以在這裏找到:https://www.researchgate.net/publication/292986444_segmented_mixed_models_in_R_code_and_data
以前,我所使用的函數:
global.model <- glmer(response ~ predictor1*predictor2*predictor3*predictor4 + covariate1 + covariate2 + covariate3 + (1|block/transect), data=dat, family="gaussian", na.action="na.fail")
對於重複的例子,請參見下文。
請注意:隨機效應是:(1 |塊/橫切),即爲了解決塊與塊之間的橫切之間的交互作用。
現在,我不知道如何重寫lme()中的隨機效果部分以完全匹配glmer()中使用的代碼,特別是因爲segmented.lme()似乎需要「列表」。我曾嘗試以下方法:
random = list(block = pdDiag(~ 1 + predictor1))
請注意:我只對predictor1的數據中的潛在斷點感興趣。
需要的軟件包:lme4,NLME
這是數據的一個子集:
structure(list(block = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8"), class = "factor"), transect = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("B1L",
"B1M", "B1S", "B2L", "B2M", "B2S", "B3L", "B3M", "B3S", "B4L",
"B4M", "B4S", "B5L", "B5M", "B5S", "B6L", "B6M", "B6S", "B7L",
"B7M", "B7S", "B8L", "B8M", "B8S"), class = "factor"), predictor1 = c(28.63734661,
31.70995133, 27.40407982, 25.48842992, 21.81094637, 24.02032756
), predictor2 = c(5.002945364, 6.85567854, 0, 22.470422,
0, 0), predictor3 = c(3.72, 3.55, 3.66, 3.65, 3.53, 3.66),
predictor4 = c(504.8, 547.6, 499.7, 497.8, 473.8, 467.5),
covariate1 = c(391L, 394L, 351L, 336L, 304L, 335L), covariate2 = c(0.96671086,
2.81939707, 0.899512367, 1.024730094, 1.641161861, 1.419433714
), covariate3 = c(0.787505444, 0.641693911, 0.115804751,
-0.041146951, 1.983567486, -0.451039179), response = c(0.81257636,
0.622662116, 0.490330786, 0.709929461, -0.156398286, -1.185175095
)), .Names = c("block", "transect", "predictor1", "predictor2", "predictor3", "predictor4", "covariate1", "covariate2", "covariate3", "response"), row.names = c(NA, 6L), class = "data.frame")
提前任何建議非常感謝。
我也嘗試過:random = list(block = pdDiag(〜1 + predictor1),transect = pdDiag(〜1 + predictor1))。 segmented.lme()的結果與@Niek在這裏描述的相同。這支持關於pdDiag的評論。我非常感謝這方面的建議。 – tabtimm