Examples - pi.science.regression.PILogisticRegression
1. How to compute Logistic regression for X and Y values ?
/* - prepare X data for regression */
PIVariable X = new PIVariable();
X.AddMoreValuesRange( 1, 19 );
/* - prepare Y data for regression */
PIVariable Y = new PIVariable();
Y.AddValues( new int[] { 233, 241, 250, 266, 283 } );
Y.AddValues( new int[] { 295, 309, 329, 339, 335 } );
Y.AddValues( new int[] { 335, 345, 358, 363, 374 } );
Y.AddValues( new int[] { 387, 399, 412, 424 } );
/* - create and compute regression */
PILogisticRegression regression = new PILogisticRegression( X, Y );
/* cut partial sums from START */
regression.SetCutStyleForPartialSum( CutStyleForPartialSum.START );
regression.Calc();
Console.WriteLine( regression.GetTextFormula() );
Console.WriteLine( regression.GetTextFormulaFilled() );
/* - calc prediction for X = 26 */
PIDebug.Blank();
Console.WriteLine( "Prediction for X=26 : " + regression.CalcPredictedY( 26.0 ) );
PIDebug.Blank();
Console.WriteLine( "Prediction errors:" );
Console.WriteLine( regression.GetErrors().AsString( 5 ) );
PIDebug.Blank();
Console.WriteLine( "SSE = " + regression.GetSSE() );
Console.WriteLine( "ME = " + regression.GetME() );
Console.WriteLine( "MSE = " + regression.GetMSE() );
Console.WriteLine( "MAE = " + regression.GetMAE() );
Console.WriteLine( "MAPE = " + regression.GetMAPE() );
Console.WriteLine( "MPE = " + regression.GetMPE() );
Output:
y = k / ( 1 + ( A * B^x ) )
y = 474.5270 / ( 1 + ( 1.0606 * 0.9000^x) )
Prediction for X=26 : 444.1249838435951
Prediction errors:
-9.78500;-14.25540;-17.62661;-13.83222;-8.80939;-8.50006;-5.85204;3.18028;2.63537
;-11.45572;-21.06934;-20.18906;-15.80528;-18.91470;-15.51969;-9.62756;-4.24987;
2.59836;8.89929
SSE = 3030.0347376899363
ME = -9.37782322475186
MSE = 159.47551250999663
MAE = 11.20027547019581
MAPE = 3.380802128421088
MPE = -2.933441759268867