0
我有以下的一些實驗數據圖(見下文)。紅線是黑點的擬合曲線,這是實驗值。現在,0,0.583和1.916的前三個點形成了基線,接下來的兩個點2.083,2.416似乎是異常值。我如何編程擬合曲線,使其不考慮基線和異常值?目前,R顯然也試圖優化這些不相關的價值觀。如何排除R中曲線擬合的某些值?
x <-
c(0,0.583333,1.916666,2.083333,2.416666,2.5,3.666666,5.916666,9,16.75,20)
y <-
c(
0.05464,0.05453,0.0544,0.18043,0.18151,0.12551,0.18792,0.2497,0.28359,0.31734,0.3263
)
plot(x,y, ylim = range(c(0,0.45)), pch = 1)
fit <- nls(y ~ -p1/exp(x) + p1, start = list(p1 = 1))
xx <- seq(0,20, length = 200)
lines(xx, predict(fit, data.frame(x = xx)), col = "red")
只需忽略這些值。由於它們位於向量中的位置3和4,因此使用以下函數:plot(x [-c(3,4)],y [-c(3,4)],ylim = range(c(0,0.45)) ,pch = 1),並用x [-c(3,4)]替換x的任何其他實例。 – user1945827
這隻會刪除圖中的點,但擬合曲線將保持不變。我實際上想要擬合曲線只適合不是異常值或基線的值。當我使用y [-c(3,4)]作爲lm時,它會拋出一個錯誤:'解析錯誤(text = x,keep.source = FALSE)::2:0:意外結束輸入 1:〜' –
ste
從給定擬合過程的數據中移除基線值,但不存在「異常值」,只有「數據層」。 –