UK-based online statistics and data analysis support for USA, UK, and international clients. No exams, no impersonation, no fabricated data.
Normality and Assumption Tests

Tolerance Statistic: Assumptions, Interpretation, SPSS, Python, R and Excel Guide

Learn Tolerance Statistic with verified SPSS output, Python charts, R charts, Excel workflow, interpretation guidance, APA reporting tips, and downloadable resources.

Statistics guide Ethical learning support SPSS/R/Python/Excel friendly
Tolerance Statistic: Assumptions, Interpretation, SPSS, Python, R and Excel Guide

Regression Assumption, Multicollinearity, Tolerance and VIF

Tolerance Statistic: Formula, Interpretation, SPSS, Python, R and Excel Guide

Tolerance Statistic is a regression collinearity diagnostic that shows how much unique variance a predictor has after the other predictors have been considered. A low Tolerance Statistic means a predictor is strongly explained by other predictors, so its regression coefficient may become unstable. This guide explains Tolerance Statistic with verified SPSS output, Python charts, R validation charts, Excel workflow, interpretation rules, code blocks, APA reporting wording, common mistakes, and downloadable resources.

Advertisement
Google AdSense top placement reserved here

Quick Answer: Tolerance Statistic Result

The verified regression model predicted G3 final grade from 13 predictors: G1, G2, studytime, failures, absences, age, Medu, Fedu, traveltime, famrel, freetime, goout and health. The overall model was strong, with R = .923, R² = .852, adjusted R² = .849, F(13, 635) = 281.518, and p < .001. The main Tolerance Statistic result is that all predictors stayed above the common warning threshold of tolerance = .20. The lowest tolerance values were for G1 = .238 and G2 = .238. These values are low compared with other predictors, but they are still acceptable under the tolerance ≥ .20 rule.

Hypothesis-style decision: The null assumption says the regression model does not have harmful multicollinearity, meaning H0: Tolerance Statistic ≥ .20 for all predictors. The alternative assumption says at least one predictor has problematic multicollinearity, meaning H1: Tolerance Statistic < .20 for at least one predictor. Since the lowest tolerance is .238, the tolerance-based decision is to retain the null assumption of acceptable multicollinearity. However, G1 and G2 should still be discussed carefully because they have the lowest tolerance and the highest VIF cross-check values.

Dependent variableG3
Predictors13
Lowest tolerance.238
Highest VIF cross-check4.204

Model R².852
Adjusted R².849
ANOVA decisionp < .001
Tolerance decisionAcceptable

Final interpretation: Tolerance Statistic analysis showed no serious multicollinearity under the common tolerance < .20 or tolerance < .10 rules. All predictors were in the acceptable tolerance range. The only predictors requiring caution were G1 and G2, because their tolerance values were the lowest at about .238. The regression model can be reported, but G1 and G2 should be interpreted as related grade predictors rather than fully independent predictors.

Important note: Tolerance Statistic is not a normality test and does not evaluate residual shape. It checks predictor multicollinearity in regression. For normality diagnostics, use tools such as the Q-Q plot normality check, P-P plot normality check, Kolmogorov-Smirnov test, Lilliefors test, and D’Agostino-Pearson test.

Table of Contents

  1. What Is Tolerance Statistic?
  2. Tolerance Statistic Formula and VIF Relationship
  3. Null and Alternative Hypothesis for Tolerance Statistic
  4. Dataset and Regression Variables Used
  5. Verified SPSS Output Interpretation
  6. Python Chart-by-Chart Interpretation
  7. R Chart-by-Chart Validation
  8. SPSS, R, Python and Excel Workflows
  9. Code Blocks for Tolerance Statistic
  10. APA Reporting Wording
  11. Common Mistakes
  12. When to Use Tolerance Statistic
  13. Downloads and Resources
  14. Related Guides
  15. FAQs

What Is Tolerance Statistic?

Tolerance Statistic is a regression diagnostic used to detect multicollinearity among independent variables. It tells how much of a predictor’s variance is not explained by the other predictors in the model. If the Tolerance Statistic is high, the predictor has a large amount of unique information. If the Tolerance Statistic is low, the predictor overlaps strongly with other predictors.

