<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Dear Scilabers,</div><div class=""><br class=""></div><div class="">for mathematicians, the linear least-squares fitting is a trivial problem, but as an experimental physicist I had problems finding the right correlations for predicting the Confidence Limits of the fitted functional relationship. For a trivial set of experimental data, I wrote a few lines of Scilab code and have 2 questions:</div><div class=""><br class=""></div><div class="">- is the computation of confidence limits correct?</div><div class=""><br class=""></div><div class="">- for large data sets and higher degree polynomials, can we make the computations more efficient and reliable?</div><div class=""><br class=""></div><div class="">Thanks in advance</div><div class="">Heinz</div><div class="">_________________________</div><div class=""><pre style="font-family: Monospaced;" class=""><font size="4" class="">x<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(188,143,143);" class="">0.1269868</span> <span style="color:rgb(188,143,143);" class="">0.135477</span> <span style="color:rgb(188,143,143);" class="">0.221034</span> <span style="color:rgb(188,143,143);" class="">0.45</span> <span style="color:rgb(188,143,143);" class="">0.8350086</span> <span style="color:rgb(188,143,143);" class="">0.9057919</span> <span style="color:rgb(188,143,143);" class="">0.9133759</span> <span style="color:rgb(188,143,143);" class="">0.9688678</span><span style="color:rgb(74,85,219);" class="">]</span><span style="color:rgb(92,92,92);" class="">'</span>;
y<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(188,143,143);" class="">0.0695843</span> <span style="color:rgb(188,143,143);" class="">0.0154644</span> <span style="color:rgb(188,143,143);" class="">0.0893982</span> <span style="color:rgb(188,143,143);" class="">0.5619441</span> <span style="color:rgb(188,143,143);" class="">1.3879476</span> <span style="color:rgb(188,143,143);" class="">1.5639274</span> <span style="color:rgb(188,143,143);" class="">1.6570076</span> <span style="color:rgb(188,143,143);" class="">1.9061488</span><span style="color:rgb(74,85,219);" class="">]</span><span style="color:rgb(92,92,92);" class="">'</span>;
plot<span style="color:rgb(74,85,219);" class="">(</span>x,y,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">m</span><span style="color:rgb(188,143,143);" class="">.</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">markersize</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">14</span><span style="color:rgb(74,85,219);" class="">)</span>;<span style="color:rgb(50,185,185);" class="">xgrid</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">1</span>,<span style="color:rgb(188,143,143);" class="">1</span>,<span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(74,85,219);" class="">)</span>;
X<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(50,185,185);" class="">ones</span><span style="color:rgb(74,85,219);" class="">(</span>x<span style="color:rgb(74,85,219);" class="">)</span> x x<span style="color:rgb(92,92,92);" class="">^</span><span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">]</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">// matrix of independent vectors</span>
b<span style="color:rgb(92,92,92);" class="">=</span>X<span style="color:rgb(92,92,92);" class="">\</span>y; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">// parameters of linear LSFIT with a 2nd degree polynomial</span>
yh <span style="color:rgb(92,92,92);" class="">=</span> X<span style="color:rgb(92,92,92);" class="">*</span>b; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//Fitted values yh to approximate measured y</span><span style="color:rgb(100,174,100);font-style:italic;" class="">'</span><span style="color:rgb(100,174,100);font-style:italic;" class="">s</span>
e<span style="color:rgb(92,92,92);" class="">=</span>y<span style="color:rgb(92,92,92);" class="">-</span>yh; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//Errors or residuals</span>
SSE<span style="color:rgb(92,92,92);" class="">=</span>e<span style="color:rgb(92,92,92);" class="">'</span><span style="color:rgb(92,92,92);" class="">*</span>e; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//Sum of squared errors</span>
ybar<span style="color:rgb(92,92,92);" class="">=</span>mean<span style="color:rgb(74,85,219);" class="">(</span>y<span style="color:rgb(74,85,219);" class="">)</span>; R2<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(92,92,92);" class="">-</span>SSE<span style="color:rgb(92,92,92);" class="">/</span><span style="color:rgb(50,185,185);" class="">sum</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(74,85,219);" class="">(</span>y<span style="color:rgb(92,92,92);" class="">-</span>ybar<span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">^</span><span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">)</span>;
<span style="color:rgb(74,85,219);" class="">[</span>m n<span style="color:rgb(74,85,219);" class="">]</span><span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(50,185,185);" class="">size</span><span style="color:rgb(74,85,219);" class="">(</span>X<span style="color:rgb(74,85,219);" class="">)</span>;
MSE <span style="color:rgb(92,92,92);" class="">=</span> SSE<span style="color:rgb(92,92,92);" class="">/</span><span style="color:rgb(74,85,219);" class="">(</span>m<span style="color:rgb(92,92,92);" class="">-</span>n<span style="color:rgb(92,92,92);" class="">-</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(74,85,219);" class="">)</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//Mean square error</span>
se<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(50,185,185);" class="">sqrt</span><span style="color:rgb(74,85,219);" class="">(</span>MSE<span style="color:rgb(74,85,219);" class="">)</span>;
C<span style="color:rgb(92,92,92);" class="">=</span>MSE<span style="color:rgb(92,92,92);" class="">*</span><span style="color:rgb(50,185,185);" class="">inv</span><span style="color:rgb(74,85,219);" class="">(</span>X<span style="color:rgb(92,92,92);" class="">'</span><span style="color:rgb(92,92,92);" class="">*</span>X<span style="color:rgb(74,85,219);" class="">)</span>;
seb<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(50,185,185);" class="">sqrt</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(50,185,185);" class="">diag</span><span style="color:rgb(74,85,219);" class="">(</span>C<span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(74,85,219);" class="">)</span>;
CONF<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(188,143,143);" class="">.95</span>; alpha<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(92,92,92);" class="">-</span>CONF;
ta2 <span style="color:rgb(92,92,92);" class="">=</span> <span style="color:rgb(50,185,185);" class="">cdft</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">T</span><span style="color:rgb(188,143,143);" class="">'</span>,m<span style="color:rgb(92,92,92);" class="">-</span>n,<span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(92,92,92);" class="">-</span>alpha<span style="color:rgb(92,92,92);" class="">/</span><span style="color:rgb(188,143,143);" class="">2</span>,alpha<span style="color:rgb(92,92,92);" class="">/</span><span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">)</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//t-value for alpha/2</span>
xx<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">0.1</span><span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(188,143,143);" class="">.025</span><span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">'</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">// cover the whole abscissa range in detail</span>
XX<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(50,185,185);" class="">ones</span><span style="color:rgb(74,85,219);" class="">(</span>xx<span style="color:rgb(74,85,219);" class="">)</span> xx xx<span style="color:rgb(92,92,92);" class="">^</span><span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">]</span>;
yhh<span style="color:rgb(92,92,92);" class="">=</span>XX<span style="color:rgb(92,92,92);" class="">*</span>b; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">// predicted extended LSFIT curve</span>
plot<span style="color:rgb(74,85,219);" class="">(</span>xx,yhh,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">kd-</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">MarkerSize</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">8</span><span style="color:rgb(74,85,219);" class="">)</span>;
<span style="color:rgb(74,85,219);" class="">[</span>mm n<span style="color:rgb(74,85,219);" class="">]</span><span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(50,185,185);" class="">size</span><span style="color:rgb(74,85,219);" class="">(</span>XX<span style="color:rgb(74,85,219);" class="">)</span>;
sY <span style="color:rgb(92,92,92);" class="">=</span> <span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(74,85,219);" class="">]</span>; sYp <span style="color:rgb(92,92,92);" class="">=</span> <span style="color:rgb(74,85,219);" class="">[</span><span style="color:rgb(74,85,219);" class="">]</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">//Terms involved in Confidence Interval for Y, Ypred</span>
<span style="color:rgb(160,32,240);" class="">for</span> i<span style="color:rgb(92,92,92);" class="">=</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(255,170,0);" class="">:</span>mm;
sY <span style="color:rgb(92,92,92);" class="">=</span> <span style="color:rgb(74,85,219);" class="">[</span>sY; <span style="color:rgb(50,185,185);" class="">sqrt</span><span style="color:rgb(74,85,219);" class="">(</span>XX<span style="color:rgb(74,85,219);" class="">(</span>i,<span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">*</span>C<span style="color:rgb(92,92,92);" class="">*</span>XX<span style="color:rgb(74,85,219);" class="">(</span>i,<span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(74,85,219);" class="">]</span>; <span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:rgb(100,174,100);font-style:italic;" class="">// standard error in fit</span>
sYp <span style="color:rgb(92,92,92);" class="">=</span> <span style="color:rgb(74,85,219);" class="">[</span>sYp; se<span style="color:rgb(92,92,92);" class="">*</span><span style="color:rgb(50,185,185);" class="">sqrt</span><span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">1</span><span style="color:rgb(92,92,92);" class="">+</span>XX<span style="color:rgb(74,85,219);" class="">(</span>i,<span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">*</span><span style="color:rgb(74,85,219);" class="">(</span>C<span style="color:rgb(92,92,92);" class="">/</span>se<span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">*</span>XX<span style="color:rgb(74,85,219);" class="">(</span>i,<span style="color:rgb(255,170,0);" class="">:</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(92,92,92);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span><span style="color:rgb(74,85,219);" class="">]</span>; <span style="color:rgb(100,174,100);font-style:italic;" class="">// standard error in spread in population distribution</span>
<span style="color:rgb(160,32,240);" class="">end</span>;
plot<span style="color:rgb(74,85,219);" class="">(</span>xx, yhh<span style="color:rgb(92,92,92);" class="">+</span>ta2<span style="color:rgb(92,92,92);" class="">*</span>sYp,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">rd-</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span>;
plot<span style="color:rgb(74,85,219);" class="">(</span>xx, yhh<span style="color:rgb(92,92,92);" class="">+</span>ta2<span style="color:rgb(92,92,92);" class="">*</span>sY,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">bd-</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span>;
plot<span style="color:rgb(74,85,219);" class="">(</span>xx, yhh<span style="color:rgb(92,92,92);" class="">-</span>ta2<span style="color:rgb(92,92,92);" class="">*</span>sY,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">gd-</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span>;
plot<span style="color:rgb(74,85,219);" class="">(</span>xx, yhh<span style="color:rgb(92,92,92);" class="">-</span>ta2<span style="color:rgb(92,92,92);" class="">*</span>sYp,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">md-</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(74,85,219);" class="">)</span>;
title<span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">LINEAR LEAST-SQUARES FIT WITH 95% CONFIDENCE BOUNDS ON FIT AND ON THE POPULATION SPREAD</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">fontsize</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">)</span>;
xlabel<span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">x-values</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">fontsize</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">5</span><span style="color:rgb(74,85,219);" class="">)</span>;
ylabel<span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">y-values</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">fontsize</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">5</span><span style="color:rgb(74,85,219);" class="">)</span>;
legend<span style="color:rgb(74,85,219);" class="">(</span><span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">measurement data</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">LSFIT of 2nd order polynomial</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">upper 95% CL population</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">upper 95% CL fit</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">lower 95% CL fit</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">'</span><span style="color:rgb(188,143,143);" class="">lower 95% CL population</span><span style="color:rgb(188,143,143);" class="">'</span>,<span style="color:rgb(188,143,143);" class="">2</span><span style="color:rgb(74,85,219);" class="">)</span>;</font></pre><div class=""><font size="4" class=""><br class=""></font></div></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>