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

White Test for Heteroskedasticity: Null Hypothesis, Formula, Interpretation, SPSS, R, Python and Excel Guide

Learn White Test 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
White Test for Heteroskedasticity: Null Hypothesis, Formula, Interpretation, SPSS, R, Python and Excel Guide

Regression Diagnostics, Residual Variance and Heteroskedasticity

White Test is a regression diagnostic test used to check whether model residuals have constant variance. In simple words, it tests the homoscedasticity assumption. This guide explains the White Test for heteroskedasticity with null hypothesis, alternative hypothesis, formula, SPSS output, Python charts, R validation charts and Excel workflow using a regression model where G3 final grade is predicted from G1, G2, studytime, failures, absences and age.

Advertisement
Google AdSense top placement reserved here

Quick Answer: White Test Result

The White Test result indicates that the regression residuals do not have constant variance. The base regression predicting G3 from G1, G2, studytime, failures, absences and age explained a large share of variation in final grades, with base model R² = 0.8506 in the Python/R summary and R² = .851 in the SPSS output. However, the White auxiliary regression, which models squared residuals using predictors, squared terms and interaction terms, produced auxiliary R² = 0.1164. The White LM p-value was 1.753e-06, which is far below α = .05.

Hypothesis decision: The null hypothesis for the White Test says that residual variance is constant, or H0: homoscedasticity. The alternative hypothesis says that residual variance is not constant, or H1: heteroskedasticity. Since p = 1.753e-06 < .05, reject the null hypothesis. The final conclusion is that there is statistically significant evidence of heteroskedasticity in the G3 regression residuals.

Sample sizeN = 649
Base model R²0.8506
Auxiliary R²0.1164
DecisionReject H₀

Final report sentence: A White Test for heteroskedasticity was performed on the residuals from the regression predicting G3 final grade from G1, G2, studytime, failures, absences and age. The auxiliary regression explained a meaningful share of squared residual variation, R² = 0.1164, producing a significant White LM test, p = 1.753e-06. Therefore, the null hypothesis of constant residual variance was rejected. The model shows evidence of heteroskedasticity, so robust standard errors or a corrected modeling strategy should be considered.

Important note: Do not write p = .000 in the final report. SPSS displays very small p-values as .000, but the correct reporting style is p < .001. The Python p-value chart gives the more precise value 1.753e-06, which also means p < .001.

Table of Contents

  1. What Is the White Test?
  2. When Should You Use the White Test?
  3. Null and Alternative Hypothesis for White Test
  4. White Test Formula and LM Statistic
  5. Dataset and Regression Model Used
  6. Verified SPSS, Python and R Results
  7. Python Charts and Interpretation
  8. R Validation Charts and Interpretation
  9. SPSS Output Interpretation
  10. How to Run White Test in Python, R, SPSS and Excel
  11. How to Report the White Test
  12. Common Mistakes
  13. Downloads and Resources
  14. FAQs

What Is the White Test?

The White Test is a statistical test for detecting heteroskedasticity in regression residuals. Heteroskedasticity means that the variance of the residuals is not constant across fitted values or predictor levels. A well-behaved ordinary least squares regression model usually assumes that residuals have approximately constant variance. When this assumption fails, coefficient estimates may still be unbiased under standard OLS conditions, but the usual standard errors, t-tests, confidence intervals and p-values can become unreliable.

The White Test is more general than many simple heteroskedasticity tests because it does not only check a straight-line relationship between residual variance and predictors. It uses an auxiliary regression where squared residuals are regressed on the original predictors, squared predictors and cross-product interaction terms. This allows the test to detect many different variance patterns, including curved variance patterns and interaction-based variance patterns.

For regression diagnostics, the White Test should be read together with residual plots and related assumption checks. If your main concern is variance equality across groups, you may also compare it with Levene Test and Brown-Forsythe Test. If your concern is changing variance across ordered fitted values or time-like order, the Goldfeld-Quandt Test can also be useful. For normality context, residual plots can be compared with Q-Q Plot, P-P Plot, Kolmogorov-Smirnov Test, Lilliefors Test and DAgostino Pearson Test.