In simple words, the Tolerance Statistic answers this question: “After the other predictors explain this predictor, how much unique variance is still left?” A tolerance value close to 1 means the predictor is mostly independent of the other predictors. A tolerance value near 0 means the predictor is mostly redundant with other predictors. Low tolerance can inflate standard errors, weaken statistical power, and make regression coefficients unstable.

This guide uses a regression model predicting G3 final grade. The predictors include previous grades, study time, failures, absences, age, parental education variables, travel time, family relationship, free time, going out, and health. Because G1 and G2 are both previous grade variables, they naturally overlap. The Tolerance Statistic output confirms this: G1 and G2 have the lowest tolerance values, but their values remain above the .20 warning threshold.

Practical meaning: Tolerance Statistic does not tell whether the regression model predicts well. It tells whether the predictor set has enough unique information for stable coefficient interpretation. A model can have a high R² and still have poor tolerance values for some predictors.

Tolerance Statistic Formula and VIF Relationship

The Tolerance Statistic for a predictor is based on an auxiliary regression. In that auxiliary regression, one predictor is predicted from all the other predictors. The R² from that auxiliary regression is then used to calculate tolerance.

Tolerance Statistic = 1 − R²j

Here, j is the R-squared value from predicting predictor Xj using all other predictors. If the other predictors explain a large part of Xj, then j is high and the Tolerance Statistic becomes low.

The Tolerance Statistic is also the inverse of the Variance Inflation Factor:

Tolerance Statistic = 1 / VIF
VIF = 1 / Tolerance Statistic

Therefore, low tolerance and high VIF describe the same multicollinearity problem from opposite directions. If tolerance is low, VIF is high. If tolerance is high, VIF is low.

Tolerance / VIF RuleCommon InterpretationAction
Tolerance near 1Predictor has strong unique variance.Usually safe to interpret coefficient.
Tolerance .50 to 1.00Low multicollinearity risk.Usually acceptable.
Tolerance .20 to .50Some overlap exists but often acceptable.Interpret with caution and check VIF.
Tolerance < .20Common multicollinearity warning threshold.Review predictor overlap and model design.
Tolerance < .10Serious multicollinearity warning threshold.Model revision is usually needed.
VIF > 5Moderate multicollinearity warning.Review predictor redundancy.
VIF > 10Serious multicollinearity warning.Consider removing, combining, or rethinking predictors.

Threshold caution: Tolerance thresholds are guidelines, not absolute laws. Many reports use tolerance < .20 as a warning and tolerance < .10 as a serious warning. This guide uses tolerance ≥ .20 as acceptable, because it matches the VIF ≤ 5 decision rule.

Null and Alternative Hypothesis for Tolerance Statistic

The Tolerance Statistic is a diagnostic rule rather than a traditional p-value hypothesis test. However, a hypothesis-style decision is useful for assumption-check reporting because it makes the result clear and consistent with other statistical guide posts.

StatementDecision RuleMeaning in This Regression Model
Null assumptionH0: Tolerance Statistic ≥ .20 for all predictorsThe model does not show harmful multicollinearity under the selected tolerance rule.
Alternative assumptionH1: at least one Tolerance Statistic < .20At least one predictor shows problematic multicollinearity.
Serious-risk versionH1: at least one Tolerance Statistic < .10At least one predictor shows serious multicollinearity.

Hypothesis-style decision: The lowest Tolerance Statistic is .238 for G1 and G2. Since no predictor falls below .20, the tolerance-based decision is to retain the null assumption of acceptable multicollinearity. The model does not show harmful multicollinearity under the selected tolerance rule.

Interpretation nuance: Although the tolerance rule is acceptable, G1 and G2 are still strongly related. Their low tolerance values are caused mainly by their strong pairwise relationship. Therefore, the model is acceptable for reporting, but G1 and G2 should not be described as fully independent predictors.

Dataset and Regression Variables Used

The worked example uses a student performance regression model. The dependent variable is G3 final grade. The predictors are G1, G2, studytime, failures, absences, age, Medu, Fedu, traveltime, famrel, freetime, goout, and health. The Tolerance Statistic is calculated only for predictors, not for the dependent variable.

