How to Perform the Goldfeld-Quandt Test in R

Spread the love

The Goldfeld-Quandt test is one of the many statistical tools used to detect heteroscedasticity in the residuals of a regression model. In simpler terms, it checks if the variance of errors differs across observations. Understanding and addressing heteroscedasticity is vital because it affects the efficiency of the regression model’s coefficient estimates and can lead to incorrect conclusions. This article provides a deep dive into the Goldfeld-Quandt test, explaining its essence and guiding you on how to implement it in R.

Grasping Heteroscedasticity

In linear regression, one of the Blue assumptions is that of homoscedasticity, implying that the variance of the residuals remains consistent across all levels of an independent variable. If this is not the case, heteroscedasticity is present. It can distort standard errors, making them unreliable, thus affecting the validity of hypothesis tests.

The Goldfeld-Quandt Test: An Overview

The Goldfeld-Quandt test specifically checks for heteroscedasticity by assessing the variance of residuals in two separate data groups, typically divided based on an ordering variable. The idea is simple: if the variances of the two groups are significantly different, heteroscedasticity is likely present.
The test procedure involves:

  1. Sorting the data based on an independent variable.
  2. Splitting the data into two groups, usually omitting a central portion.
  3. Estimating separate regression models for each group.
  4. Comparing the residual variances from the two models.

Implementing the Goldfeld-Quandt Test in R

Step 1: Pre-requisites

Before proceeding, ensure that you have the lmtest package installed:


Now, load the library:


Step 2: Construct Your Regression Model

For the purpose of illustration, assume you have a dataset data with a dependent variable y and an independent variable x.

model <- lm(y ~ x, data = data)

Step 3: Conduct the Goldfeld-Quandt Test

Use the gqtest() function from the lmtest package:

gq_result <- gqtest(model, fraction = 0.15)

The fraction argument determines the central portion of the data to be omitted. For example, fraction = 0.15 omits 15% of the data around the median.

Step 4: Interpret the Results

The gqtest() function will provide a test statistic and a p-value:

  • p-value < 0.05: Suggests heteroscedasticity is present.
  • p-value > 0.05: Indicates no significant evidence of heteroscedasticity.

Addressing Detected Heteroscedasticity

If the Goldfeld-Quandt test suggests heteroscedasticity:

  1. Data Transformation: Applying a logarithmic or square root transformation on the dependent or independent variables can often stabilize variances.
  2. Weighted Least Squares: Instead of the traditional OLS, you can utilize weighted least squares (WLS) to give varying weights to different observations.
  3. Robust Standard Errors: Use standard errors that are robust to heteroscedasticity for valid hypothesis testing.

Important Considerations

  1. Choice of Ordering Variable: The test’s sensitivity depends on how the data is sorted. If there’s no logical ordering variable, you may try several variables to see if the test’s results are consistent.
  2. Test Limitations: The Goldfeld-Quandt test is sensitive to the omission of important variables and model misspecifications. It is also specific to detecting a particular form of heteroscedasticity.
  3. Other Diagnostic Tools: Always consider using multiple tests like Breusch-Pagan, White’s test, or visual diagnostic plots for a more comprehensive assessment.


The Goldfeld-Quandt test is a valuable tool for detecting heteroscedasticity, particularly when there’s suspicion of changing variance across levels of an ordering variable. Conducting this test in R is straightforward, thanks to the lmtest package. However, always remember that no test is flawless. It’s crucial to combine the test results with other diagnostic tools and a solid understanding of your data for a well-rounded, robust analysis.

Posted in RTagged

Leave a Reply