Practical meaning: If the White Test is significant, it means the residual spread is related to the predictors, squared predictors or interactions. In this post, the p-value is extremely small, so the G3 regression model should not be reported with ordinary OLS standard errors alone. A better reporting approach is to mention heteroskedasticity and consider robust standard errors.

When Should You Use the White Test?

Use the White Test when you fit a regression model and want to test whether the residual variance is constant. It is especially useful when you suspect that residual spread may change in a nonlinear way or may depend on combinations of predictors. Because the White Test includes squares and interaction terms in its auxiliary regression, it can detect more complex heteroskedasticity patterns than a very simple residual variance test.

SituationUse White Test?Why it helps
Linear regression with continuous predictorsYesIt checks whether residual variance changes with fitted values, predictors, squared predictors or interactions.
Residuals vs fitted plot shows a funnel shapeYesThe White Test provides a formal p-value for the visual pattern.
You need an assumption test before reporting OLS resultsYesIt supports a clear decision about constant variance.
You only want to compare group variancesMaybeLevene or Brown-Forsythe may be easier if the problem is purely group-based.
You only want to test residual normalityNoWhite Test is a heteroskedasticity test, not a normality test. Use Q-Q plots and normality tests for residual shape.

Null and Alternative Hypothesis for White Test

The White Test is a hypothesis test. The decision is based on whether the auxiliary regression explains enough variation in squared residuals to reject the idea of constant residual variance.

HypothesisStatementMeaning in this G3 model
Null hypothesisH0: residual variance is constantThe regression errors for G3 have homoscedastic variance across fitted values and predictors.
Alternative hypothesisH1: residual variance is not constantThe residual variance changes with predictors, squared predictors or interactions.
Decision ruleReject H0 if p < αUsing α = .05, the result is significant because p = 1.753e-06.

Decision for this post: The White LM p-value is 1.753e-06. Since this is below .05 and also below .001, reject the null hypothesis. The result supports the alternative hypothesis that the residual variance is not constant.

White Test Formula and LM Statistic

The White Test is usually calculated from an auxiliary regression. The steps are simple in concept:

StepWhat is done?Purpose
1Fit the main OLS regression.Get fitted values and residuals from the model.
2Square the residuals.Squared residuals represent local variance size.
3Regress squared residuals on predictors, squared predictors and interactions.This is the White auxiliary regression.
4Take the auxiliary R².A larger auxiliary R² means residual variance is more predictable.
5Calculate LM = n × R².The LM statistic is compared with a chi-square distribution.
White LM statistic = n × R²(auxiliary regression)

where:
n = sample size
R²(auxiliary regression) = R-squared from the regression of squared residuals on auxiliary terms

For this analysis, n = 649 and the auxiliary model summary chart gives R² = 0.1164. Therefore, the LM statistic is approximately:

LM ≈ 649 × 0.1164
LM ≈ 75.54

The auxiliary regression included 27 auxiliary terms in the full model. The p-value from the chi-square decision is 1.753e-06. This very small p-value means the squared residuals are not random noise around a constant variance level. Instead, their size is related to the predictor structure.

Dataset and Regression Model Used

This worked example uses the student performance data structure. The dependent variable is G3 final grade. The base regression predicts G3 from G1, G2, studytime, failures, absences and age. The White Test is then applied to the residuals from that base regression.

ItemValueExplanation
Dependent variableG3Final grade / main outcome variable.
Base predictorsG1, G2, studytime, failures, absences, ageVariables used to predict G3 before residual diagnostics.
Valid N649All 649 cases were used in the regression and residual diagnostics.
SPSS-ready fileWhite-Test-data.savClean SPSS file used for the output PDF.
Output typePython charts, R charts, SPSS PDF and Excel methodPython and R validate the graphics and test decision; SPSS provides formal regression output.

External dataset source: UCI Machine Learning Repository: Student Performance dataset.

Advertisement
Google AdSense middle placement reserved here

Verified SPSS, Python and R Results

The SPSS output, Python charts and R charts all support the same decision: the White Test is statistically significant. The base model has strong predictive fit, but the residual variance is not constant. The auxiliary regression explains enough squared residual variation to reject homoscedasticity.

Base Regression Output

