GeneralizedLinearRegression Class 
Namespace: Accord.Statistics.Models.Regression
[SerializableAttribute] public class GeneralizedLinearRegression : BinaryLikelihoodClassifierBase<double[]>, ICloneable
The GeneralizedLinearRegression type exposes the following members.
Name  Description  

GeneralizedLinearRegression 
Creates a new Generalized Linear Regression Model.
 
GeneralizedLinearRegression(ILinkFunction) 
Creates a new Generalized Linear Regression Model.
 
GeneralizedLinearRegression(ILinkFunction, Int32)  Obsolete.
Creates a new Generalized Linear Regression Model.
 
GeneralizedLinearRegression(ILinkFunction, Double, Double)  Obsolete.
Creates a new Generalized Linear Regression Model.
 
GeneralizedLinearRegression(ILinkFunction, Int32, Double)  Obsolete.
Creates a new Generalized Linear Regression Model.

Name  Description  

Coefficients  Obsolete.
Obsolete. For quick compatibility fixes in the short term, use
GetCoefficient(Int32) and SetCoefficient(Int32, Double).
 
Inputs  Obsolete.
Gets the number of inputs handled by this model.
 
Intercept 
Gets or sets the intercept term. This is always the
first value of the Coefficients array.
 
Linear 
Gets the underlying linear regression.
 
Link 
Gets the link function used by
this generalized linear model.
 
NumberOfClasses 
Gets the number of classes expected and recognized by the classifier.
(Inherited from ClassifierBaseTInput, TClasses.)  
NumberOfInputs 
Gets the number of inputs accepted by the model.
(Overrides TransformBaseTInput, TOutputNumberOfInputs.)  
NumberOfOutputs 
Gets the number of outputs generated by the model.
(Inherited from TransformBaseTInput, TOutput.)  
NumberOfParameters 
Gets the number of parameters in this model (equals the NumberOfInputs + 1).
 
StandardErrors 
Gets the standard errors associated with each
coefficient during the model estimation phase.
 
Weights 
Gets or sets the linear weights of the regression model. The
intercept term is not stored in this vector, but is instead
available through the Intercept property.

Name  Description  

ChiSquare(Double, Double) 
The likelihood ratio test of the overall model, also called the model chisquare test.
 
ChiSquare(Double, Double, Double) 
The likelihood ratio test of the overall model, also called the model chisquare test.
 
Clone 
Creates a new GeneralizedLinearRegression that is a copy of the current instance.
 
Compute(Double)  Obsolete.
Computes the model output for the given input vector.
 
Compute(Double)  Obsolete.
Computes the model output for each of the given input vectors.
 
Decide(TInput) 
Computes a classlabel decision for a given input.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Decide(TInput) 
Computes classlabel decisions for a given set of input vectors.
(Inherited from ClassifierBaseTInput, TClasses.)  
Decide(TInput, Boolean) 
Computes classlabel decisions for the given input.
(Inherited from BinaryClassifierBaseTInput.)  
Decide(TInput, Boolean) 
Computes a classlabel decision for a given input.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Equals  Determines whether the specified object is equal to the current object. (Inherited from Object.)  
Finalize  Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)  
FromLogisticRegression  Obsolete.
Creates a GeneralizedLinearRegression from a LogisticRegression object.
 
GetCoefficient 
Gets a coefficient value, where 0 is the intercept term
and the other coefficients are indexed starting at 1.
 
GetConfidenceInterval 
Gets the confidence interval for an input point.
 
GetDegreesOfFreedom 
Gets the degrees of freedom when fitting the regression.
 
GetDeviance(Double, Double) 
Gets the Deviance for the model.
 
GetDeviance(Double, Double, Double) 
Gets the Deviance for the model.
 
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetLogLikelihood(Double, Double) 
Gets the LogLikelihood for the model.
 
GetLogLikelihood(Double, Double, Double) 
Gets the LogLikelihood for the model.
 
GetLogLikelihoodRatio(Double, Double, GeneralizedLinearRegression) 
Gets the LogLikelihood Ratio between two models.
 
GetLogLikelihoodRatio(Double, Double, Double, GeneralizedLinearRegression) 
Gets the LogLikelihood Ratio between two models.
 
GetPredictionInterval 
Gets the prediction interval for an input point.
 
GetPredictionStandardError 
Gets the standard error of the prediction for a particular input vector.
 
GetStandardError 
Gets the standard error of the fit for a particular input vector.
 
