fitting linear region in a semi-log plot

Hello,

I am following an analysis for my data in which fitting a "linear region" of a semi-log plot can provide some important parameters. Now, the data can be depicted as y vs x with the left axis set to Log (to identify the fit region), and then fit to an equation of f(x) = 10^(m*x +b). The result will depict a linear region of the semi-log plot.

Now, the reported fit parameters, m and b, are related to, but are not the slope and intercept of this "linear line". How can I have the fitting routine report the slope and y-intercept of the "linear region" of the semi-log plot.

Would it be possible to modify the data wave I am fitting and then simply proceed with a normal linear fit?
Yes:
Duplicate/O ydata, logydata
logydata = log(ydata)

But I think you know that already!

Fitting the transformed data implies that the measurement errors in Y are proportional to the Y values. That is, as the Y values decrease, so do the errors. If the errors have constant variance in Y, then fitting the transformed data will introduce bias.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
Fitting 10^(m*x+b) to f(x) or fitting (m*x+b) to log(f(x)) give the same values for m and b. The analysis routine, however, requires the y-intercept and slope of the semilog linear region. Please allow me to ellaborate with an example.

Attached is an experiment file containing wave0=f(x) and log_wave0= log(f(x)). Wave0 is fit to 10^(m*x+b) on a semi-log plot. The y-intercept, visually is 10^-5 and this is the number which I wish to be reported (not the b=-5 value reported from the fit), along with the slope as decades/deltax. I could write up a script to preform the fit quietly and post-process the intercept and slope but I was wondering if there would be some way to instead write a fitting function which reports the values of interest since I have a large number of waves to process.

I'm not sure how to scale the reported slope m to extract the "Decades / delta_x " slope that I require for the analysis. A usable number should be something like 1e-6.
Experiment_2.pxp (49.83 KB) Experiment_2.pxp (49.83 KB) Experiment_2.pxp (49.83 KB)
At the risk of making the estimated coefficient errors uninterpretable (or unmeaningful) you could fit log(m). See the attached file. I added a residual plot to your graphs- they show that the distribution of residuals for fitting to wave0 or log_wave0 is quite different. This is what I meant about the interpretation of measurement errors. It now looks like you have synthesized a data set and are fitting the synthetic data. That makes the interpretation of what is meant by "measurement error" somewhat problematic. But still, the distribution of residuals is quite different.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
Experiment_2JW.pxp (63.52 KB)