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.
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.
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
- What Is Tolerance Statistic?
- Tolerance Statistic Formula and VIF Relationship
- Null and Alternative Hypothesis for Tolerance Statistic
- Dataset and Regression Variables Used
- Verified SPSS Output Interpretation
- Python Chart-by-Chart Interpretation
- R Chart-by-Chart Validation
- SPSS, R, Python and Excel Workflows
- Code Blocks for Tolerance Statistic
- APA Reporting Wording
- Common Mistakes
- When to Use Tolerance Statistic
- Downloads and Resources
- Related Guides
- 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.
Here, R²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 R²j is high and the Tolerance Statistic becomes low.
The Tolerance Statistic is also the inverse of the Variance Inflation Factor:
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 Rule | Common Interpretation | Action |
|---|---|---|
| Tolerance near 1 | Predictor has strong unique variance. | Usually safe to interpret coefficient. |
| Tolerance .50 to 1.00 | Low multicollinearity risk. | Usually acceptable. |
| Tolerance .20 to .50 | Some overlap exists but often acceptable. | Interpret with caution and check VIF. |
| Tolerance < .20 | Common multicollinearity warning threshold. | Review predictor overlap and model design. |
| Tolerance < .10 | Serious multicollinearity warning threshold. | Model revision is usually needed. |
| VIF > 5 | Moderate multicollinearity warning. | Review predictor redundancy. |
| VIF > 10 | Serious 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.
| Statement | Decision Rule | Meaning in This Regression Model |
|---|---|---|
| Null assumption | H0: Tolerance Statistic ≥ .20 for all predictors | The model does not show harmful multicollinearity under the selected tolerance rule. |
| Alternative assumption | H1: at least one Tolerance Statistic < .20 | At least one predictor shows problematic multicollinearity. |
| Serious-risk version | H1: at least one Tolerance Statistic < .10 | At 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.
| Variable | Role | N | Mean | Standard Deviation | Why It Matters for Tolerance Statistic |
|---|---|---|---|---|---|
| G3 | Dependent variable | 649 | Final grade outcome | Not a tolerance predictor | The regression model predicts G3. |
| G1 | Predictor | 649 | 11.40 | 2.745 | Previous grade; lowest tolerance because it overlaps with G2. |
| G2 | Predictor | 649 | 11.57 | 2.914 | Previous grade; lowest tolerance and highest VIF cross-check. |
| studytime | Predictor | 649 | 1.93 | .830 | High tolerance, showing low multicollinearity risk. |
| failures | Predictor | 649 | .22 | .593 | Acceptable tolerance with low-to-mild predictor overlap. |
| absences | Predictor | 649 | 3.66 | 4.641 | High tolerance in this regression model. |
| age | Predictor | 649 | 16.74 | 1.218 | High tolerance, although condition index should also be reviewed. |
| Medu | Predictor | 649 | 2.51 | 1.135 | Moderate unique variance; related to Fedu. |
| Fedu | Predictor | 649 | 2.31 | 1.100 | Moderate unique variance; related to Medu. |
| traveltime | Predictor | 649 | 1.57 | .749 | High tolerance and low multicollinearity risk. |
| famrel | Predictor | 649 | 3.93 | .956 | High tolerance and strong unique variance. |
| freetime | Predictor | 649 | 3.18 | 1.051 | Acceptable tolerance; related moderately to goout. |
| goout | Predictor | 649 | 3.18 | 1.176 | Acceptable tolerance; related moderately to freetime. |
| health | Predictor | 649 | 3.54 | 1.446 | Highest 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.
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 Item | Value | Interpretation |
|---|---|---|
| Dependent variable | G3 | The model predicts final grade. |
| Predictors entered | health, Medu, goout, absences, famrel, studytime, age, traveltime, freetime, G2, failures, Fedu, G1 | All requested predictors were entered in the regression model. |
| R | .923 | The model has a very strong multiple correlation with G3. |
| R Square | .852 | About 85.2% of variance in G3 is explained by the predictors. |
| Adjusted R Square | .849 | The model remains strong after adjusting for predictor count. |
| Standard error of estimate | 1.255 | Typical prediction error is about 1.255 grade points. |
| ANOVA F | F(13, 635) = 281.518 | The overall regression model is statistically significant. |
| Sig. | .000 in SPSS; report as p < .001 | The overall model explains significant variance in G3. |
SPSS Tolerance Statistic and VIF Cross-check
| Predictor | B | Beta | t | p | Tolerance Statistic | VIF Cross-check | Tolerance Interpretation |
|---|---|---|---|---|---|---|---|
| G1 | .146 | .124 | 3.957 | < .001 | .238 | 4.195 | Lowest tolerance; acceptable but close enough to require caution. |
| G2 | .881 | .795 | 25.408 | < .001 | .238 | 4.204 | Lowest tolerance and highest VIF cross-check; acceptable under .20 rule. |
| Medu | -.035 | -.012 | -.603 | .546 | .548 | 1.823 | Acceptable tolerance; mild overlap with Fedu. |
| Fedu | .034 | .011 | .565 | .572 | .567 | 1.762 | Acceptable tolerance; mild overlap with Medu. |
| failures | -.232 | -.043 | -2.427 | .016 | .753 | 1.328 | Good tolerance and low multicollinearity risk. |
| freetime | -.039 | -.013 | -.766 | .444 | .843 | 1.186 | High tolerance and low multicollinearity risk. |
| goout | -.033 | -.012 | -.719 | .473 | .845 | 1.183 | High tolerance and low multicollinearity risk. |
| age | .026 | .010 | .581 | .562 | .846 | 1.182 | High tolerance, although condition index should also be checked. |
| studytime | .088 | .023 | 1.420 | .156 | .912 | 1.097 | Very high tolerance and very low multicollinearity risk. |
| traveltime | .082 | .019 | 1.184 | .237 | .911 | 1.097 | Very high tolerance and very low multicollinearity risk. |
| absences | .022 | .032 | 1.999 | .046 | .933 | 1.072 | Very high tolerance and very low multicollinearity risk. |
| famrel | -.028 | -.008 | -.521 | .603 | .945 | 1.058 | Very high tolerance and very low multicollinearity risk. |
| health | -.047 | -.021 | -1.353 | .177 | .961 | 1.041 | Highest tolerance; strongest unique predictor independence. |
SPSS Tolerance Statistic Decision Summary
| Decision Category | Rule | Number of Predictors | SPSS Result |
|---|---|---|---|
| Acceptable | Tolerance Statistic ≥ .20 | 13 | All predictors are acceptable under the tolerance ≥ .20 rule. |
| Warning | .10 ≤ Tolerance Statistic < .20 | 0 | No predictor falls in the warning range. |
| Serious warning | Tolerance Statistic < .10 | 0 | No predictor shows serious multicollinearity. |
| VIF cross-check | VIF ≤ 5 | 13 | All 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.
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
| Step | SPSS Menu or Syntax | Purpose |
|---|---|---|
| Open dataset | File > Open > Data | Load the clean SPSS-ready dataset. |
| Run regression | Analyze > Regression > Linear | Set G3 as dependent variable and enter predictors. |
| Select collinearity diagnostics | Statistics > Collinearity diagnostics | Request tolerance, VIF and condition index output. |
| Read coefficients table | Coefficients > Collinearity Statistics | Use the Tolerance column for the main decision. |
| Cross-check VIF | Same Coefficients table | Confirm that low tolerance corresponds to high VIF. |
| Export output | File > Export or OUTPUT EXPORT | Save SPSS output PDF for reporting and verification. |
R Workflow
| Step | R Action | Purpose |
|---|---|---|
| Read data | read.csv() | Load the dataset. |
| Fit regression model | lm(G3 ~ predictors) | Fit the multiple regression model. |
| Calculate VIF | car::vif(model) | Get VIF values for all predictors. |
| Calculate tolerance | 1 / vif_values | Convert VIF to Tolerance Statistic. |
| Inspect correlations | cor() | Explain why tolerance is lower for some predictors. |
| Build charts | Base R or ggplot2 | Create tolerance, VIF, correlation, coefficient and decision charts. |
Python Workflow
| Step | Python Action | Purpose |
|---|---|---|
| Read data | pandas.read_csv() | Load the dataset into a DataFrame. |
| Select predictors | Create predictor list | Use the same predictors as SPSS and R. |
| Add constant if needed | statsmodels.add_constant() | Prepare the model matrix for regression and VIF. |
| Calculate VIF | variance_inflation_factor() | Compute VIF for each predictor. |
| Calculate Tolerance Statistic | 1 / VIF | Convert VIF values into tolerance values. |
| Create plots | matplotlib | Generate WordPress chart figures. |
Excel Workflow
| Excel Task | Formula or Tool | Purpose |
|---|---|---|
| Enable regression tool | Data Analysis ToolPak | Use Excel regression for auxiliary models. |
| Choose one predictor as outcome | Example: G2 as Y | Predict G2 from all other predictors. |
| Run auxiliary regression | Regression tool | Get R Square for that predictor. |
| Calculate Tolerance Statistic | =1-RSQ | Find unique predictor variance after other predictors. |
| Calculate VIF cross-check | =1/(1-RSQ) | Confirm tolerance using inverse VIF. |
| Repeat for every predictor | Auxiliary regressions | Create 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.202APA 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
| Mistake | Why It Is a Problem | Correct Practice |
|---|---|---|
| Thinking tolerance is a model fit statistic | Tolerance checks predictor overlap, not overall prediction quality. | Use R² for fit and tolerance for multicollinearity. |
| Ignoring VIF | Tolerance and VIF are inverse diagnostics. | Report both when possible. |
| Deleting predictors automatically | A low tolerance predictor may be theoretically important. | Review theory, purpose, correlations and coefficient stability. |
| Using tolerance for the dependent variable | Tolerance applies to predictors only. | Calculate tolerance only for independent variables. |
| Confusing tolerance with normality | Tolerance 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 When | Why It Matters | Example from This Guide |
|---|---|---|
| You run multiple regression | Multiple predictors can share variance. | G3 was predicted from 13 predictors. |
| You include similar predictors | Similar predictors often reduce tolerance. | G1 and G2 are both previous grade variables. |
| You want coefficient interpretation | Low tolerance can make coefficients unstable. | G1 and G2 require careful adjusted interpretation. |
| You prepare a regression assumptions section | Tolerance is a standard collinearity statistic. | All predictors passed the tolerance ≥ .20 rule. |
| You compare SPSS, R, Python and Excel output | Tolerance 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.
Download SPSS Output PDF
Verified SPSS output for Tolerance Statistic, VIF, regression coefficients, collinearity diagnostics and predictor correlations.
Copy Tolerance Statistic Code
Use the SPSS, Python, R and Excel code blocks to reproduce the Tolerance Statistic analysis.
Python Chart 1: Tolerance by Predictor
Visual tolerance ranking with .20 and .10 threshold lines.
Python Chart 2: VIF Cross-check
VIF inverse validation for the Tolerance Statistic result.
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.
Google AdSense bottom placement reserved here