StatisticSPSS valuePython/R chart valueInterpretation
Model R.922Approximately .922The predicted G3 values are strongly associated with observed G3 values.
R Square.8510.8506The base model explains about 85% of G3 variation.
Adjusted R Square.849Approximately .849The model remains strong after adjusting for predictors.
Std. Error of Estimate1.254Approximately 1.254Typical prediction error is about 1.25 grade points.
ANOVA FF(6, 642) = 609.353, p < .001SignificantThe base regression model is statistically significant.

Base Regression Coefficients

PredictorBtp-valueInterpretation
G1.1423.886p < .001G1 is a significant positive predictor of G3 after controlling for the other variables.
G2.88325.823p < .001G2 is the strongest predictor in the base model.
studytime.0951.526.127Study time is not significant after G1 and G2 are included.
failures-.233-2.456.014More failures are associated with lower G3, controlling for the other predictors.
absences.0232.086.037Absences have a small positive coefficient in this controlled model.
age.024.544.587Age is not a significant predictor in the base model.

White Auxiliary Regression Output

Auxiliary modelAuxiliary terms includedF-testMeaning
Block 1Original predictors and squared predictors.070F = 3.986, p < .001Even the first auxiliary block detects variance structure.
Block 2Block 1 plus several grade and predictor interactions.102F = 3.380, p < .001Interactions improve the explanation of squared residuals.
Block 3Full White-style auxiliary model with 27 terms.116 / 0.1164F = 3.030, p < .001This is the final auxiliary model used for the White decision.

Final White Test Decision

ComponentResultDecision
Null hypothesisH0: residual variance is constantAssumes homoscedasticity.
Alternative hypothesisH1: residual variance is not constantAssumes heteroskedasticity.
Auxiliary R²0.1164Squared residuals are partly explained by auxiliary terms.
White LM p-value1.753e-06Reject H0.
Alpha level.05The p-value is far below the decision threshold.
ConclusionSignificant heteroskedasticityUse robust standard errors or revise the model strategy.

Python Charts and Interpretation

1. White Test: Residuals vs Fitted Values

White Test residuals vs fitted values Python chart showing non constant residual variance
Python chart showing raw residuals against fitted G3 values. Funnel-like and uneven spread patterns suggest non-constant variance.

This chart is the first visual diagnostic for the White Test. If residual variance were constant, the points would form a fairly even horizontal band around zero across the fitted-value range. Instead, the chart shows an uneven residual spread. Some fitted-value regions have tight residual bands, while the middle fitted range contains large negative residuals and wider vertical spread. Several residuals drop below -6 and even approach about -9, while positive residuals are smaller in comparison. This visual pattern supports the White Test result because residual variance is not evenly distributed across fitted values. The dashed zero line confirms that the residuals are centered around zero overall, but the problem is the changing spread, not the average residual.

2. White Test: Squared Residuals vs Fitted Values

White Test squared residuals versus fitted values Python chart
Python chart showing squared residuals against fitted values. Large squared residuals identify where variance spikes occur.

This chart directly connects to the White auxiliary regression because the auxiliary regression uses squared residuals as the dependent variable. Most squared residuals are close to zero, but several observations rise sharply, with the largest squared residuals above 80. These large values are concentrated mainly in the mid fitted-value range rather than being evenly distributed across all fitted values. That is exactly the type of pattern that can make the White Test significant. The chart shows that the residual variance is not simply random and flat; instead, some fitted-value regions produce much larger error sizes than others.

3. White Test: Absolute Residual Spread

White Test absolute residual spread Python chart showing heteroskedasticity
Python chart showing absolute residuals. Increasing or uneven absolute residual spread indicates possible heteroskedasticity.

The absolute residual chart removes the positive or negative sign and focuses only on error size. This makes spread easier to read. A constant-variance model would show a roughly similar range of absolute residuals across fitted values. Here, the largest absolute residuals appear around the middle fitted-value range, reaching around 9. Other fitted-value regions have much smaller absolute residuals. This uneven spread supports the decision to reject the null hypothesis of homoscedasticity. It also explains why a model can have a high base R² but still fail the constant variance assumption: prediction accuracy and residual variance stability are different diagnostics.

4. White Test: p-value Decision

White Test p value decision Python chart showing p value below alpha
Python p-value decision chart comparing α = .05 with White LM p-value = 1.753e-06.