VariableRoleNMeanStandard DeviationWhy It Matters for Tolerance Statistic
G3Dependent variable649Final grade outcomeNot a tolerance predictorThe regression model predicts G3.
G1Predictor64911.402.745Previous grade; lowest tolerance because it overlaps with G2.
G2Predictor64911.572.914Previous grade; lowest tolerance and highest VIF cross-check.
studytimePredictor6491.93.830High tolerance, showing low multicollinearity risk.
failuresPredictor649.22.593Acceptable tolerance with low-to-mild predictor overlap.
absencesPredictor6493.664.641High tolerance in this regression model.
agePredictor64916.741.218High tolerance, although condition index should also be reviewed.
MeduPredictor6492.511.135Moderate unique variance; related to Fedu.
FeduPredictor6492.311.100Moderate unique variance; related to Medu.
traveltimePredictor6491.57.749High tolerance and low multicollinearity risk.
famrelPredictor6493.93.956High tolerance and strong unique variance.
freetimePredictor6493.181.051Acceptable tolerance; related moderately to goout.
gooutPredictor6493.181.176Acceptable tolerance; related moderately to freetime.
healthPredictor6493.541.446Highest tolerance and lowest VIF cross-check.

For broader descriptive review before regression, use descriptive statistics, frequency distribution, five-number summary, histogram interpretation, and box plot interpretation.

Advertisement
Google AdSense middle placement reserved here

Verified SPSS Output Interpretation

The SPSS output provides the main evidence for the Tolerance Statistic decision. The regression model used G3 as the dependent variable and entered all 13 predictors. SPSS reports the Tolerance Statistic in the Coefficients table under Collinearity Statistics. The same table also reports VIF, which is the inverse of tolerance.

SPSS Model Summary and ANOVA

SPSS Output ItemValueInterpretation
Dependent variableG3The model predicts final grade.
Predictors enteredhealth, Medu, goout, absences, famrel, studytime, age, traveltime, freetime, G2, failures, Fedu, G1All requested predictors were entered in the regression model.
R.923The model has a very strong multiple correlation with G3.
R Square.852About 85.2% of variance in G3 is explained by the predictors.
Adjusted R Square.849The model remains strong after adjusting for predictor count.
Standard error of estimate1.255Typical prediction error is about 1.255 grade points.
ANOVA FF(13, 635) = 281.518The overall regression model is statistically significant.
Sig..000 in SPSS; report as p < .001The overall model explains significant variance in G3.

SPSS Tolerance Statistic and VIF Cross-check

PredictorBBetatpTolerance StatisticVIF Cross-checkTolerance Interpretation
G1.146.1243.957< .001.2384.195Lowest tolerance; acceptable but close enough to require caution.
G2.881.79525.408< .001.2384.204Lowest tolerance and highest VIF cross-check; acceptable under .20 rule.
Medu-.035-.012-.603.546.5481.823Acceptable tolerance; mild overlap with Fedu.
Fedu.034.011.565.572.5671.762Acceptable tolerance; mild overlap with Medu.
failures-.232-.043-2.427.016.7531.328Good tolerance and low multicollinearity risk.
freetime-.039-.013-.766.444.8431.186High tolerance and low multicollinearity risk.
goout-.033-.012-.719.473.8451.183High tolerance and low multicollinearity risk.
age.026.010.581.562.8461.182High tolerance, although condition index should also be checked.
studytime.088.0231.420.156.9121.097Very high tolerance and very low multicollinearity risk.
traveltime.082.0191.184.237.9111.097Very high tolerance and very low multicollinearity risk.
absences.022.0321.999.046.9331.072Very high tolerance and very low multicollinearity risk.
famrel-.028-.008-.521.603.9451.058Very high tolerance and very low multicollinearity risk.
health-.047-.021-1.353.177.9611.041Highest tolerance; strongest unique predictor independence.

SPSS Tolerance Statistic Decision Summary

Decision CategoryRuleNumber of PredictorsSPSS Result
AcceptableTolerance Statistic ≥ .2013All predictors are acceptable under the tolerance ≥ .20 rule.
Warning.10 ≤ Tolerance Statistic < .200No predictor falls in the warning range.
Serious warningTolerance Statistic < .100No predictor shows serious multicollinearity.
VIF cross-checkVIF ≤ 513All predictors also pass the VIF cross-check rule.

SPSS Collinearity Diagnostics and Condition Index

