An ABA condition index calculator examines the geometry of a regression design matrix before individual coefficients are interpreted. It asks whether included columns are nearly linear combinations of one another under a stated scaling convention. A large value can flag unstable coefficient separation, but it cannot identify a bad predictor, establish a treatment effect, or say whether a result matters to a client.
Clinicians & ABA Professionals / Data, Outcomes and Clinical Decision-Making.
The diagnostic lives in the design matrix
Condition indices use the model's input columns, not the response or residuals. Two analyses with the same design matrix and scaling convention will have the same indices even if their response values differ completely. That makes this diagnostic useful for checking predictor geometry, but insufficient for judging model fit, prediction error, treatment response, or causal interpretation.
Multicollinearity arises when one design column is exactly or approximately represented by a combination of others. Exact dependence makes the matrix rank deficient. Approximate dependence may allow a numerical fit while making individual coefficient estimates sensitive to small changes in data, coding, or model specification. The NIST condition-index documentation describes this higher-order dependence and distinguishes condition indices from pairwise correlation and variance inflation factors.
This page uses a unit-length column convention. Each included design column, including the intercept, is divided by its Euclidean norm. The resulting matrix is called Z. The calculator forms Z'Z, obtains its eigenvalues, and compares each one with the largest eigenvalue. A team using a centered predictor matrix, a correlation matrix, a standardized matrix without the intercept, or a software summary's raw design condition number is answering a related but different numerical question.
Fix the model record before calculating
Copy the model record into the worksheet before looking at any condition index. A reproducible ABA condition index calculator needs that record so an apparently precise number does not become detached from the columns that produced it.
Required itemRecord before calculationStop or escalate whenIntended useThe narrow reason for examining design geometryThe result will be treated as a clinical ruleRow unitSession, day, client, site, or another defined unitUnits are mixed or duplicated without a planAuthorized row keyStable de-identified key for every rowRows cannot be reconciled to the source recordDesign columnsOrdered labels and exact numeric codingA label, level, interaction, offset, or intercept is missingIntercept ruleIncluded or omitted, with rationaleSoftware added or removed it silentlyCentering and scalingExact preprocessing applied before this worksheetTraining and review pipelines differInclusion rulesMissingness, exclusion, transformation, weight and window rulesRows or columns were changed after seeing the resultSoftware recordPackage, version, precision and eigenvalue routineOnly a rounded screenshot remainsClinical contextDirect graph, phase labels and measurement definitionThe matrix has been separated from the observed series
The response may still matter to the larger regression review, but it does not enter this condition-index arithmetic. Do not add or remove a column because its clinical label sounds more or less important. Record the actual coded matrix.
Formula and calculation route
Let X contain n rows and p included design columns. For column j, calculate its Euclidean norm:
normj = sqrt(sumi X_ij^2)
When every norm is positive, form a unit-length-scaled matrix:
Zij = Xij / norm_j
Calculate G = Z'Z and order its eigenvalues from largest to smallest:
lambda1 >= lambda2 >= ... >= lambda_p > 0
For each component j, calculate:
CIj = sqrt(lambda1 / lambda_j)
The first condition index is 1. The largest index equals the largest singular value of Z divided by the smallest singular value of Z. The current statsmodels condition-number documentation describes that singular-value ratio and its equivalent eigenvalue expression. The current eigenvalue property exposes ordered values, but the user must still preserve the exact matrix convention.
Use positive, unrounded eigenvalues in the ratio. A computed zero, negative value caused by numerical error, nonfinite result, or value indistinguishable from the routine's tolerance is a stop condition. It is not a request to replace the denominator with an arbitrary small number.
Blank condition-index worksheet
Start with the actual design columns. Extend the table for all rows and keep a versioned copy of the original matrix.
Row keyInterceptPredictor APredictor BPredictor CInclusion note
Then record every intermediate value.
Column or componentEuclidean normEigenvalue of Z'ZCondition indexNumerical statusInterpretation note11.0000000000234
Reconciliation itemRecorded resultMatrix rank and toleranceSingular values from the same ZLargest/smallest singular-value ratiosqrt(lambdamax/lambdamin)Agreement before roundingSoftware and versionReviewer and date
This worksheet does not assign an individual eigenvalue to one predictor. An eigenvector or variance-decomposition analysis may help a qualified statistician investigate which combinations contribute to a small eigenvalue, but a condition index alone does not identify a column to remove.
Fictional ten-row calculation
The example below is arithmetic only. It is not a client series, valid treatment model, or recommended predictor set. The four design columns are an intercept, predictor A, predictor B, and a fictional binary phase indicator.
RowInterceptPredictor APredictor BPhase1111.202121.913133.104144.215154.806166.117177.208187.919199.10101109.81
The Euclidean norms are 3.1622776602, 19.6214168703, 19.6379734189, and 2.2360679775. After division by those norms, the scaled crossproduct is:
InterceptPredictor APredictor BPhaseIntercept1.00000000000.88640526040.89048880390.7071067812Predictor A0.88640526041.00000000000.99967595410.6837634588Predictor B0.89048880390.99967595411.00000000000.6809096957Phase0.70710678120.68376345880.68090969571.0000000000
Its ordered eigenvalues are 3.4383652920, 0.4194093917, 0.1419647607, and 0.0002605556. Applying CIj = sqrt(lambda1 / lambda_j) gives:
ComponentEigenvalueCondition index13.43836529201.000000000020.41940939172.863234586530.14196476074.921366739240.0002605556114.8750752964
The largest index, 114.8750752964, is the condition number of this unit-length-scaled matrix. Predictor A and predictor B are visibly similar here, but the number itself still refers to the joint column geometry. It does not show that either fictional predictor is inaccurate or clinically unnecessary.
One-cell sensitivity comparison
Change only row 10 predictor B from 9.8 to 8.8 and keep every other entry and convention fixed. The smallest eigenvalue rises to 0.0014667096; the ordered condition indices become 1.0000000000, 2.8502844065, 4.9962671073, and 48.4128245469.
That large change is the point of the sensitivity example. Near-dependence can make the summary responsive to a modest design change. It does not prove that 8.8 is correct, that 9.8 is an error, or that the original model should be abandoned. Verify source data and then explain any justified change.
What valid transformations preserve
Multiplying one included column by a nonzero constant before unit-length scaling does not change that column's normalized direction, so the eigenvalues and indices remain the same apart from numerical tolerance. Jointly permuting rows also preserves Z'Z. Reordering predictor columns changes the matrix display order but not its eigenvalues.
Translation is different. Adding a constant to a predictor changes its relationship with the intercept unless a documented centering convention is applied. Replacing a categorical reference level, adding interactions, or expanding a factor into indicator columns changes the design. These are modeling decisions, not cosmetic formatting.
The official statsmodels OLS example demonstrates unit-length normalization before an eigenvalue condition-number calculation. If another package reports a much different value, first reconcile whether it used raw, centered, standardized, weighted, whitened, or intercept-excluded columns. Do not average incompatible results.
Thresholds are review prompts
Published and software discussions use several heuristic bands. A value such as 20, 30, or 100 can be a useful prompt in a specific methodology, yet none is a universal ABA cutoff. The NIST regression-diagnostics reference places condition indices beside VIF, residual plots, leverage and influence diagnostics rather than treating one number as a verdict.
A high index can reflect essential structural columns, time and phase coding, polynomial terms, interactions, poor scaling, or an accidental duplicate. Begin by reconciling labels, coding, rank, numerical tolerance, software convention and the clinical meaning of every column. Automatic deletion can change the estimand and obscure the reason a predictor was included.
VIF and condition indices are related but not interchangeable. VIF is predictor-specific under its convention; condition indices reveal weak directions involving combinations of columns. Pairwise correlations can miss higher-order dependence. A model may require several views.
Stop conditions and escalation
Stop before interpretation when a column has zero norm, the matrix is not the one used for the fit, row alignment is uncertain, a categorical expansion is incomplete, weights or transformations differ, rank is deficient, or eigenvalues are nonpositive or nonfinite. Retain the failure output and the exact input rather than silently dropping a column.
Escalate numerical decisions when the smallest eigenvalue is close to the routine's precision limit, two programs disagree, weighting or whitening is involved, or a sensitivity analysis materially changes coefficient interpretation. Repeated observations, nested clients, sites, phases, or time series may also require a model that reflects dependence. A matrix diagnostic cannot repair an unsuitable model.
Do not search across many codings and report only the one with a reassuring number. Any alternative design should follow a prespecified clinical and statistical rationale, with the original fit preserved. Post-result selection can make both the coefficients and their diagnostic story look more stable than they are.
Clinical interpretation remains separate
Condition indices cannot establish measurement quality, experimental control, treatment effect, prediction accuracy, social validity or causation. Direct ABA data and graphs still show level, trend, variability, immediacy, overlap and contextual changes. Phase labels and treatment-integrity information remain necessary for clinical interpretation.
The BACB Ethics Code materials and BCBA Test Content Outline support competent, data-based practice grounded in measurement, graphing and interpretation. The Standards for Educational and Psychological Testing add intended-use and evidence principles. None of these sources requires this calculator or validates the fictional model.
Ask a qualified statistician to review the design, eigenvalue tolerance, scaling choice and any inferential consequences. Ask the responsible clinician to explain whether each predictor has a defensible operational meaning. Include clients and caregivers when the model's use could affect goals, services or communication. A mathematically stable model can still answer the wrong question.
Privacy, security and accessibility
Use de-identified row keys in a working calculator whenever possible. Keep any link to identifiable records in an access-controlled system with the minimum necessary access, retention and audit controls. The HHS Privacy Rule summary and HHS Security Rule summary provide federal context for covered entities and business associates; they do not replace an organization-specific legal and security review.
Do not paste protected information into an unapproved public calculator. Export a versioned input and result only to an authorized location. An accessible implementation should provide labeled fields, keyboard operation, clear focus order, text equivalents for visual warnings, readable error messages, and downloadable values that do not rely on color alone.
Related resources
- ABA VIF (Variance Inflation Factor) Collinearity Diagnostic Calculator for Clinicians
- ABA Ordinary Least-Squares Fixed-X Regression Diagnostic Calculator for Clinicians
- ABA DFBETAS Coefficient Influence Diagnostic Calculator for Clinicians
- ABA COVRATIO Coefficient-Covariance Influence Diagnostic Calculator for Clinicians
Sources
- BACB Ethics Code materials
- BCBA Test Content Outline, sixth edition
- Standards for Educational and Psychological Testing
- statsmodels condition-number documentation
- statsmodels eigenvalue documentation
- statsmodels OLS example
- NIST condition indices
- NIST regression diagnostics
- HHS HIPAA Privacy Rule summary
- HHS HIPAA Security Rule summary