This chart gives the formal hypothesis decision. The alpha threshold is .05, while the White LM p-value is 1.753e-06. Because the p-value is much smaller than .05, the test rejects the null hypothesis. In reporting language, this means there is statistically significant evidence of heteroskedasticity. The chart is useful for readers because it makes the decision rule visible: p-values below alpha reject constant residual variance.

5. White Test: Strongest Auxiliary Terms

White Test strongest auxiliary terms Python chart showing G2 squared and interaction effects
Python chart ranking auxiliary regression terms by absolute t value.

This chart shows which auxiliary terms contributed most strongly to explaining squared residuals. The largest terms are G2_sq, G1_x_G2, G1_x_failures, absences_sq and failures_sq. These terms suggest that the residual variance pattern is connected to grade-related nonlinear effects and interactions involving previous grades and failures. In practical terms, the error spread is not constant across the grade structure. Some combinations of prior grades, failures and absences create larger prediction errors than others. This supports the White Test decision because the squared residuals are meaningfully associated with auxiliary terms.

6. White Test: Residual Distribution

White Test residual distribution Python chart for regression diagnostics
Python histogram of raw residuals. White Test focuses on variance, but residual distribution helps explain the diagnostic context.

The residual distribution is centered near zero, which is expected in an OLS regression with an intercept. However, the distribution is not perfectly symmetric. The left tail is longer because several residuals are strongly negative. This chart does not replace the White Test because residual normality and residual variance are different assumptions. Still, it helps explain why the residual plots show large negative errors and why squared residuals have extreme values. The main White Test decision remains based on the variance pattern and p-value, not only on histogram shape.

7. White Test: Base and Auxiliary Model Fit

White Test base and auxiliary model fit Python chart with R squared values
Python chart comparing base model R² = 0.8506 and auxiliary R² = 0.1164.

This chart separates two different ideas. The base model R² of 0.8506 means the predictors explain G3 very well. The auxiliary R² of 0.1164 means the auxiliary terms explain part of the squared residual variation. A high base model R² does not protect the model from heteroskedasticity. The auxiliary R² is smaller than the base R², but for a White Test it is large enough to produce a significant LM p-value because the sample size is 649. The chart therefore supports the final conclusion: the model predicts G3 well, but the residual variance assumption is violated.

R Validation Charts and Interpretation

The R charts validate the same diagnostic story shown by Python. They use a different plotting style but show the same fitted-value range, residual spread, squared residual behavior, p-value decision, auxiliary term importance, residual distribution and model-fit comparison.

1. R Residuals vs Fitted Values

White Test residuals vs fitted values R chart
R validation chart showing raw residuals against fitted values.

The R residuals-vs-fitted chart confirms that the residual spread is not uniform. Several large negative residuals appear in the middle fitted-value region, while many other fitted ranges have smaller error bands. This validates the Python interpretation that the residual variance is not constant across the fitted-value scale.

2. R Squared Residuals vs Fitted Values

White Test squared residuals versus fitted values R chart
R validation chart showing squared residuals against fitted values.

The R squared-residual plot again shows that most squared residuals are small, but a few are very large. These high squared residuals create the variance pattern detected by the auxiliary regression. The chart is especially important because White’s auxiliary regression directly models squared residuals.

3. R Absolute Residual Spread

White Test absolute residual spread R chart
R validation chart showing absolute residual spread across fitted values.

The R absolute residual chart confirms the uneven error size. The largest absolute residuals appear around the middle fitted range. This means the model error is not equally spread across all predictions, which supports the rejection of homoscedasticity.

4. R p-value Decision

White Test p value decision R chart
R validation chart comparing the alpha threshold and the White LM p-value.

The R p-value chart repeats the same hypothesis decision: the White LM p-value is below the alpha threshold. Therefore, the null hypothesis of constant residual variance is rejected.

5. R Strongest Auxiliary Terms

White Test strongest auxiliary terms R chart
R validation chart ranking auxiliary terms by absolute t value.

The R auxiliary-term chart confirms that variance structure is most strongly connected with grade-related squared and interaction terms such as G2_sq, G1_x_G2 and G1_x_failures. This supports the interpretation that heteroskedasticity is related to nonlinear and interaction patterns in the prediction structure.

6. R Residual Distribution

White Test residual distribution R chart
R validation histogram showing residual distribution context.