GetStandardErrors 
Gets the standard error for each coefficient.
 
GetType  Gets the Type of the current instance. (Inherited from Object.)  
GetWaldTest 
Gets the Wald Test for a given coefficient.
 
LogLikelihood(TInput) 
Predicts a class label vector for the given input vector, returning the
loglikelihood that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihood(TInput) 
Predicts a class label vector for the given input vector, returning the
loglikelihood that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihood(TInput, Boolean) 
Predicts a class label vector for the given input vector, returning the
loglikelihood that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihood(TInput, Int32) 
Predicts a class label for each input vector, returning the
loglikelihood that each vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihood(Double, Double) 
Predicts a class label vector for the given input vectors, returning the
loglikelihood that the input vector belongs to its predicted class.
(Overrides BinaryLikelihoodClassifierBaseTInputLogLikelihood(TInput, Double).)  
LogLikelihood(TInput, Boolean, Double) 
Predicts a class label for each input vector, returning the
loglikelihood that each vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput) 
Computes the loglikelihood that the given input
vector belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput) 
Computes the loglikelihoods that the given input
vectors belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Boolean) 
Predicts a class label vector for the given input vector, returning the
loglikelihoods of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Double) 
Computes the loglikelihood that the given input
vector belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Double) 
Computes the loglikelihoods that the given input
vectors belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Int32) 
Predicts a class label vector for each input vector, returning the
loglikelihoods of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Boolean, Double) 
Predicts a class label vector for the given input vector, returning the
loglikelihoods of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
LogLikelihoods(TInput, Boolean, Double) 
Predicts a class label vector for each input vector, returning the
loglikelihoods of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.)  
Probabilities(TInput) 
Computes the probabilities that the given input
vector belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput) 
Computes the probabilities that the given input
vectors belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Boolean) 
Predicts a class label vector for the given input vector, returning the
probabilities of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Double) 
Computes the probabilities that the given input
vector belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Double) 
Computes the probabilities that the given input
vectors belongs to each of the possible classes.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Int32) 
Predicts a class label vector for each input vector, returning the
probabilities of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Boolean, Double) 
Predicts a class label vector for the given input vector, returning the
probabilities of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probabilities(TInput, Boolean, Double) 
Predicts a class label vector for each input vector, returning the
probabilities of the input vector belonging to each possible class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probability(TInput) 
Predicts a class label for the given input vector, returning the
probability that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probability(TInput) 
Predicts a class label for the given input vector, returning the
probability that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probability(TInput, Boolean) 
Predicts a class label for the given input vector, returning the
probability that the input vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probability(TInput, Int32) 
Predicts a class label for each input vector, returning the
probability that each vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Probability(Double, Double) 
Predicts a class label for the given input vector, returning the
probability that the input vector belongs to its predicted class.
(Overrides BinaryLikelihoodClassifierBaseTInputProbability(TInput, Double).)  
Probability(TInput, Boolean, Double) 
Predicts a class label for each input vector, returning the
probability that each vector belongs to its predicted class.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Score(TInput) 
Computes a numerical score measuring the association between
the given input vector and its most strongly
associated class (as predicted by the classifier).
(Inherited from BinaryScoreClassifierBaseTInput.)  
Score(TInput) 
Computes a numerical score measuring the association between
the given input vector and its most strongly
associated class (as predicted by the classifier).
(Inherited from BinaryScoreClassifierBaseTInput.)  
Score(TInput, Boolean) 
Predicts a class label for the input vector, returning a
numerical score measuring the strength of association of the
input vector to its most strongly related class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Score(TInput, Boolean) 
Predicts a class label for each input vector, returning a
numerical score measuring the strength of association of the
input vector to the most strongly related class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Score(Double, Double) 
Computes a numerical score measuring the association between
the given input vector and each class.
(Overrides BinaryLikelihoodClassifierBaseTInputScore(TInput, Double).)  
Score(TInput, Boolean, Double) 
Predicts a class label for each input vector, returning a
numerical score measuring the strength of association of the
input vector to the most strongly related class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput) 
Computes a numerical score measuring the association between
the given input vector and each class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput) 
Computes a numerical score measuring the association between
the given input vector and each class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Boolean) 
Predicts a class label vector for the given input vector, returning a
numerical score measuring the strength of association of the input vector
to each of the possible classes.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Double) 
Computes a numerical score measuring the association between
the given input vector and each class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Boolean) 
Predicts a class label vector for each input vector, returning a
numerical score measuring the strength of association of the input vector
to each of the possible classes.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Double) 
Computes a numerical score measuring the association between
the given input vector and each class.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Boolean, Double) 
Predicts a class label vector for the given input vector, returning a
numerical score measuring the strength of association of the input vector
to each of the possible classes.
(Inherited from BinaryScoreClassifierBaseTInput.)  
Scores(TInput, Boolean, Double) 
Predicts a class label vector for each input vector, returning a
numerical score measuring the strength of association of the input vector
to each of the possible classes.
(Inherited from BinaryScoreClassifierBaseTInput.)  
SetCoefficient 
Sets a coefficient value, where 0 is the intercept term
and the other coefficients are indexed starting at 1.
 
