如何求R中逆方程的最佳拟合

如何求R中逆方程的最佳拟合,r,data-analysis,R,Data Analysis,我不知道如何找到一个逆方程的最佳拟合。我记录了数据,y和x的关系应该是y=a/x,a是我想要的值 我尝试过lm(),但不知道它是如何工作的。我也尝试过nls,但也不知道它是如何工作的 data <- read.csv("./data.csv") y <- data[["meanacceleration"]] x <- data[["massadded"]] u <- data[["uncertainty"]] exponential.model <- nls(y ~

我不知道如何找到一个逆方程的最佳拟合。我记录了数据,y和x的关系应该是y=a/x,a是我想要的值

我尝试过lm(),但不知道它是如何工作的。我也尝试过nls,但也不知道它是如何工作的

data <- read.csv("./data.csv")
y <- data[["meanacceleration"]]
x <- data[["massadded"]]
u <- data[["uncertainty"]]
exponential.model <- nls(y ~ a/x, start = (a = 1))
print(cor(y, predict(exponential.model)))
print(summary(exponential.model))
xx <- seq(240,1000, length=1000)
# massadded.exponential2 <- exp(predict(exponential.model, list(x = xx)))
plot(x, y, xlab = "Total mass", ylab="Mean Acceleration",ylim = range(c(y-u,y+u)) , pch=16)
arrows(x, y-u, x, y+u, length=0.1, angle=90, code=3)
lines(xx, predict(exponential.model), lty=2,col="red",lwd=3)



data问题在于
lm
函数如何处理1/x项。为了让
lm
识别反向,在“1/x”上使用asis函数
I()
,如下所示:
lm(y~I(1/x))
。现在,在计算线性回归之前,公式在x上取逆

x<-c(266.67, 390.94, 515.26, 639.53, 763.85, 888.16 ,1012.47)
y<-c(0.64693, 0.44720, 0.34464, 0.26055, 0.21952, 0.19185, 0.15060 

model <- lm(y~I(1/x))
print(cor(y, predict(model)))
print(summary(model))
     xx <- seq(240,1000, length=1000)
     prediction<-data.frame(x=xx)
     plot(x, y, xlab = "Total mass", ylab="Mean Acceleration" , pch=16)
     lines(prediction$x, predict(model, prediction), lty=2,col="red",lwd=3)

xIt更容易帮助您,如果您包含一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案。x是266.67 390.94 515.26 639.53 763.85 888.16 1012.47,y是0.64693 0.44720 0.34464 0.26055 0.21952 0.19185 0.15060,按照x[1]等于y[1]的顺序工作。谢谢