rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWLinRegModelSelector< F > Class Template Reference
[Model Selection]

Encapsulates four different model selection algorithms for linear regression: forward, backward, stepwise, and exhaustive. More...

#include <rw/analytics/lnrmodsel.h>

Inheritance diagram for RWLinRegModelSelector< F >:
RWRegressionModelSelector< double, double, F >

List of all members.

Public Member Functions

 RWLinRegModelSelector ()
 RWLinRegModelSelector (const RWLinRegModelSelector< F > &ms)
 RWLinRegModelSelector (const RWLinearRegression &reg, RWSearchMethod s)
RWLinRegModelSelector< F > & operator= (const RWLinRegModelSelector< F > &ms)

Detailed Description

template<class F>
class RWLinRegModelSelector< F >

Class RWLinRegModelSelector<F> encapsulates four different model selection algorithms for linear regression. The algorithms are forward, backward, stepwise, and exhaustive. Refer to Chapter 4, "Model Selection," in the Business Analysis Module User's Guide for more details about model selection and differences between the four algorithms.

The template parameter F determines the model evaluation criterion object used during model selection search. In the synopsis above, the F statistic is used as the model evaluation criterion. You can substitute your own model evaluation object, provided that it defines the operator() method in the same way as the class RWLinRegressFStatistic.

An instance of the class RWLinRegModelSelector<F> is constructed with a linear regression and a choice of model selection algorithm. At any time, the user may change the selection algorithm or the specific linear regression model. The class provides results of model selection search, including the indices of the predictor variables that were selected, the parameter values for the selected indices, and the model evaluation criterion for the selected predictor variables.

To be used as a template parameter for RWLinRegModelSelector, a class F must implement the following interface:

 class  F
 {
 double  operator()(  const  RWGenMat<double>&  regressionMatrix,
                      const  RWMathVec<double>&  observationVector,
                      const  RWMathVec<double>&  parameterEstimates  );
 }

Synopsis

 #include <rw/math/genmat.h>
 #include <rw/math/mathvec.h>
 #include <rw/analytics/linregress.h>
 #include <rw/analytics/lnrmodsel.h>
 #include <rw/analytics/ffunc.h>

 RWGenMat<double> predictorMatrix;
 RWMathVec<double> observationVector;
 RWLinearRegression lr(predictorMatrix, observationVector);
 RWLinRegModelSelector<RWLinRegressFStatistic>
                         modelSelector(lr,rwForwardSelection);

Examples

The following example performs forward selection search on a linear regression model, where the model evaluation criterion is the F statistic.

 #include <rw/analytics/linregress.h>
 #include <rw/analytics/lnrmodsel.h>
 #include <rw/analytics/ffunc.h>

 int main() {
  RWGenMat<double> predictorMatrix =
                        "5x2 [1.2 2.1 8 7 3 3.2 6.4 4.6 2 2.3]";
  RWMathVec<double> observationVector = "[2.5 3.7 1.4 2.3 5.6]";

  RWLinearRegression lr(predictorMatrix, observationVector);
  RWLinRegModelSelector<RWLinRegressFStatistic> selector(lr,
                     rwForwardSelection);

  if (!selector.fail())
  {
    cout << "selected indices: " <<
             selector.selectedParamIndices() << endl;
    cout << "selected parameter values: " <<
             selector.selectedParamValues() << endl;
    cout << "model criterion value: " <<
             selector.evalFunctionForSelected() << endl;
  }
  else
  {
    cout << "search failed: " << selector.failMessage() << endl;
  }
  return 0;
 }

Constructor & Destructor Documentation

template<class F>
RWLinRegModelSelector< F >::RWLinRegModelSelector (  )  [inline]

Default constructor. Behavior undefined.

template<class F>
RWLinRegModelSelector< F >::RWLinRegModelSelector ( const RWLinRegModelSelector< F > &  ms  )  [inline]

Copy constructor.

template<class F>
RWLinRegModelSelector< F >::RWLinRegModelSelector ( const RWLinearRegression reg,
RWSearchMethod  s 
) [inline]

Constructs a model selector using the search method s.


Member Function Documentation

template<class F>
RWLinRegModelSelector<F>& RWLinRegModelSelector< F >::operator= ( const RWLinRegModelSelector< F > &  ms  )  [inline]

Assignment operator.

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.