type TMtxLogistReg = class(TMtxComponent);
Performs logistic regression.
Use TMtxLogistReg component to perform ordinary or ordinal logistic regression on dataset.Suppose y takes values in k ordered categories, and let p_ij be the cumulative probability that y(i) falls in the j'th category or higher. The ordinal logistic regression model is defined as:
logit(p_ij) = theta(j) + A_i'B , i = 1,..,length(Y), j = 1,..,k-1,
where A_i is the i'th row of A . The number of ordinal categories k is taken to be the number of distinct values of int(y). If k is 2 (two categories) the model is ordinary logistic regression.
How to use TMtxLogistReg component?
- Drop a TMtxLogistReg component on the form.
- Define TMtxLogistReg.A, the matrix of independent variables.
- Define TMtxLogistReg.Y, grouping (categories) vector. Note: All values have to be integers.
- Define initial estimates for TMtxLogistReg.Theta and TMtxLogistReg.B coefficients. Alternatively you can also set TMtxLogistReg.AutoInitEstimates to true and let the algorithm calculate initial estimates for Theta and B.
- (Optionally) Set TMtxLogistReg.Tolerance to define desired B, Theta estimates precision. Set TMtxLogistReg.MaxIteration to define maximum number of iterations in main calculation loop.
- Call the TMtxLogistReg.Recalc method to trigger calculation.
Results:
- TMtxLogistReg.B : B coefficients estimates.
- TMtxLogistReg.Theta : Theta coefficients estimates.
- TMtxLogistReg.TBStdErr : Theta and B coefficients estimates standard errors.
Examples
delphi
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;
Properties
| Name | Type | Description |
|---|---|---|
| A | TMtx | Independent variables. |
| Alpha | Double | Desired significant value for the statistical tests. |
| AutoInitEstimates | Boolean | Automatically calculate initial estimates for regression coefficients. |
| AutoUpdate | Boolean | If true then changing any of the TMtxLogistReg properties will trigger the TMtxLogistReg.Recalc method. |
| B | TVec | B coefficients estimates. |
| BlockAssign | Boolean | Block streaming of specific properties when storing only a "template". |
| Dirty | Boolean | When any of the TMtxLogistReg properties changes, this property is automatically set to true. |
| EditorActive | Boolean | Returns True, if the component editor is displayed. |
| MaxIteration | Integer | Defines one of the conditions for terminating the regression coefficient calculation. |
| Reference | TReferenceList | Stores a list of components that have to be notified, when this component is destroyed. |
| TBStdErr | TVec | Standard errors of Theta, B estimates. |
| Theta | TVec | Theta coefficients estimates. |
| Tolerance | Double | Defines one of the conditions for terminating the regression coefficient calculation. |
| Y | TVec | Grouping variable. |
Methods
| Name | Description |
|---|---|
| AllowStreaming | Returns the negatated value of BlockAssign. |
| Assign | Assign values of all published properties from Source. |
| AssignTemplate | Assign values of "template-like" published properties from Source. |
| EditorClass | To be overriden in descendanr classses. |
| LoadFromStream | Load the component from Src stream. |
| LoadTemplateFromFile | Load a template from file. |
| LoadTemplateFromStream | Load a template from stream. |
| Recalc | Triggers logistic regression recalculation. |
| Reset | Reset is called after loading the data from stream or file. |
| SaveTemplateToFile | Save template to file. |
| SaveTemplateToStream | Save template to stream. |
| SaveToStream | Save the component to Dst stream. |