SPSS also reports a collinearity diagnostics table. The table helps identify deeper collinearity structure beyond the basic Tolerance Statistic column. In this model, high condition index values appear, and one high-index dimension involves large variance proportions for G1 and G2. This supports the same practical conclusion: the main overlap is between the two previous grade predictors. The tolerance decision remains acceptable, but G1 and G2 should not be described as fully independent predictors.

SPSS interpretation summary: The Tolerance Statistic table is acceptable because all tolerance values are above .20. The lowest values are for G1 and G2, both about .238. The VIF cross-check gives the same result because G1 and G2 have VIF values around 4.20, below the common VIF = 5 threshold. Therefore, the model does not show harmful multicollinearity under the selected rule.

Python Chart-by-Chart Interpretation

The Python charts show the Tolerance Statistic pattern visually. The main message is consistent across all figures: G1 and G2 have the lowest tolerance values, but all predictors remain above the common .20 threshold. Therefore, the model has acceptable multicollinearity under the selected tolerance decision rule.

Python Chart 1: Tolerance by Predictor

Tolerance Statistic by predictor chart showing G1 and G2 lowest but above 0.20
Python chart showing Tolerance Statistic values by predictor with .20 and .10 reference thresholds.

This chart ranks predictors by Tolerance Statistic. The lowest values are for G1 and G2, both around .238. These two predictors are the main variables to watch because they are previous grade measures and share substantial information. However, both values remain above the dashed .20 warning line. That means no predictor violates the common tolerance warning rule.

Most predictors have high tolerance values, especially health, famrel, absences, studytime and traveltime. High tolerance means these predictors are not strongly explained by the other predictors. The chart supports the final decision that the model has acceptable tolerance values, while still identifying G1 and G2 as the main caution variables.

Python Chart 2: VIF Cross-check

Tolerance Statistic VIF cross check chart showing G2 and G1 highest but below VIF 5
Python chart showing VIF values as the inverse cross-check for tolerance.

The VIF cross-check verifies the tolerance result from the opposite direction. Since VIF is the inverse of tolerance, the predictors with the lowest tolerance have the highest VIF. G2 and G1 have the highest VIF values, around 4.20, but they remain below the common VIF = 5 reference line. This confirms that the low tolerance values are elevated but still acceptable.

The VIF cross-check is important because many readers are more familiar with VIF than tolerance. In this model, both diagnostics tell the same story: no predictor crosses the warning threshold, but G1 and G2 have the most predictor overlap.

Python Chart 3: Predictor Correlation Heatmap

Tolerance Statistic predictor correlation heatmap showing G1 G2 and Medu Fedu relationships
Python heatmap showing predictor correlations used to explain low tolerance values.

The predictor correlation heatmap explains why some predictors have lower tolerance. The strongest off-diagonal relationship is between G1 and G2. This relationship explains why both grade predictors have the lowest tolerance and highest VIF cross-check values. Another visible relationship is between Medu and Fedu, which explains their moderate tolerance values.

The heatmap is useful because the Tolerance Statistic is not only a number to report. It should be interpreted with predictor relationships. When predictors are strongly correlated, they share explanatory information. That shared information reduces tolerance and can make coefficient interpretation less stable.

Python Chart 4: Top Pairwise Predictor Correlations

Tolerance Statistic top pairwise predictor correlations showing strongest G1 versus G2 correlation
Python chart ranking strongest absolute predictor correlations.

This chart isolates the strongest pairwise predictor correlations. The strongest relationship is G1 vs G2, which is high enough to explain why these two variables have the lowest tolerance. The next strongest relationship is Medu vs Fedu. Other pairs are weaker and do not create serious tolerance problems.

This chart should not replace the tolerance table because tolerance can reflect combined overlap with several predictors. However, in this model the strongest pairwise relationship clearly explains the main tolerance pattern. The chart supports the conclusion that G1 and G2 require interpretation caution.

Python Chart 5: Tolerance vs VIF

Tolerance Statistic versus VIF scatter plot showing inverse relationship between tolerance and VIF
Python scatter plot showing the inverse relationship between Tolerance Statistic and VIF.

This scatter plot directly shows that Tolerance Statistic and VIF are inverse diagnostics. Predictors with low tolerance appear with high VIF. G1 and G2 sit in the lower-tolerance, higher-VIF region. The remaining predictors cluster near high tolerance and low VIF.

