Convert linear-fit results onto an orthogonal basis



I have the results of the linear fit of some experimental data:

y=a0+a1.x

together with the covariance matrix:
sigma_square_a0,
sigma_square_a1,
sigma_a0_a1.

I d like to express the results using an orthogonal polynomial basis, that is to say as

y=b0+b1.(x-c)

with
sigma_b_c=0 and
sigma_square_c=0.

I bet it is just a matter or diagonalizing the covariance matrix but i don't see how to define the c.

Any thoughts?
You should fit to Legendre polynomials. Map your data to (-1,1). Then express the fit as a sum of Legendre polynomials. Since the Legendre polys are orthogoanl, the coefficients are, too, and the cross-correlations should vanish. An added benefit is that when you go to the next higher order, the value of the lower-order coefs. does not change, except for statistical fluctuation.

In your case, with a linear fit, you just have to define your variables so that the range is symmetric about zero. Check out this code:

Function test(drange)
    variable drange
    make /d/o/n=100 w
    SetScale/I x -2+drange,2+drange,"", w       // drange = 0 means range is symmetric about 0
    w = 2+x+gnoise(0.2)
//  display w
    ModifyGraph mode=3,marker=19
    CurveFit /q/M=2/NTHR=0 line  w /D
    return V_Rab                                // this is the cross-correlation coefficient
End


Then

print test(0)
  -1.10422e-16
print test(1)
  -0.650907
print test(-1)
  0.650907


shows that the correlation is 0 when the range is symmetric and not otherwise.

John Bechhoefer
Department of Physics
Simon Fraser University
Burnaby, BC, Canada
thanks John

However, i do not have the original dataset.
i only have the published fit (with usual polynomial) results together with the covariance matrix.

I was wondering whether there was an analytical way of going from y=a0+a1.x (non orthogonal polynomial basis) to y=b0+b1.(x-c) (orthogonal polynomial basis)
I need to go into this particular basis because the parameters of the fit into the orthogonal polynomial basis are the input of another code.

I guess i could also "brute force" generating a "random" dataset having the covariance of the original fit results and fit it onto the new orthogonal basis. I wonder how to do the fit though, in particular how to determine c. Maybe by optimizing the chi-square ?