該圖表示藥物濃度。
我想改變這個情節,比如曲線的 sigmoid 情節。
[原始資料]
μ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))
原始資料很小,但我想很好地表達出來,得到R-Square值。
uj5u.com熱心網友回復:
在原始(不是對數對數)尺度上,S 形曲線被證明是一個很好的擬合。
## pack data into a data frame (best practice)
dd <- data.frame(μM, DMSO)
## fit with "self-starting 4-parameter logistic model"
fit <- nls(DMSO ~ SSfpl(μM, l_asy, r_asy, xmid, scal), data = dd)
## plot:
par(las = 1, bty = "l") ## cosmetic
plot(DMSO ~ μM, data = dd) ## points
mvec <- seq(min(μM), max(μM), length.out = 101)
pvec <-predict(fit, newdata = data.frame(μM = mvec))
lines(mvec, pvec)
如果您想在對數對數刻度上繪制它,只需添加log = "xy"
到plot()
命令中,但請注意該圖看起來不是S 形曲線:
?SSfpl
網頁給出了等式
l_asy (r_asy-l_asy)/(1 exp((xmid-μM)/scal))
coef(fit)
會給你估計的系數。
至于 R^2:您可以通過計算 R^2 值1-mean(residuals(fit)^2)/var(μM)
(我認為 - 第二項可能因 n/(n-1) 左右而關閉,因為在分母中使用...)但是var()
有很多討論(你應該閱讀!)關于為什么你可能不想/為什么它可能不是你認為的意思......n-1
μM
PS:擁有一個不能在普通鍵盤上輕松輸入的變數名 ( ) 是一件令人討厭的事情——可能需要重新考慮這個選擇……
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/535400.html
標籤:r乙状结肠
上一篇:使用動態匯入時“找不到模塊”