r - 是否有任何函数可以计算 glmer 的部分响应?
问题描述
我通过库glmer
的功能使用混合效应模型lme4
。我想计算部分响应函数,但此类模型的函数不起作用response.plot2
。biomod2
我尝试自己这样做:
library(purrr)
library(lme4)
set.seed(1213)
Y_ <- purrr:: rbernoulli(150, p = 0.4)
Y <- ifelse(Y_=='TRUE', 1, 0)
years <- as.character(rdunif(150,b=5,a=1))
r1_ <- rnorm(150, 800, sd=50)
r2_ <- rnorm(150, 1000, sd=50)
my_data <- as.data.frame(cbind(Y, r1_, r2_, years))
colnames(my_data) <- c("Y", "r1", "r2", "years")
my_data$r1 <- as.numeric(as.character(my_data$r1))
my_data$r2 <- as.numeric(as.character(my_data$r2))
GLMM_MODEL_Model_ <- glmer('Y ~ r1*r2+ (1 | years)' ,
data = my_data, family=binomial(link="logit"),
control=glmerControl(optimizer="bobyqa",
optCtrl=list(maxfun=150000)))
my_preds_glmm <- c("r1", "r2")
DATA_PRATIAL_EFFECTS <- data.frame(matrix(0, nrow = nrow(my_data), ncol=1))
for(i in 1: length(my_preds_glmm)) {
Pr <- data.frame(matrix(0, nrow = nrow(my_data), ncol=2))
colnames(Pr) <- c(paste0("EFFC_",my_preds_glmm[i]) , paste0("VAR_",my_preds_glmm[i]))
Pr [, 2] <- my_data[, my_preds_glmm[i]]
DATA_PARTIAL <- data.frame(matrix(0, nrow = nrow(my_data), ncol=length(my_preds_glmm)))
colnames(DATA_PARTIAL) <- my_preds_glmm
DATA_PARTIAL[, i] <- my_data[, my_preds_glmm[i]]
Pr[, 1]<- predict(GLMM_MODEL_Model_, DATA_PARTIAL, type='response', re.form=NA)
DATA_PRATIAL_EFFECTS <- cbind(DATA_PRATIAL_EFFECTS, Pr)
}
DATA_PRATIAL_EFFECTS <- DATA_PRATIAL_EFFECTS[, -1]
我想对我的方法有一些看法。
解决方案
推荐阅读
- apache-spark-sql - 根据 Spark 查询中的列值填充早期记录中的值
- mysql - 使用连接更新时 Mysql 死锁
- unity3d - VS Code 找不到对某些 Unity 类的引用
- linux - SELinux AVC 拒绝 sshd 的“{ dyntransition }”
- laravel - 文件未上传到 Oracle DB
- regex - 正则表达式的形成和否定问题
- ansible - Packer Ansible 供应商正在跳过 Ansible 剧本中的任务
- runtime - 如何在 Colab Pro+ 中使用高内存
- c - 在 32 位架构上的函数中将 64 位值作为参数传递时会发生什么?
- c++ - 是否可以将“range-v3”包含与 c++“范围”包含混合?