You need to enable JavaScript to run this app. ggplot绘制drm剂量反应曲线及模型结合相关参数问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 20:09:02