The R residual histogram confirms that residuals are centered near zero but have tail irregularities. This supports the broader diagnostic story while keeping the main focus on variance. The White Test result is about heteroskedasticity, not merely residual normality.

7. R Base and Auxiliary Model Fit

White Test base and auxiliary model fit R chart
R validation chart comparing the base regression fit and auxiliary regression fit.

The R model-fit chart confirms that the base regression fit is strong, while the auxiliary regression still explains enough squared residual variation to trigger a significant White Test. The final interpretation remains unchanged: the regression has strong predictive power, but the residual variance is not constant.

SPSS Output Interpretation

The SPSS output PDF contains the base regression, auxiliary regression, residual descriptives and residual normality/spread context. SPSS confirms that the base regression is strong and that the auxiliary regression for squared residuals is statistically significant.

Base Regression in SPSS

The SPSS base regression used G3 as the dependent variable and entered G1, G2, studytime, failures, absences and age as predictors. The model summary shows R = .922, R² = .851, adjusted R² = .849 and a standard error of estimate of 1.254. The ANOVA table shows F(6, 642) = 609.353, p < .001. This means the base regression is statistically significant and explains a large amount of variation in G3.

Residual Statistics in SPSS

The SPSS residual statistics show predicted values ranging from about .31 to 19.58. Raw residuals range from -9.045 to 5.817, with mean approximately 0 and standard deviation about 1.249. The residual range is wide enough to justify visual residual diagnostics. The standardized residual minimum of -7.210 also shows that some cases are far from the fitted line.

White Auxiliary Regression in SPSS

The SPSS auxiliary regression used resid_sq as the dependent variable. The final auxiliary model included predictors, squared predictors and interaction terms. The final model summary shows R = .341, R² = .116 and adjusted R² = .078. The ANOVA table for the final auxiliary model shows F(27, 621) = 3.030, p < .001. This supports the White Test conclusion that the squared residuals are related to the auxiliary terms.

Important Auxiliary Terms in SPSS

Auxiliary termSPSS t valueSPSS p-valueInterpretation
G2_sq-3.376.001The squared G2 term is strongly related to squared residuals.
G1_x_G22.885.004The interaction of G1 and G2 contributes to variance structure.
G1_x_failures2.599.010The combination of G1 and failures is related to residual variance.
absences_sq2.248.025Nonlinear absence patterns help explain squared residuals.
failures_sq-1.968.049The squared failures term is borderline significant in the final auxiliary model.

Residual Normality and Spread Context

The SPSS Explore output shows that raw residuals have skewness = -2.864 and kurtosis = 18.667. Squared residuals have skewness = 8.651 and kurtosis = 80.487. Both Kolmogorov-Smirnov and Shapiro-Wilk tests are significant for residuals and squared residuals. This does not replace the White Test, but it confirms that residual behavior is not simple and normal-looking. For residual normality interpretation, compare this with Kolmogorov-Smirnov Test and Lilliefors Test.

How to Run White Test in Python, R, SPSS and Excel

Python Method

In Python, the easiest method is to fit an OLS model with statsmodels, extract residuals and use the White Test diagnostic function. The following code structure matches the logic used for this post.

import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.diagnostic import het_white

df = pd.read_csv("student-por.csv", sep=";")

y = df["G3"]
X = df[["G1", "G2", "studytime", "failures", "absences", "age"]]
X = sm.add_constant(X)

model = sm.OLS(y, X).fit()

white_lm, white_lm_p, white_f, white_f_p = het_white(model.resid, model.model.exog)

print("Base R-squared:", model.rsquared)
print("White LM statistic:", white_lm)
print("White LM p-value:", white_lm_p)
print("White F statistic:", white_f)
print("White F p-value:", white_f_p)

if white_lm_p < 0.05:
    print("Reject H0: evidence of heteroskedasticity")
else:
    print("Fail to reject H0: no strong evidence of heteroskedasticity")

R Method

In R, you can manually build a White-style auxiliary regression by modeling squared residuals with predictors, squared predictors and interaction terms.

df <- read.csv("student-por.csv", sep = ";")

base_model <- lm(G3 ~ G1 + G2 + studytime + failures + absences + age, data = df)

