MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Covariance Matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg17090] Covariance Matrix
  • From: Gianfranco Zosi <zosi at to.infn.it>
  • Date: Sat, 17 Apr 1999 03:34:57 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Question: How does Mathematica calculate the CovarianceMatrix ?

I have the following simple data set (4 points)

          i       1       2      3      4

         Xi       -0.6  -0.2   +0.2    +0.6

         Yi       5(2)   3(1)   5(1)   8(2)

The value in () is the uncertainty (one sigma).
I wish to estimate the best (Gauss) parameters of the
fitting parabola AND the Covariance Matrix.
                 ^^^
I have done the calculations
case A) following usual matrix technique
case B) using the command Regress in Mathematica (see attached program)

Results: the coefficients of the parabola are OK but
         the two covariance matrices are different

Case A)  Cov Matrix =   0.664   0    -2.54
                        0      3.85    0
                        -2,54   0     24.48

Case B)  Cov Matrix     0.229868    0      -0.878906
                         0       1.33136    0
                        -0.878906   0       8.45102

If my matrix (case A) is correct, it seems that Mathematica  does not
follow the standard definition

       Cov Matrix =  (aT  W  a)**(-1)

  where aT is the  transpose of a  and

      a =  1   -0.6  (-0.6)**2
           1   -0.2  (-0.2)**2
           1   +0.2  (+0.2)**2
           1   +0.6  (+0.6)**2

      W =   1/4    0    0    0
             0     1    0    0
             0     0    1    0
             0     0    0    1/4

I have noticed that

i) the ratio of the coefficients of the two matrices
   is about 2.89, but it does not say much to me
ii) the coefficients of the Mathematica Correlation Matrix coincide
                                        ^^^^^^^^^^^
    with mine

  ----- begin of my Mathematica program with Regress ------------

Clear["Global`*"];
Needs["Statistics`LinearRegression`"];
SeedRandom[15];
data = {{-0.6,5.},{-0.2,3.},{0.2,5.},{0.6,8.}};

onesigma= {2.,1.,1.,2.};
weig= Map[1/#^2 &,onesigma];
aa= ListPlot[data];
b= Fit[data,{1,x,x^2},x];
c= Plot[b,{x,-0.6,0.6}];
Show[aa,c]

datafit = Regress[data,{x^0,x^1,x^2},x,Weights->weig,
          RegressionReport->{BestFit,
          BestFitParameters,
          RSquared,EstimatedVariance,ParameterTable,ParameterCITable,
          ANOVATable,CovarianceMatrix,CorrelationMatrix}]

  ------------ end of my Mathematica program ----------

Many thanks for your help and clarification.

G.Zosi
Dip. Fisica Generale "A. Avogadro"
v. P. Giuria 1 - 10125 Torino - Italy
phone + 39 11 670 7426 (7425)
 



  • Prev by Date: How can draw Focus(Points)
  • Next by Date: Re: Border on Tables
  • Previous by thread: Re: How can draw Focus(Points)
  • Next by thread: R: Notebooks