我正在尝试使用lme4
量化混合模型中变量的效应大小,但我似乎无法让它与在两个变量之间创建非线互作用的poly()
函数一起使用。
library(lme4)
library(lmerTest)
library(readr)
mydata <- read_csv("https://raw.githubusercontent.com/HaydenSchilling/Example_code_and_data/master/example_data2.csv")
m1 <- lmer(CPUE.standardised ~ poly(cbind(X135_degree_winds.standardised,
X45_degree_winds.standardised), degree = 2) +
Estuary_Type * Drought_Months + (1|Estuary), data = mydata)
anova(m1)
summary(m1)
library(ggeffects)
ggpredict(m1, terms = "X135_degree_winds.standardised")
最后一行给出错误:
错误:在
.data
中找不到列cbind
。 调用rlang::last_error()
以查看回溯
我已经尝试了ggeffects
和sjPlot
软件包,但都遇到了cbind
命令的问题或找不到指定的变量。如果有人有任何解决方案,我将不胜感激!
根据我得到的评论回答我自己的问题。问题出在多项式中的cbind
命令上。解决方案是更改模型结构以不包括cbind
。
与原始问题中的模型等效的模型是:
m2 <- lmer(CPUE.standardised ~ poly(X135_degree_winds.standardised, degree = 2) +
poly(X45_degree_winds.standardised, degree = 2) +
X135_degree_winds.standardised:X45_degree_winds.standardised+
Estuary_Type * Drought_Months + (1|Estuary), data = mydata)
然后,这允许计算边际效应。
还建议改进模型结构,如:
poly(X135_degree_winds.standardised, degree = 2)*
poly(X45_degree_winds.standardised, degree = 2)