我需要使用擬合模型來預測新值y
的相應x
值。使用擬合模型預測Y值的X值
從一個新的x
值預測y
價值的通常情況下是通過使用predict
功能簡單,但我無法弄清楚如何做反向。
對於具有多個x
解決方案的情況,我希望獲得x
值範圍內的所有解決方案,即1-10
。並且新的y
將始終在用於擬合模型的y
值的範圍內。
查看下面的示例代碼,我需要找到新的x值(new_x
)。
x = seq(1:10)
y = c(60,30,40,45,35,20,10,15,25,10)
fit = lm(y ~ poly(x, 3, raw=T))
plot(x, y)
lines(sort(x), predict(fit)[order(x)], col='red')
new_y = 30
new_x = predict(fit, data.frame(y=new_y)) #This line does not work as intended.
編輯1:反轉配件
擬合反演關係不會產生相同的模式,因爲我們得到了一個不同的模型/擬合線。
rev_fit = lm(x ~ poly(y, 3, raw=T))
plot(x, y)
lines(sort(x), predict(fit)[order(x)], col='red')
lines(predict(rev_fit)[order(y)], sort(y), col='blue', lty=2)
讓我告訴你例子。如果你有y = 2x + 3那麼對於x = 1 y是5,所以對於y = 13 x等於=(y-3)/ 2 –
對於簡單的情況,可以手動計算。但我正在尋找R中可能錯過的實現函數。我真正的模型涉及樣本負二項分佈,所以理想情況下我不想自己解決這個問題。 (當然,除非這是唯一的方法。) – cylim
難道你不能只是用另一種方式建立你的模型嗎?擬合x到y?或者我錯過了什麼。 – PinkFluffyUnicorn