ggplot绘制drm剂量反应曲线及模型结合相关参数问题咨询
问题1:ggplot绘制与base R一致的drm拟合曲线
首先纠正代码笔误:你用到的剂量反应拟合函数drm来自drc包,代码中加载包的语句应为library(drc)而非library(drm)。
效果差异与log10变换后曲线消失的原因
- base R的
plot(model_drm)默认对X轴做对数变换,且会在对数尺度下均匀采样生成拟合点,保证低浓度段也有足够的采样密度,曲线形状完整。 - ggplot的
stat_smooth默认在原始线性X轴尺度下采样,低浓度段采样点极少,手动添加log10轴变换后,原始采样点分布不合理,就会出现曲线不显示、形状和base R不一致的问题。
对齐base R效果的实现代码
不要直接用stat_smooth调用drm,先基于拟合好的模型手动生成预测数据,再绘图即可完全对齐base R的效果:
library(drc) library(ggplot2) test_data <- data.frame(Conc = c(0.0004882812, 0.001953125 ,0.0078125, 0.03125 ,0.125 ,0.5), Response = c(1.616017 ,1.165835, 0.5783709, 0.3440007, 0.2668585, 0.2336709)) # 拟合drm模型 model_drm <- drm(Response ~ Conc, data=test_data, fct=LL.4()) # 生成对数尺度均匀的预测点,逻辑和base R plot完全一致 pred_x <- 10^seq(log10(min(test_data$Conc)), log10(max(test_data$Conc)), length.out = 100) pred_y <- predict(model_drm, newdata = data.frame(Conc = pred_x)) pred_data <- data.frame(Conc = pred_x, Response = pred_y) # 绘图效果和base R完全一致 ggplot() + geom_point(data = test_data, aes(x = Conc, y = Response)) + geom_line(data = pred_data, aes(x = Conc, y = Response)) + scale_x_continuous(trans = "log10")
问题2:四参数对数逻辑斯蒂模型哪个参数反映结合情况
四参数LL.4模型的参数含义如下:
b:希尔斜率,反映剂量反应曲线的陡峭程度,数值越大,曲线在半数有效浓度附近的变化速度越快c:响应下限,是浓度趋近于无穷大时的响应渐近值d:响应上限,是浓度趋近于无穷小时的响应渐近值e:ED50(半数有效浓度),即响应值达到(c+d)/2时对应的浓度
如果是结合实验场景:
- 反映结合亲和力的核心指标是
e参数,数值越小代表结合能力越强 - 如果需要判断结合的协同性,可以参考
b参数:b>1为正协同,b<1为负协同,b=1为非协同的简单结合
内容的提问来源于stack exchange,提问作者Sam_9090
相关产品推荐
相关产品推荐

