How to do Chow Test in R

The Chow test is used to compare the coefficients of two distinct regression models on two separate datasets.

This test is commonly used in econometrics using time series data to evaluate if the data has a structural break at some point.

Correlation Analysis in R? » Karl Pearson correlation coefficient »

The basic steps are as follows:

Run all of your data through a “limited” regression (pooled).

Using your breakpoint as a guide, divide your sample into two groups (e.g. a point in time, or a variable value).

On each of your subsamples, run an “unrestricted” regression. With a single breakpoint, you’ll run two “unrestricted” regressions.

Then calculate Chow F-statistic.

Chow Test in R

This tutorial shows you how to execute a Chow test in R step by step.

Let’s create the Data Frame, we can make use of the EuStockMarkets dataset here for illustration purposes.

What are the differences between Association and Correlation? »

data <- dplyr::select(data, DAX, SMI)

View first six rows of data

   DAX    SMI
1 1628.75 1678.1
2 1613.63 1688.5
3 1606.51 1678.6
4 1621.04 1684.1
5 1618.16 1686.6
6 1610.61 1671.6

Visualize the Information

Then, to visualize the data, we’ll make a basic scatterplot. Let’s load ggplot2 package in the R console.

Discriminant Analysis in r » Discriminant Analysis in R »


In R, we can now make a scatterplot Chow test.

ggplot(data, aes(x = disp, y = mpg)) +  geom_point(col='steelblue', size=3)

We can see from the scatterplot that the data pattern appears to alter at DAX = 4000. But not sure, as a result, we may use the Chow test to see if the data has a structural breakpoint.

What is mean by the correlation coefficient? »

Take the Chow Test. To execute a Chow test, we may use the strucchange package’s sctest function:

Let’s load strucchange package


sctest(formula, type = , h = 0.15,
    alt.boundary = FALSE, functional = c("max", "range",
    "maxL2", "meanL2"), from = 0.15, to = NULL, point = 0.5,
    asymptotic = FALSE, data, ...)

The above function returns the following

statistic the test statistic

p.value  the corresponding p-value

method a character string with the method used a character string with the data name

One Sample Analysis in R » Quick Guide »


Now we can perform the Chow test in R

sctest(data$SMI ~ data$DAX, type = "Chow", point = 10)
Chow test

data:  data$SMI ~ data$DAX
F = 212.01, p-value < 2.2e-16

We can reject the null hypothesis of the test because the p-value is less than 0.05. This means we have enough evidence to conclude that the data contains a structural breakpoint.

To put it another way, two regression lines can match the data pattern better than a single regression line.

Null Hypothesis » Why we need a null hypothesis test?. »

You may also like...

Leave a Reply

Your email address will not be published.

20 − six =


Subscribe Now