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