This chart is a useful teaching figure because it shows why tolerance and VIF should not be treated as unrelated measures. They are two forms of the same collinearity information. A clean report may include both, but the interpretation should be consistent.

Python Chart 6: Regression Coefficients

Tolerance Statistic regression coefficients chart showing G2 strongest positive coefficient and failures negative coefficient
Python chart showing regression coefficients alongside tolerance interpretation.

This chart shows the regression coefficients after all predictors are entered together. G2 has the strongest positive coefficient, while failures has a negative coefficient. The coefficient chart explains why tolerance matters: if predictors overlap strongly, coefficient signs and standard errors can become unstable.

In this model, the Tolerance Statistic is acceptable, so the coefficients can be reported. However, G1 and G2 should still be interpreted as adjusted grade predictors. Their coefficients represent their contribution after the other grade variable and all other predictors are controlled.

Python Chart 7: Tolerance Decision Summary

Tolerance Statistic decision summary showing all predictors acceptable
Python chart summarizing how many predictors fall into acceptable, warning and serious tolerance categories.

The decision summary chart gives the final tolerance result. All 13 predictors fall in the acceptable tolerance category. No predictor falls below .20 and no predictor falls below .10. This chart is the easiest visual for a final report because it clearly shows that the regression model does not violate the selected tolerance threshold.

R Chart-by-Chart Validation

The R charts validate the same Tolerance Statistic analysis using a separate software workflow. The R charts match the Python and SPSS interpretation: G1 and G2 have the lowest tolerance values, all predictors remain above .20, and the final decision is acceptable multicollinearity under the selected tolerance rule.

R Chart 1: Tolerance by Predictor

R Tolerance Statistic by predictor chart
R validation chart showing Tolerance Statistic values by predictor.

The R tolerance chart reproduces the same ranking as Python and SPSS. G1 and G2 have the lowest values, while all other predictors are comfortably above the threshold. This validates the conclusion that the predictor set is acceptable but that grade variables require careful interpretation.

R Chart 2: VIF Cross-check

R Tolerance Statistic VIF cross check chart
R validation chart showing VIF values as the inverse cross-check for tolerance.

The R VIF cross-check confirms that no predictor exceeds the common VIF = 5 threshold. G1 and G2 are the highest VIF predictors because they are the lowest tolerance predictors. This confirms that the tolerance result is not a software artifact; it is the same inverse relationship shown in Python and SPSS.

R Chart 3: Predictor Correlation Heatmap

R Tolerance Statistic predictor correlation heatmap
R validation heatmap showing predictor correlations that explain tolerance values.

The R heatmap confirms the same predictor relationship structure. The strongest relationship is G1 with G2. Medu and Fedu also show a noticeable relationship. These correlations help explain why tolerance is lower for some variables than others.

R Chart 4: Top Pairwise Predictor Correlations

R Tolerance Statistic top pairwise predictor correlations chart
R validation chart ranking the strongest absolute predictor correlations.

The R top-correlation chart again identifies G1 vs G2 as the strongest predictor pair. This supports the low tolerance values for G1 and G2. Since all tolerance values remain above .20, the relationship is important for interpretation but not severe enough to reject the model based on tolerance.

R Chart 5: Tolerance vs VIF

R Tolerance Statistic versus VIF scatter plot
R validation scatter plot showing the inverse relationship between Tolerance Statistic and VIF.

The R scatter plot confirms that tolerance and VIF move in opposite directions. G1 and G2 appear as low-tolerance and high-VIF predictors, while most other predictors appear as high-tolerance and low-VIF predictors. This validates the Python scatter plot and strengthens the interpretation.

R Chart 6: Regression Coefficients

R Tolerance Statistic regression coefficients chart
R validation chart showing regression coefficients for the G3 model.

The R coefficient chart confirms the same coefficient direction as the SPSS and Python results. G2 is the strongest positive predictor, G1 is also positive, and failures is negative. Since tolerance is acceptable, these coefficients can be reported, but the grade predictors should still be interpreted with caution.

R Chart 7: Tolerance Decision Summary

R Tolerance Statistic decision summary showing all predictors acceptable
R validation chart summarizing tolerance decision categories.

The R decision summary confirms that all predictors fall in the acceptable category. No predictor is below .20 and no predictor is below .10. This independent validation strengthens the final conclusion that the model has acceptable tolerance values.

