我需要使用拟合模型来预测新值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