excel 如何画出这张图并得到R中的剂量方程?

vxf3dgd4  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(111)

我在excel中得到了这个图形和方程。如何得到这个方程,图形和计算方法?

# Raw Data
μM <- c(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30)
log_μM <- log(c(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30))
DMSO <- c(97.01, 98.43, 98.29, 97.66, 96.51, 88.39, 38.54, 2.63) # D137
log_DMSO <- log(c(97.01, 98.43, 98.29, 97.66, 96.51, 88.39, 38.54, 2.63))
#DMSO <- c(98.29, 98.35, 99.79, 99.78, 100.43, 100.19, 99.51, 99.16) # STB-D8
dat <- data.frame(μM, DMSO)
log_dat <- data.frame(log_μM, log_DMSO)

我想在R中画一个图,得到R的平方值,方程!

o8x7eapl

o8x7eapl1#

这可能会得到你想要的。这个方程是线性的,不像你的例子。

R2 <- with(dat, cor(μM, DMSO)^2)
R2
dat.lm <- lm(DMSO~μM, dat)
summary(dat.lm)
x <- seq(min(dat$μM), max(dat$μM), length.out=100)
y <- predict(dat.lm, list(μM=x))
options(scipen=10)  # To prevent x-axis labels from using scientific notation
plot(DMSO~μM, dat, log="xy", main="Dose", pch=16, xlim=c(.01, 100), ylim=c(1, 1000), col="blue", las=1)
grid(col="darkgray")
lines(x, y, lty=3, col="blue")
mtext(bquote(""*R^2 ==.(round(R2, 4))), 3, line=.5, adj=1, cex=.75)
mtext(bquote(""*DMSO == .(round(coeff[1], 2))~"+"~.(round(coeff[2], 2))~"μM"), 3, line=1.3, adj=1, cex=.75)

要绘制S形曲线,您需要使用nls()和自启动功能SSlogis()

dat.nls <- nls(DMSO ~ SSlogis(μM, Asym, xmid, scal), data = dat)
x <- seq(0, 30, length.out=50)
plot(DMSO~μM, dat)
lines(x, predict(dat.nls, list(μM=x)), lty=2)
coeff <- coef(dat.nls)
mtext(bquote(""*DMSO == .(round(coeff[1], 2))~"/(1 + exp("~.(round(coeff[2], 2))~"- μM)/"~.(round(coeff[3], 2))~")"), 3, line=0, adj=1)

我没有添加R平方值,因为在如何用渐近函数计算它方面存在分歧。

相关问题