Advertisement
Google AdSense in-content placement reserved here

SPSS, R, Python and Excel Workflows for Tolerance Statistic

The same Tolerance Statistic logic can be applied in SPSS, R, Python and Excel. SPSS reports tolerance directly in the regression Coefficients table. R and Python calculate tolerance from VIF or from auxiliary regression R² values. Excel can reproduce the same method manually by regressing each predictor on all other predictors.

SPSS Workflow

StepSPSS Menu or SyntaxPurpose
Open datasetFile > Open > DataLoad the clean SPSS-ready dataset.
Run regressionAnalyze > Regression > LinearSet G3 as dependent variable and enter predictors.
Select collinearity diagnosticsStatistics > Collinearity diagnosticsRequest tolerance, VIF and condition index output.
Read coefficients tableCoefficients > Collinearity StatisticsUse the Tolerance column for the main decision.
Cross-check VIFSame Coefficients tableConfirm that low tolerance corresponds to high VIF.
Export outputFile > Export or OUTPUT EXPORTSave SPSS output PDF for reporting and verification.

R Workflow

StepR ActionPurpose
Read dataread.csv()Load the dataset.
Fit regression modellm(G3 ~ predictors)Fit the multiple regression model.
Calculate VIFcar::vif(model)Get VIF values for all predictors.
Calculate tolerance1 / vif_valuesConvert VIF to Tolerance Statistic.
Inspect correlationscor()Explain why tolerance is lower for some predictors.
Build chartsBase R or ggplot2Create tolerance, VIF, correlation, coefficient and decision charts.

Python Workflow

StepPython ActionPurpose
Read datapandas.read_csv()Load the dataset into a DataFrame.
Select predictorsCreate predictor listUse the same predictors as SPSS and R.
Add constant if neededstatsmodels.add_constant()Prepare the model matrix for regression and VIF.
Calculate VIFvariance_inflation_factor()Compute VIF for each predictor.
Calculate Tolerance Statistic1 / VIFConvert VIF values into tolerance values.
Create plotsmatplotlibGenerate WordPress chart figures.

Excel Workflow

Excel TaskFormula or ToolPurpose
Enable regression toolData Analysis ToolPakUse Excel regression for auxiliary models.
Choose one predictor as outcomeExample: G2 as YPredict G2 from all other predictors.
Run auxiliary regressionRegression toolGet R Square for that predictor.
Calculate Tolerance Statistic=1-RSQFind unique predictor variance after other predictors.
Calculate VIF cross-check=1/(1-RSQ)Confirm tolerance using inverse VIF.
Repeat for every predictorAuxiliary regressionsCreate a complete tolerance and VIF table.

Code Blocks for Tolerance Statistic

SPSS Syntax for Tolerance Statistic

* Tolerance Statistic and VIF in SPSS.
* Dependent variable: G3.
* Predictors: G1 G2 studytime failures absences age Medu Fedu traveltime famrel freetime goout health.

TITLE "Tolerance Statistic and VIF through SPSS collinearity diagnostics".

REGRESSION
  /DEPENDENT G3
  /METHOD=ENTER G1 G2 studytime failures absences age Medu Fedu traveltime famrel freetime goout health
  /STATISTICS COEFF OUTS R ANOVA COLLIN TOL
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN.

CORRELATIONS
  /VARIABLES=G1 G2 studytime failures absences age Medu Fedu traveltime famrel freetime goout health
  /PRINT=TWOTAIL NOSIG
  /MISSING=PAIRWISE.

DESCRIPTIVES VARIABLES=G1 G2 studytime failures absences age Medu Fedu traveltime famrel freetime goout health
  /STATISTICS=MEAN STDDEV MIN MAX.

OUTPUT EXPORT
  /CONTENTS EXPORT=VISIBLE
  /PDF DOCUMENTFILE="Tolerance-Statistic-SPSS-Output.pdf".

Python Code for Tolerance Statistic

import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor

df = pd.read_csv("dataset.csv")

dependent = "G3"
predictors = [
    "G1", "G2", "studytime", "failures", "absences", "age",
    "Medu", "Fedu", "traveltime", "famrel", "freetime", "goout", "health"
]

model_data = df[[dependent] + predictors].apply(pd.to_numeric, errors="coerce").dropna()

