Can nonlinear regression identify this equation? I want to estimate the following regression equation:
$y = a + \frac{b}{r*x + 1}$
x is the independent variable, and a, b and r are parameters to be estimated. I have been told that the model is not identified, I suppose because I am trying to estimate both b and r with just one independent variable. Theoretically, what I am most interested in a, which is the asymptotic value of y as x approaches infinity.
However, I was wondering if this model can be identified in a nonlinear regression procedure, for example by using the nl command in stata or the nlstools package in R?
 A: Yes, nonlinear least squares regression can estimate this. The idea is similar to linear least squares regression. You find estimates $\hat a$ of $a$, $\hat b$ of $b$, and $\hat r$ of $r$ such that, for $\hat y = \hat a +\frac{\hat b}{1 + \hat r x}$, the sum of squared residuals,$\overset{N}{\underset{i=1}{\sum}}\left(y_i - \hat y_i\right)^2$, is minimized. As usual, $\left(y_i - \hat y_i\right)^2$ is the residual for true value $y_i$ and prediction $\hat y_i$.
Unlike ordinary least squares linear regression, however, there is not necessarily a clean formula to calculate the parameter estimates like OLS has $\hat\beta_{ols} = (X^TX)^{-1}X^Ty$. Consequently, numerical methods will be required. Fortunately, software exists do do just that, as I demonstrate below with some R code that you might find yourself using.
set.seed(2023)
N <- 1000
a <- 1
b <- 200
r <- 3
x <- runif(N, 0, 20)
y <- a + (b)/(1 + r*x) + rnorm(N, 0, 3)
model <- nls(
  y ~ a + b/(1 + r*x),
  start = list(a = 1, b = 100, r = 1)
  )
model
summary(model)

You have to pick starting guesses for your parameters, which is what I do in the start line. You can fiddle with the starting parameters to see how sensitive your estimates are.
