我试图用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
命令的问题,或者找不到指定的变量。如果有人有任何解决办法,我将非常感激!
发布于 2020-01-12 14:25:31
根据我收到的评论回答我自己的问题。问题在于我在多项式中的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)
https://stackoverflow.com/questions/59674317
复制相似问题