X = model_data[predictors]
X_const = sm.add_constant(X)
y = model_data[dependent]

model = sm.OLS(y, X_const).fit()
print(model.summary())

rows = []
for i, variable in enumerate(X_const.columns):
    if variable == "const":
        continue

    vif_value = variance_inflation_factor(X_const.values, i)
    tolerance_value = 1 / vif_value

    rows.append({
        "predictor": variable,
        "Tolerance Statistic": tolerance_value,
        "VIF": vif_value,
        "Decision": "Acceptable" if tolerance_value >= 0.20 else "Review"
    })

tolerance_table = pd.DataFrame(rows).sort_values("Tolerance Statistic")
print(tolerance_table)

corr_matrix = X.corr()
print(corr_matrix)

R Code for Tolerance Statistic

# Tolerance Statistic in R

df <- read.csv("dataset.csv")

predictors <- c(
  "G1", "G2", "studytime", "failures", "absences", "age",
  "Medu", "Fedu", "traveltime", "famrel", "freetime", "goout", "health"
)

vars_needed <- c("G3", predictors)
df_model <- df[vars_needed]
df_model[] <- lapply(df_model, as.numeric)
df_model <- na.omit(df_model)

model <- lm(
  G3 ~ G1 + G2 + studytime + failures + absences + age +
    Medu + Fedu + traveltime + famrel + freetime + goout + health,
  data = df_model
)

summary(model)

library(car)
vif_values <- vif(model)

tolerance_table <- data.frame(
  predictor = names(vif_values),
  Tolerance_Statistic = 1 / as.numeric(vif_values),
  VIF = as.numeric(vif_values)
)

tolerance_table <- tolerance_table[order(tolerance_table$Tolerance_Statistic), ]
print(tolerance_table)

corr_matrix <- cor(df_model[predictors], use = "complete.obs")
print(corr_matrix)

Excel Formulas for Tolerance Statistic

Step 1:
Choose one predictor as the dependent variable in an auxiliary regression.

Example:
Predict G2 from G1, studytime, failures, absences, age, Medu, Fedu, traveltime, famrel, freetime, goout, health.

Step 2:
Get the R Square value from that auxiliary regression.

Step 3:
Calculate Tolerance Statistic:
=1-R_Square

Step 4:
Calculate VIF cross-check:
=1/(1-R_Square)

Step 5:
Interpret:
If tolerance is greater than or equal to .20, commonly acceptable.
If tolerance is below .20, review multicollinearity.
If tolerance is below .10, serious warning.

Example:
If auxiliary R Square = 0.762

Tolerance Statistic:
=1-0.762
=0.238

VIF:
=1/0.238
=4.202

APA Reporting Wording for Tolerance Statistic

When reporting Tolerance Statistic, include the threshold rule, the lowest tolerance value, the VIF cross-check, and the final decision. If the model contains related predictors such as G1 and G2, mention that their coefficients should be interpreted cautiously even when tolerance is acceptable.

APA-Style Tolerance Statistic Report

Multicollinearity was assessed using the Tolerance Statistic and Variance Inflation Factor. The regression model predicted G3 from G1, G2, studytime, failures, absences, age, Medu, Fedu, traveltime, famrel, freetime, goout and health. The lowest tolerance values were observed for G1 and G2, both with tolerance values of .238. The corresponding VIF values were 4.195 for G1 and 4.204 for G2. Since all tolerance values were above .20 and all VIF values were below 5, the model did not show harmful multicollinearity under the selected diagnostic rule.

Full Model Report Sentence

The overall regression model was statistically significant, F(13, 635) = 281.518, p < .001, and explained 85.2% of the variance in G3, R² = .852, adjusted R² = .849. Collinearity diagnostics indicated acceptable multicollinearity, with all Tolerance Statistic values above .20 and all VIF values below 5. The lowest tolerance values were for G1 and G2, both equal to .238, indicating elevated but acceptable overlap between previous grade predictors.

Common Mistakes in Tolerance Statistic Interpretation

