问题描述
我对以下代码有疑问。 它正确计算了drc曲线,但错误地计算了ec50,尽管它们密切相关...
x <- c(-1,-0.114074,0.187521,0.363612,0.488551,0.585461,0.664642,0.730782,0.788875,0.840106,0.885926,0.92737,0.965202,1)
y <- c(100,3.978395643,0.851717911,0.697307565,0.512455497,0.482273052,0.479293487,0.361024717,0.355324864,0.303120838,0.286539832,0.465692047,0.358045152)
mat <- cbind(x,y)
df <- as.data.frame(mat)
calc <- drm(
formula = y ~ x,data = df,fct = L.4(names = c("hill","min_value","max_value","ec50"))
)
plot <- ggplot(df,aes(x=x,y=y),color="black") +
geom_point() +
labs(x = "x",y = "y") +
theme(
axis.title.x = element_text(color="black",size=10),axis.title.y = element_text(color="black",axis.line.x = element_line(color = "black"),axis.line.y = element_line(color = "black")
) +
stat_smooth(
formula = y ~ x,method = "drm",color="black",method.args = list(fct = L.4(names = c("hill","ec50"))),se = FALSE
) +
theme(panel.background=element_rect(fill="white"))+
ylim(0,NA)
ec50 <- ED(calc,50)
print(ec50)
print(calc)
print(plot)
但是如果我打印函数L.4的参数,我有如下结果:
hill:(Intercept) 6.3181
min_value:(Intercept) 0.3943
max_value:(Intercept) 111.0511
ec50:(Intercept) -0.6520
max_value:(Intercept) 显然是错误的(必须是 100),因此,ec50 也是错误的。
我还要补充一点,对于其他数据集,min_value:(Intercept) 也是错误的(值
我找不到错误,因为从同一个函数 L.4 导出的图形显示了正确的值。
非常感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)