对数正态BRM模型绘图:如何转换散点数据匹配模型尺度?
对数正态BRMS模型绘图数据尺度匹配问题解决方法
你遇到的核心问题是对数正态模型的拟合尺度(对数尺度)和原始数据尺度不匹配,导致散点与拟合线错位。可以通过以下两种方式解决:
方法一:将模型预测转换为原始响应尺度
直接在ggemmeans中指定transform = "response",让模型的拟合线和置信区间转换回原始的distance尺度,和原始散点保持一致:
model1.gge <- ggemmeans(model1, terms = c("height"), transform = "response") model1.plot <- plot(model1.gge, add.data=TRUE) + theme_bw() + theme(text = element_text(size = 15))
方法二:将原始数据转换为对数尺度匹配模型拟合尺度
如果希望在对数尺度上展示结果,手动转换原始数据后添加到图中:
# 转换原始数据到对数尺度 a03_log <- a03 %>% mutate(distance_log = log(distance)) # 绘制模型在对数尺度的预测曲线 model1.gge <- ggemmeans(model1, terms = c("height")) # 默认输出对数尺度的预测 # 添加转换后的散点 model1.plot <- plot(model1.gge) + geom_point(data = a03_log, aes(x = height, y = distance_log)) + theme_bw() + theme(text = element_text(size = 15))
关键参数说明
ggemmeans的transform参数:默认值为"linear"(对应模型的线性预测尺度,即对数正态的对数尺度),设置为"response"则会应用逆链接函数(lognormal对应指数函数),将预测值转换回原始响应变量的尺度。- 如果用
add.data=TRUE无法自动转换数据,就需要手动处理数据或调整模型预测的尺度,确保两者在同一坐标轴尺度下展示。
内容的提问来源于stack exchange,提问作者STHB
相关产品推荐
相关产品推荐