MistakeWhy It Is a ProblemCorrect Practice
Thinking tolerance is a model fit statisticTolerance checks predictor overlap, not overall prediction quality.Use R² for fit and tolerance for multicollinearity.
Ignoring VIFTolerance and VIF are inverse diagnostics.Report both when possible.
Deleting predictors automaticallyA low tolerance predictor may be theoretically important.Review theory, purpose, correlations and coefficient stability.
Using tolerance for the dependent variableTolerance applies to predictors only.Calculate tolerance only for independent variables.
Confusing tolerance with normalityTolerance does not test distribution shape.Use normality checks separately.

Key reminder: Tolerance Statistic is part of regression assumption checking. It should be interpreted with residual diagnostics, linearity checks, variance checks, and model specification checks such as the Ramsey RESET test and Goldfeld-Quandt test.

When to Use Tolerance Statistic

Use Tolerance Statistic whenever a regression model has multiple predictors and you need to check whether predictors overlap too strongly. It is especially important when the purpose is coefficient interpretation rather than only prediction.

Use Tolerance Statistic WhenWhy It MattersExample from This Guide
You run multiple regressionMultiple predictors can share variance.G3 was predicted from 13 predictors.
You include similar predictorsSimilar predictors often reduce tolerance.G1 and G2 are both previous grade variables.
You want coefficient interpretationLow tolerance can make coefficients unstable.G1 and G2 require careful adjusted interpretation.
You prepare a regression assumptions sectionTolerance is a standard collinearity statistic.All predictors passed the tolerance ≥ .20 rule.
You compare SPSS, R, Python and Excel outputTolerance should match across software when the same model is used.SPSS, Python and R results support the same decision.

Do not use Tolerance Statistic as a substitute for descriptive spread or practical importance. If you need variability comparison, use the coefficient of variation. If you need uncertainty intervals, use the confidence interval guide. If you need practical magnitude, use effect size.

Downloads and Resources for Tolerance Statistic

The SPSS output PDF below verifies the regression model, Tolerance Statistic values, VIF cross-check, collinearity diagnostics, predictor correlation matrix and descriptive statistics used in this guide.

FAQs About Tolerance Statistic

What is Tolerance Statistic?

Tolerance Statistic is a regression diagnostic that shows how much unique variance a predictor has after the other predictors have explained it.

What is the Tolerance Statistic formula?

The formula is Tolerance Statistic = 1 − R²j, where R²j comes from predicting one predictor using all the other predictors.

How is Tolerance Statistic related to VIF?

Tolerance Statistic is the inverse of VIF. The formula is Tolerance Statistic = 1 / VIF, and VIF = 1 / Tolerance Statistic.

What tolerance value is acceptable?

A common rule is that tolerance should be above .20. Values below .20 are often treated as a warning, and values below .10 are often treated as serious multicollinearity.

What was the lowest tolerance in this example?

The lowest tolerance values were for G1 and G2, both about .238. These values were acceptable because they remained above .20.

Was multicollinearity a serious problem in this model?

No. All predictors had tolerance values above .20 and VIF values below 5. Therefore, the model did not show harmful multicollinearity under the selected rule.

Why did G1 and G2 have the lowest tolerance?

G1 and G2 had the lowest tolerance because they were strongly related previous grade variables. Their overlap reduced their unique predictor variance.

Does Tolerance Statistic test normality?

No. Tolerance Statistic checks multicollinearity among predictors. It does not test normality, residual distribution, skewness, kurtosis, or homoscedasticity.

How do I calculate Tolerance Statistic in SPSS?

In SPSS, run Linear Regression, click Statistics, and select Collinearity diagnostics. SPSS will show Tolerance and VIF in the Coefficients table.

How do I calculate Tolerance Statistic in Python?

In Python, calculate VIF using statsmodels and then calculate tolerance as 1 / VIF.

How do I calculate Tolerance Statistic in R?

In R, fit a regression model with lm(), calculate VIF with car::vif(), then calculate tolerance as 1 / VIF.

How do I calculate Tolerance Statistic in Excel?

In Excel, run an auxiliary regression for each predictor using all other predictors, record the R Square value, and calculate Tolerance Statistic = 1 − R Square.

Advertisement
Google AdSense bottom placement reserved here

Need help applying this to your own data?

Salar Cafe can help interpret output, clean datasets, review assumptions, build dashboards and explain statistical results ethically.

Need help interpreting your data analysis results?

Contact Salar Cafe
Engr. Muhammad Yar Saqib author profile photo

Engr. Muhammad Yar Saqib

WhatsApp Get Data Analysis Help