LogisticRegressionAnalysis Class 
Namespace: Accord.Statistics.Analysis
[SerializableAttribute] public class LogisticRegressionAnalysis : TransformBase<double[], double>, IRegressionAnalysis, IMultivariateAnalysis, IAnalysis, ISupervisedLearning<LogisticRegression, double[], int>, ISupervisedLearning<LogisticRegression, double[], double>
The LogisticRegressionAnalysis type exposes the following members.
Name  Description  

LogisticRegressionAnalysis 
Constructs a Logistic Regression Analysis.
 
LogisticRegressionAnalysis(Double, Double)  Obsolete.
Constructs a Logistic Regression Analysis.
 
LogisticRegressionAnalysis(Double, Double, Double)  Obsolete.
Constructs a Logistic Regression Analysis.
 
LogisticRegressionAnalysis(Double, Double, String, String)  Obsolete.
Constructs a Logistic Regression Analysis.
 
LogisticRegressionAnalysis(Double, Double, Double, String, String)  Obsolete.
Constructs a Logistic Regression Analysis.

Name  Description  

Array  Obsolete.
Gets the source matrix from which the analysis was run.
 
ChiSquare 
Gets the ChiSquare (Likelihood Ratio) Test for the model.
 
Coefficients 
Gets the collection of coefficients of the model.
 
CoefficientValues 
Gets the value of each coefficient.
 
ComputeInnerModels 
Gets or sets whether nested models should be computed in
order to calculate the likelihoodratio test of each of
the coefficients. Default is false.
 
Confidences 
Gets the 95% Confidence Intervals (C.I.)
for each coefficient found in the regression.
 
Deviance 
Gets the Deviance of the model.
 
InformationMatrix 
Gets the information matrix obtained during learning.
 
Inputs 
Gets or sets the name of the input variables for the model.
 
Iterations 
Gets or sets the maximum number of iterations to be
performed by the regression algorithm. Default is 50.
 
LikelihoodRatioTests 
Gets the LikelihoodRatio Tests for each coefficient.
 
LogLikelihood 
Gets the LogLikelihood for the model.
 
NumberOfInputs 
Gets the number of inputs accepted by the model.
(Inherited from TransformBaseTInput, TOutput.)  
NumberOfOutputs 
Gets the number of outputs generated by the model.
(Inherited from TransformBaseTInput, TOutput.)  
NumberOfSamples 
Gets the number of samples used to compute the analysis.
 
OddsRatios 
Gets the Odds Ratio for each coefficient
found during the logistic regression.
 
Output 
Gets or sets the name of the output variable for the model.
 
Outputs  Obsolete.
Gets the dependent variable value
for each of the source input points.
 
Regression 
Gets the Logistic Regression model created
and evaluated by this analysis.
 
Regularization 
Gets or sets the regularization value to be
added in the objective function. Default is
1e10.
 
Result  Obsolete.
Gets the resulting probabilities obtained
by the logistic regression model.
 
Source  Obsolete.
Gets the source matrix from which the analysis was run.
 
StandardErrors 
Gets the Standard Error for each coefficient
found during the logistic regression.
 
Token 
Gets or sets a cancellation token that can be used to
stop the learning algorithm while it is running.
 
Tolerance 
Gets or sets the difference between two iterations of the regression
algorithm when the algorithm should stop. The difference is calculated
based on the largest absolute parameter change of the regression. Default
is 1e5.
 
WaldTests 
Gets the Wald Tests for each coefficient.
 
Weights  Obsolete.
Gets the sample weight associated with each input vector.

Name  Description  

Compute  Obsolete.
Computes the Logistic Regression Analysis.
 
Compute(LogisticRegression)  Obsolete.
Computes the Logistic Regression Analysis for an already computed regression.
 
Compute(Double, Int32)  Obsolete.
Computes the Logistic Regression Analysis.
 
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.)  
FromSummary  Obsolete.
Creates a new LogisticRegressionAnalysis from summarized data.
In summary data, instead of having a set of inputs and their associated outputs,
we have the number of times an input vector had a positive label in the data set
and how many times it had a negative label.
 
GetConfidenceInterval 
Gets the confidence interval for a given input.
 
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetLikelihoodRatio  Obsolete.
Gets the LogLikelihood Ratio between this model and another model.
 
GetPredictionInterval 
Gets the prediction interval for a given input.
 