df$resid_G3 <- resid(base_model)
df$resid_sq <- df$resid_G3^2

aux_model <- lm(
  resid_sq ~ G1 + G2 + studytime + failures + absences + age +
    I(G1^2) + I(G2^2) + I(studytime^2) + I(failures^2) + I(absences^2) + I(age^2) +
    G1:G2 + G1:studytime + G1:failures + G1:absences + G1:age +
    G2:studytime + G2:failures + G2:absences + G2:age +
    studytime:failures + studytime:absences + studytime:age +
    failures:absences + failures:age + absences:age,
  data = df
)

n <- nobs(aux_model)
aux_r2 <- summary(aux_model)$r.squared
df_white <- length(coef(aux_model)) - 1
lm_stat <- n * aux_r2
p_value <- pchisq(lm_stat, df = df_white, lower.tail = FALSE)

print(summary(base_model))
print(summary(aux_model))
print(lm_stat)
print(p_value)

SPSS Method

In SPSS, run the base regression first, save predicted values and residuals, compute squared residuals, compute squared predictors and interactions, then run the auxiliary regression with resid_sq as the dependent variable.

REGRESSION
  /DEPENDENT G3
  /METHOD=ENTER G1 G2 studytime failures absences age
  /SAVE PRED(pred_G3) RESID(resid_G3).

COMPUTE resid_sq = resid_G3 ** 2.
COMPUTE G1_sq = G1 ** 2.
COMPUTE G2_sq = G2 ** 2.
COMPUTE studytime_sq = studytime ** 2.
COMPUTE failures_sq = failures ** 2.
COMPUTE absences_sq = absences ** 2.
COMPUTE age_sq = age ** 2.

COMPUTE G1_x_G2 = G1 * G2.
COMPUTE G1_x_studytime = G1 * studytime.
COMPUTE G1_x_failures = G1 * failures.
COMPUTE G1_x_absences = G1 * absences.
COMPUTE G1_x_age = G1 * age.
COMPUTE G2_x_studytime = G2 * studytime.
COMPUTE G2_x_failures = G2 * failures.
COMPUTE G2_x_absences = G2 * absences.
COMPUTE G2_x_age = G2 * age.
COMPUTE studytime_x_failures = studytime * failures.
COMPUTE studytime_x_absences = studytime * absences.
COMPUTE studytime_x_age = studytime * age.
COMPUTE failures_x_absences = failures * absences.
COMPUTE failures_x_age = failures * age.
COMPUTE absences_x_age = absences * age.
EXECUTE.

REGRESSION
  /DEPENDENT resid_sq
  /METHOD=ENTER G1 G2 studytime failures absences age
    G1_sq G2_sq studytime_sq failures_sq absences_sq age_sq
    G1_x_G2 G1_x_studytime G1_x_failures G1_x_absences G1_x_age
    G2_x_studytime G2_x_failures G2_x_absences G2_x_age
    studytime_x_failures studytime_x_absences studytime_x_age
    failures_x_absences failures_x_age absences_x_age.

OUTPUT EXPORT
  /CONTENTS EXPORT=ALL
  /PDF DOCUMENTFILE="D:\DATA ANALYSIS\B Normality and Assumption Tests\White Test\SPSS_Output\White-Test-SPSS-Output.pdf".

Excel Method

Excel does not have a one-click White Test button, but the method is still possible with the Data Analysis ToolPak. First run the base regression and save residuals. Then square the residuals. Next create columns for squared predictors and interaction terms. Finally regress squared residuals on those auxiliary columns and calculate the LM statistic.

Excel stepFormula or actionExplanation
Run base regressionData Analysis → RegressionUse G3 as Y and G1, G2, studytime, failures, absences and age as X.
Save residualsCheck residual outputExcel creates residual values from the base regression.
Square residuals=Residual_Cell^2This becomes the dependent variable for the auxiliary regression.
Create squared predictors=G1_Cell^2, =G2_Cell^2Repeat for all numeric predictors.
Create interaction terms=G1_Cell*G2_CellRepeat for required predictor pairs.
Run auxiliary regressionY = squared residuals; X = auxiliary termsRecord the auxiliary R².
Calculate LM statistic=N*Auxiliary_R2For this post, approximately 649 × 0.1164.
Calculate p-value=CHISQ.DIST.RT(LM, df)Use df equal to the number of auxiliary predictors.

