How to setup and run logistic regression? In the following example we'll perform ordinary (i.e. with two categories) logistic regression on data, taken from NCSS statistics program. Note that TMtxLogistReg.Y vector values are binary integer values.
Uses ..., StatTools, MtxVecEdit; var TestComp: TMtxLogistReg; begin TestComp := TMtxLogistReg.Create(Self); try TestComp.A.SetIt(27,3,false, [0.8, 1.9, 0.996, 0.9, 1.4, 0.992, 0.8, 0.8, 0.982, 1, 0.7, 0.986, 0.9, 1.3, 0.98, 1, 0.6, 0.982, 0.95, 1, 0.992, 0.95, 1.9, 1.02, 1, 0.8, 0.999, 0.95, 0.5, 1.038, 0.85, 0.7, 0.988, 0.7, 1.2, 0.982, 0.8, 0.4, 1.006, 0.2, 0.8, 0.99, 1, 1.1, 0.99, 1, 1.9, 1.02, 0.65, 0.5, 1.014, 1, 1, 1.004, 0.5, 0.6, 0.99, 1, 1.1, 0.986, 1, 0.4, 1.01, 0.9, 0.6, 1.02, 1, 1, 1.002, 0.95, 1.6, 0.988, 1, 1.7, 0.99, 1, 0.9, 0.986, 1, 0.7, 0.986]); TestComp.Y.SetIt(false,[1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0]); TestComp.Recalc; // Results => // B = (9.65215222458842, 3.86710032907408, -82.073774279211) // Theta = (-67.6339061278272) // TBStdErr = (56.8875416435276, 7.75107606604495, 1.77827769017976, 61.712376172072) // meaning Theta StdErr = 56.8875416435276, // Beta StdErrs = 7.75107606604495, 1.77827769017976, 61.712376172072 ViewValues(TestComp.b,'B',true); ViewValues(TestComp.Theta,'Theta',true); ViewValues(TestComp.TBStdErr,'SE',true); finally TestComp.Free; end; end;
#include "StatTools.hpp" #include "Math387.hpp" #include "MtxExpr.hpp" void __fastcall Example(TMtxLogistReg* tc) { const int aDataLen = 81; double aData[aDataLen] = {0.8, 1.9, 0.996, 0.9, 1.4, 0.992, 0.8, 0.8, 0.982, 1, 0.7, 0.986, 0.9, 1.3, 0.98, 1, 0.6, 0.982, 0.95, 1, 0.992, 0.95, 1.9, 1.02, 1, 0.8, 0.999, 0.95, 0.5, 1.038, 0.85, 0.7, 0.988, 0.7, 1.2, 0.982, 0.8, 0.4, 1.006, 0.2, 0.8, 0.99, 1, 1.1, 0.99, 1, 1.9, 1.02, 0.65, 0.5, 1.014, 1, 1, 1.004, 0.5, 0.6, 0.99, 1, 1.1, 0.986, 1, 0.4, 1.01, 0.9, 0.6, 1.02, 1, 1, 1.002, 0.95, 1.6, 0.988, 1, 1.7, 0.99, 1, 0.9, 0.986, 1, 0.7, 0.986}; const int yDataLen = 27; double yData[yDataLen] = {1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0}; tc->A->SetIt(27,3,false, aData, aDataLen-1); tc->Y->SetIt(false,yData, yDataLen-1); tc->Recalc(); // Results => // B = (9.65215222458842, 3.86710032907408, -82.073774279211) // Theta = (-67.6339061278272) // TBStdErr = (56.8875416435276, 7.75107606604495, 1.77827769017976, 61.712376172072) // meaning Theta StdErr = 56.8875416435276, // Beta StdErrs = 7.75107606604495, 1.77827769017976, 61.712376172072 }
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
|