GetType  Gets the Type of the current instance. (Inherited from Object.)  
Learn(Double, Double, Double) 
Learns a model that can map the given inputs to the given outputs.
 
Learn(Double, Int32, Double) 
Learns a model that can map the given inputs to the given outputs.
 
Learn(Double, Int32, Int32) 
Learns a model that can map the given inputs to the given outputs.
 
MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.)  
ToString  Returns a string that represents the current object. (Inherited from Object.)  
Transform(TInput) 
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from TransformBaseTInput, TOutput.)  
Transform(Double) 
Applies the transformation to an input, producing an associated output.
(Overrides TransformBaseTInput, TOutputTransform(TInput).)  
Transform(TInput, TOutput) 
Applies the transformation to an input, producing an associated output.
(Inherited from TransformBaseTInput, TOutput.) 
Name  Description  

HasMethod 
Checks whether an object implements a method with the given name.
(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.)  
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 Matrix.) 
The Logistic Regression Analysis tries to extract useful information about a logistic regression model.
This class can also be bound to standard controls such as the DataGridView by setting their DataSource property to the analysis' Coefficients property.
References:
The following example shows to create a Logistic regresion analysis using a full dataset composed of input vectors and a binary output vector. Each input vector has an associated label (1 or 0) in the output vector, where 1 represents a positive label (yes, or true) and 0 represents a negative label (no, or false).
// We can also investigate all parameters individually. For // example the coefficients values will be available at the // vector double[] coef = lra.CoefficientValues; // The first value refers to the model's intercept term. We // can also retrieve the odds ratios and standard errors: double[] odds = lra.OddsRatios; double[] stde = lra.StandardErrors; // We can use the analysis to predict a score for a new patient: double y = lra.Regression.Score(new double[] { 87, 1 }); // 0.75 // For those inputs, the answer probability is approximately 75%. // We can also obtain confidence intervals for the probability: DoubleRange ci = lra.GetConfidenceInterval(new double[] { 87, 1 });
The resulting table is shown below.
// 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). double[][] inputs = { // Age Smoking new double[] { 55, 0 }, new double[] { 28, 0 }, new double[] { 65, 1 }, new double[] { 46, 0 }, new double[] { 86, 1 }, new double[] { 56, 1 }, new double[] { 85, 0 }, new double[] { 33, 0 }, new double[] { 21, 1 }, new double[] { 42, 1 }, }; // Additionally, we also have information about whether // or not they those patients had lung cancer. The array // below gives 0 for those who did not, and 1 for those // who did. double[] output = { 0, 0, 0, 1, 1, 1, 0, 0, 0, 1 }; // Create a Logistic Regression analysis var lra = new LogisticRegressionAnalysis() { Regularization = 0 }; // compute the analysis LogisticRegression regression = lra.Learn(inputs, output); // Now we can show a summary of the analysis // Accord.Controls.DataGridBox.Show(regression.Coefficients);
The analysis can also be created from data given in a summary form. Instead of having one input vector associated with one positive or negative label, each input vector is associated with the proportion of positive to negative labels in the original dataset.
// Suppose we have a (fictitious) data set about patients who // underwent cardiac surgery. The first column gives the number // of arterial bypasses performed during the surgery. The second // column gives the number of patients whose surgery went well, // while the third column gives the number of patients who had // at least one complication during the surgery. // int[,] data = { // # of stents success complications { 1, 140, 45 }, { 2, 130, 60 }, { 3, 150, 31 }, { 4, 96, 65 } }; // Get input variable and number of positives and negatives double[][] inputs = data.GetColumn(0).ToDouble().ToJagged(); int[] positive = data.GetColumn(1); int[] negative = data.GetColumn(2); // Create a new Logistic Regression Analysis from the summary data var lra = new LogisticRegressionAnalysis(); // compute the analysis LogisticRegression regression = lra.Learn(inputs, positive, negative); // Now we can show a summary of the analysis // Accord.Controls.DataGridBox.Show(regression.Coefficients); // We can also investigate all parameters individually. For // example the coefficients values will be available at the // vector double[] coef = lra.CoefficientValues; // The first value refers to the model's intercept term. We // can also retrieve the odds ratios and standard errors: double[] odds = lra.OddsRatios; double[] stde = lra.StandardErrors; // Finally, we can use it to estimate risk for a new patient double y = lra.Regression.Score(new double[] { 4 }); // 67.0