Difference between SAS and R results - Nonlinear Regression Hoping someone can assist with this rather niche question.
I have a routine built in R for analysing depreciation curves, which is fit according to a logistic model with an additional additive intercept term.
model = wrapnls(formula = outcome~ 1/(1 + exp(b*age-a))+c,
                data = data,
                start = c(a = 0,b= .01 ,c= 0),
                upper = c(a=100,b=100))

I fit this using nlmrt, as the Jacobian is probably poorly conditioned for some of the groups. Using nlmrt I achieve good results which exhibit satisfactory predictive power.
Conversely, when using proc Nlin in SAS, I get a strange effect where the intercept term (c and I for the R and SAS code respectively) effectively tries to dominate, blowing up close to the average of the dataset, while the exponential terms become very small. In reality, the intercept should simply set the lower bound for the terminal value on the asset.
SAS code looks as follows;
PROC NLIN DATA = Model_Data METHOD = MARQUARDT;
    PARMS  A = 0, B = 0 I=0;
    BOUNDS  A<5, B<5;
    MODEL outcome= 1/(1+exp(A*age- B))+I;
    ODS OUTPUT ParameterEstimates = Nlmixed_Params;
    RUN;

Can anyone help me understand these different behaviours, and maybe give me some advice on how to get SAS to more faithfully reproduce the results from R? 
 A: I think it is the algorithm you chose in SAS that made the difference.
According to SAS documentation, METHOD = MARQUARDT employs the Marquardt algorithm, which is as a Gauss-Newton algorithm with a ridging penalty, as shown in the following update:
$$
\begin{align*}
\hat{\boldsymbol \beta}^{(u+1)} &= \hat{\boldsymbol \beta}^{(u+1)} + k \Delta \\
\Delta &= (\mathbf{X'X} + \lambda \; \text{diag}(\mathbf{X'X}))^{-} \mathbf{X'r}
\end{align*}
$$
where $\boldsymbol r$ is the residual vector.

Marquardt’s method is equivalent to performing a series of ridge regressions, and it is useful when the parameter estimates are highly correlated or the objective function is not well approximated by a quadratic.

In your case where there is only one variable, you might not want to do this.
On the other hand, what warpnls in R does is following, as stated in documentation.

wrapnls first attempts to solve the nonlinear sum of squares problem by using nlsmnq, then takes the parameters from that method to call nls.

Checking the source code of nlsmnq and the algorithm it calls, nlxb, what I understand is nlxb is a Gauss-Newton based algorithm since the code computes only the gradient and Jacobian for algorithm update, no second derivatives (in which case is the Newton method). You can see the nlxb source code here. 
So the best thing you can do is to switch to other options for METHOD in SAS to see whether you can get similar results. I'd be curious to see what you get.
