<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body>
<p>Hello Heinz,</p>
<p>Please see the attached tutorial¹ I wrote for the other
physicists in my lab on how to use scilab to fit data with a model
and calculate the confidence interval.<br>
The reference paper mentioned in the comments is worth reading, it
helped me a lot understanding how the confidence interval relates
to the covariance matrix.</p>
<p>Hope it helps,</p>
<p>Antoine<br>
¹I made a poor choice for the data/model to fit as sin(x) is not
really nice (multiple parameters work equally well). I should have
used a gaussian or lorentzian curve...<br>
</p>
<div class="moz-cite-prefix">Le 01/08/2020 à 16:45, Heinz Nabielek a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:B9B01D34-5C08-432D-B1D5-5476009904E9@me.com">
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<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 class="" size="4">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 class="" size="4"><br class="">
</font></div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<br class="">
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
</body>
</html>