ToMulticlass 
Views this instance as a multiclass generative classifier,
giving access to more advanced methods, such as the prediction
of integer labels.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
ToMultilabel 
Views this instance as a multilabel generative classifier,
giving access to more advanced methods, such as the prediction
of onehot vectors.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
ToString  Returns a string that represents the current object. (Inherited from Object.)  
Transform(TInput) 
Applies the transformation to an input, producing an associated output.
(Inherited from ClassifierBaseTInput, TClasses.)  
Transform(TInput) 
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from TransformBaseTInput, TOutput.)  
Transform(TInput, Boolean) 
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.)  
Transform(TInput, Int32) 
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.)  
Transform(TInput, Boolean) 
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.)  
Transform(TInput, Int32) 
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.)  
Transform(TInput, Int32) 
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.)  
Transform(TInput, Double) 
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Transform(TInput, Double) 
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Transform(TInput, Double) 
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from BinaryLikelihoodClassifierBaseTInput.)  
Transform(TInput, TClasses) 
Applies the transformation to an input, producing an associated output.
(Inherited from ClassifierBaseTInput, TClasses.) 
Name  Description  

HasMethod 
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.)  
IsEqual 
Compares two objects for equality, performing an elementwise
comparison if the elements are vectors or matrices.
(Defined by Matrix.)  
To(Type)  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.)  
ToT  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) 
References:
// Suppose we have the following data about some patients. // The first variable is continuous and represent patient // age. The second variable is dichotomic and give whether // they smoke or not (This is completely fictional data). // We also know if they have had lung cancer or not, and // we would like to know whether smoking has any connection // with lung cancer (This is completely fictional data). double[][] input = { // age, smokes?, had cancer? new double[] { 55, 0 }, // false  no cancer new double[] { 28, 0 }, // false new double[] { 65, 1 }, // false new double[] { 46, 0 }, // true  had cancer new double[] { 86, 1 }, // true new double[] { 56, 1 }, // true new double[] { 85, 0 }, // false new double[] { 33, 0 }, // false new double[] { 21, 1 }, // false new double[] { 42, 1 }, // true }; bool[] output = // Whether each patient had lung cancer or not { false, false, false, true, true, true, false, false, false, true }; // To verify this hypothesis, we are going to create a logistic // regression model for those two inputs (age and smoking), learned // using a method called "Iteratively Reweighted Least Squares": var learner = new IterativeReweightedLeastSquares<LogisticRegression>() { Tolerance = 1e4, // Let's set some convergence parameters Iterations = 100, // maximum number of iterations to perform Regularization = 0 }; // Now, we can use the learner to finally estimate our model: LogisticRegression regression = learner.Learn(input, output); // At this point, we can compute the odds ratio of our variables. // In the model, the variable at 0 is always the intercept term, // with the other following in the sequence. Index 1 is the age // and index 2 is whether the patient smokes or not. // For the age variable, we have that individuals with // higher age have 1.021 greater odds of getting lung // cancer controlling for cigarette smoking. double ageOdds = regression.GetOddsRatio(1); // 1.0208597028836701 // For the smoking/non smoking category variable, however, we // have that individuals who smoke have 5.858 greater odds // of developing lung cancer compared to those who do not // smoke, controlling for age (remember, this is completely // fictional and for demonstration purposes only). double smokeOdds = regression.GetOddsRatio(2); // 5.8584748789881331 // If we would like to use the model to predict a probability for // each patient regarding whether they are at risk of cancer or not, // we can use the Probability function: double[] scores = regression.Probability(input); // Finally, if we would like to arrive at a conclusion regarding // each patient, we can use the Decide method, which will transform // the probabilities (from 0 to 1) into actual true/false values: bool[] actual = regression.Decide(input);