Changeset a106e90 in tol


Ignore:
Timestamp:
Nov 17, 2008, 9:11:08 AM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
53ceb48
Parents:
67807695
Message:

New Quantile API to get a set of quantiles saving time

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@174 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/bmath/bstat
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tol/bmath/bstat/stat.cpp

    r67807695 ra106e90  
    383383    }
    384384    return(result);
     385}
     386
     387//--------------------------------------------------------------------
     388void Quantile(const BArray<BDat>& vec,
     389              const BArray<BDat>& r,
     390                    BArray<BDat>& Qu)
     391
     392/*! Returns a set of q-Quantile statistics of a vector of real numbers
     393 */
     394//--------------------------------------------------------------------
     395{
     396  Qu.AllocBuffer(0);
     397  if(!vec.Size()) { return; }
     398  BArray<BDat> sorted(vec.Size());
     399  int i, j;
     400  for(i=j=0; i<vec.Size(); i++)
     401  {
     402    if(vec(i).IsKnown())
     403    {
     404      sorted(j++) = vec(i);
     405    }
     406  }
     407  sorted.ReallocBuffer(j);
     408  sorted.Sort(DatCmp);
     409  Qu.AllocBuffer(r.Size());
     410  int k;
     411  for(k=0; k<r.Size(); k++)
     412  {
     413    BDat q = r[k];
     414    if(q>1)  { q = 1; }
     415    if(q<0)  { q = 0; }
     416    BDat p = 1-q;
     417    BDat Q = (1.0/q).Value();
     418    BDat n = BDat(sorted.Size()-1)/BDat(Q);
     419    BDat result;
     420    if(n.IsInteger())
     421    {
     422      Qu[k] = sorted(int(n.Value()));
     423    }
     424    else
     425    {
     426      BInt nq = (BInt)Ceil (n).Value();
     427      BInt np = (BInt)Floor(n).Value();
     428      BDat sq = sorted(nq);
     429      BDat sp = sorted(np);
     430      Qu[k] = (q*sq)+(p*sp);
     431    }
     432  }
    385433}
    386434
  • tol/bmath/bstat/tol_bstat.h

    r67807695 ra106e90  
    3333                      const BArray<BDat>& vec);
    3434
    35 TOL_API BDat Sum                 (const BArray<BDat>& vec);
    36 TOL_API BDat Product             (const BArray<BDat>& vec);
    37 TOL_API BDat Average             (const BArray<BDat>& vec);
    38 TOL_API BDat HarmonicAverage     (const BArray<BDat>& vec);
    39 TOL_API BDat GeometricAverage    (const BArray<BDat>& vec);
    40 TOL_API BDat Moment              (const BArray<BDat>& vec, BInt m);
    41 TOL_API BDat CenterMoment        (const BArray<BDat>& vec, BInt m);
    42 TOL_API BDat Varianze            (const BArray<BDat>& vec);
    43 TOL_API BDat StandardDeviation   (const BArray<BDat>& vec);
     35TOL_API BDat Sum                        (const BArray<BDat>& vec);
     36TOL_API BDat Product                (const BArray<BDat>& vec);
     37TOL_API BDat Average                (const BArray<BDat>& vec);
     38TOL_API BDat HarmonicAverage      (const BArray<BDat>& vec);
     39TOL_API BDat GeometricAverage     (const BArray<BDat>& vec);
     40TOL_API BDat Moment                   (const BArray<BDat>& vec, BInt m);
     41TOL_API BDat CenterMoment         (const BArray<BDat>& vec, BInt m);
     42TOL_API BDat Varianze               (const BArray<BDat>& vec);
     43TOL_API BDat StandardDeviation    (const BArray<BDat>& vec);
    4444TOL_API BDat AsymmetryCoefficient (const BArray<BDat>& vec);
    45 TOL_API BDat Kurtosis            (const BArray<BDat>& vec);
    46 TOL_API BDat Maximum             (const BArray<BDat>& vec);
    47 TOL_API BDat Minimum             (const BArray<BDat>& vec);
    48 TOL_API BDat Quantile            (const BArray<BDat>& vec, BDat q);
    49 TOL_API BDat Median              (const BArray<BDat>& vec);
    50 
    51 TOL_API BDat Covarianze (const BArray<BDat>& v1,
    52                                  const BArray<BDat>& v2);
    53 TOL_API BDat Correlation (const BArray<BDat>& v1,
    54                                   const BArray<BDat>& v2);
    55 
    56 TOL_API void Covarianze (const BMatrix<BDat>&    data,
    57                                  BSymMatrix<BDat>& cor);
    58 TOL_API void Correlation (const BMatrix<BDat>&    data,
    59                                   BSymMatrix<BDat>& cor);
    60 TOL_API void PartialCorrelation (const BMatrix<BDat>&    data,
    61                                          BSymMatrix<BDat>& pcor);
    62 TOL_API void CorrelationF (const BSymMatrix<BDat>& cov,
    63                                BSymMatrix<BDat>& cor);
    64 TOL_API void PartialCorrelationF (const BSymMatrix<BDat>& cor,
    65                                               BSymMatrix<BDat>& pcor);
    66 TOL_API void RegressionCoef (const BSymMatrix<BDat>& cov,
    67                                      const BSymMatrix<BDat>& pcor,
    68                                      BMatrix<BDat>&    regr);
    69 
    70 TOL_API BDat PearsonCoefficient (const BArray<BDat>& v1,
    71                                             const BArray<BDat>& v2);
    72 
    73 TOL_API BDat R2Coefficient (const BArray<BDat>& v1, const BArray<BDat>& v2);
    74 
    75 TOL_API void AutoCov (const BArray<BDat>& vec, BArray<BDat>& cov, BInt order,
    76                       BInt demean=0);
    77 
    78 TOL_API void AutoCor (const BArray<BDat>& vec, BArray<BDat>& cor, BInt order,
    79                       BInt demean=0);
    80 
    81 TOL_API void DurbinAutoReg (const BArray<BDat>&  r, BMatrix<BDat>& FI);
    82 
    83 TOL_API void PartAutoCor   (const BArray<BDat>& cor, BArray<BDat>& p);
    84 TOL_API void InverseAutoCor(const BArray<BDat>& cor, BArray<BDat>& p);
    85 TOL_API void InvPartAutoCor(const BArray<BDat>& cor, BArray<BDat>& p);
    86 TOL_API BDat BoxPierceLjung(const BArray<BDat>& vec,
    87                                     BInt m, BInt p, BInt q);
     45TOL_API BDat Kurtosis               (const BArray<BDat>& vec);
     46TOL_API BDat Maximum                (const BArray<BDat>& vec);
     47TOL_API BDat Minimum                (const BArray<BDat>& vec);
     48TOL_API BDat Quantile               (const BArray<BDat>& vec, BDat q);
     49TOL_API void Quantile             (const BArray<BDat>& vec,
     50                                   const BArray<BDat>& r,
     51                                         BArray<BDat>& Qu);
     52TOL_API BDat Median                   (const BArray<BDat>& vec);
     53TOL_API BDat Covarianze           (const BArray<BDat>& v1,
     54                                               const BArray<BDat>& v2);
     55TOL_API BDat Correlation          (const BArray<BDat>& v1,
     56                                               const BArray<BDat>& v2);
     57TOL_API void Covarianze           (const BMatrix<BDat>&    data,
     58                                                     BSymMatrix<BDat>& cor);
     59TOL_API void Correlation          (const BMatrix<BDat>&    data,
     60                                                     BSymMatrix<BDat>& cor);
     61TOL_API void PartialCorrelation   (const BMatrix<BDat>&    data,
     62                                                       BSymMatrix<BDat>& pcor);
     63TOL_API void CorrelationF         (const BSymMatrix<BDat>& cov,
     64                                               BSymMatrix<BDat>& cor);
     65TOL_API void PartialCorrelationF  (const BSymMatrix<BDat>& cor,
     66                                                           BSymMatrix<BDat>& pcor);
     67TOL_API void RegressionCoef       (const BSymMatrix<BDat>& cov,
     68                                               const BSymMatrix<BDat>& pcor,
     69                                                     BMatrix<BDat>&    regr);
     70TOL_API BDat PearsonCoefficient   (const BArray<BDat>& v1,
     71                                                     const BArray<BDat>& v2);
     72TOL_API BDat R2Coefficient        (const BArray<BDat>& v1,
     73                                   const BArray<BDat>& v2);
     74TOL_API void AutoCov              (const BArray<BDat>& vec,
     75                                         BArray<BDat>& cov,
     76                                         BInt order,
     77                                                     BInt demean=0);
     78TOL_API void AutoCor              (const BArray<BDat>& vec,
     79                                         BArray<BDat>& cor,
     80                                         BInt order,
     81                                                     BInt demean=0);
     82TOL_API void DurbinAutoReg        (const BArray<BDat>&  r,
     83                                         BMatrix<BDat>& FI);
     84TOL_API void PartAutoCor          (const BArray<BDat>& cor,
     85                                         BArray<BDat>& p);
     86TOL_API void InverseAutoCor       (const BArray<BDat>& cor,
     87                                         BArray<BDat>& p);
     88TOL_API void InvPartAutoCor       (const BArray<BDat>& cor,
     89                                         BArray<BDat>& p);
     90TOL_API BDat BoxPierceLjung       (const BArray<BDat>& vec,
     91                                                     BInt m, BInt p, BInt q);
    8892
    8993//! To obtine the exponent of the best Box-Cox exponential transformation of a
Note: See TracChangeset for help on using the changeset viewer.