How to Report the White Test

A good White Test report should include the null hypothesis, alternative hypothesis, base model context, auxiliary regression result, p-value decision and practical conclusion. It should also explain what to do after detecting heteroskedasticity.

APA-Style Report Example

A White Test for heteroskedasticity was conducted on the residuals from an OLS regression predicting G3 final grade from G1, G2, studytime, failures, absences and age. The null hypothesis stated that the residual variance was constant. The auxiliary regression produced R² = 0.1164, and the White LM p-value was 1.753e-06. Because the p-value was below .05, the null hypothesis of homoscedasticity was rejected. The result indicates significant heteroskedasticity, so robust standard errors should be considered when reporting coefficient significance.

Do not report only the p-value. A complete report should explain that the White Test is about residual variance, not about the overall regression fit. In this example, the base regression has high R², but heteroskedasticity is still present.

What to Do After a Significant White Test

OptionWhen usefulReporting note
Use robust standard errorsWhen coefficients are still meaningful but standard errors may be biased.Report heteroskedasticity-robust standard errors.
Transform the dependent variableWhen residual spread increases with the outcome scale.Compare transformed and original models carefully.
Add missing nonlinear termsWhen plots suggest curvature or omitted nonlinear structure.Model misspecification can look like heteroskedasticity.
Check influential casesWhen a few observations produce very large squared residuals.Do not delete cases automatically; diagnose them first.
Compare related testsWhen you need confirmation from another diagnostic.Use Goldfeld-Quandt or group variance tests where appropriate.

Common Mistakes When Interpreting the White Test

MistakeWhy it is wrongCorrect approach
Calling White Test a normality testWhite Test checks variance, not residual normality.Use Q-Q plots and normality tests for residual shape.
Writing p = .000A p-value is not exactly zero.Write p < .001 or use the precise value such as 1.753e-06.
Ignoring plots because the base R² is highHigh predictive fit does not guarantee constant variance.Report both model fit and diagnostic assumptions.
Thinking heteroskedasticity means the model is uselessThe coefficients may still be useful, but standard errors can be unreliable.Consider robust standard errors or model improvement.
Using too many auxiliary terms in a small datasetThe auxiliary regression can become unstable.Use White Test carefully and check degrees of freedom.

Downloads and Resources

The following hosted resources support this White Test guide. The SPSS PDF contains the regression output, auxiliary regression and residual diagnostic context. The chart links show the Python and R visual outputs used in the interpretation sections above.

External References

Advertisement
Google AdSense bottom placement reserved here

FAQs About White Test

What is the White Test?

The White Test is a regression diagnostic test for heteroskedasticity. It checks whether residual variance is constant or whether squared residuals can be explained by predictors, squared predictors and interaction terms.

What is the null hypothesis of the White Test?

The null hypothesis is that the residual variance is constant. In other words, H0: homoscedasticity. If the p-value is below alpha, reject the null hypothesis.

What is the alternative hypothesis of the White Test?

The alternative hypothesis is that the residual variance is not constant. In other words, H1: heteroskedasticity.

How do I interpret p = 1.753e-06 in the White Test?

A p-value of 1.753e-06 is much smaller than .05. Therefore, reject the null hypothesis of constant variance. In report form, you can also write p < .001.

Is White Test the same as Breusch-Pagan test?

No. Both tests check heteroskedasticity, but the White Test is more general because it can include original predictors, squared predictors and interaction terms. The Breusch-Pagan test is usually simpler and often tests a more direct relationship between variance and predictors.

Does a significant White Test mean my regression is useless?

No. It means the constant variance assumption is violated. The coefficients may still be useful, but ordinary standard errors and p-values may be unreliable. Robust standard errors are commonly used after detecting heteroskedasticity.

Can I do White Test in Excel?

Yes. Run the base regression, save residuals, square the residuals, create squared predictor and interaction columns, run an auxiliary regression and calculate LM = n × auxiliary R². Then use CHISQ.DIST.RT to calculate the p-value.

Is White Test a normality test?

No. White Test checks constant variance. For residual normality, use a Q-Q plot, P-P plot, Shapiro-Wilk, Kolmogorov-Smirnov or related normality tests.

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